Make clicking event titles change the event being edited.

main
Daniel Perelman 2 years ago
parent 763a6a77c5
commit 208d7fbc4d

@ -310,7 +310,7 @@ function displayFullScheduleAllDays() {
const title = document.createElement('h1');
title.innerText = grid.title;
schedulesDiv.appendChild(title);
schedulesDiv.appendChild(grid.toHtml());
schedulesDiv.appendChild(grid.toHtml([], allowEdits ? selectAssignment : null));
})
}
@ -627,6 +627,13 @@ function rebuildPeopleTable() {
peopleTable.appendChild(tbody);
}
function selectAssignment(assignment) {
[...assignmentSelector.getElementsByTagName('option')]
.filter(o => o.assignment === assignment)
.forEach(o => o.selected = true);
initializeAssignmentForm(assignment);
}
function initializeAssignmentForm(assignment) {
selectedAssignment = assignment;
assignmentForm.location.value = assignment.location;

@ -186,3 +186,7 @@ table.schedule td.event.editing {
#scheduleSettings div {
margin: 1em;
}
.clickable {
cursor: pointer;
}

@ -104,7 +104,7 @@ export default class ScheduleGrid {
return this.timeRange.duration.dividedBy(this.granularity);
}
toHtml(tableClasses) {
toHtml(tableClasses, selectAssignment) {
const table = document.createElement('table');
table.classList.add('schedule');
@ -161,6 +161,15 @@ export default class ScheduleGrid {
cell.classList.add(eventClass);
}
cell.appendChild(event.description);
if (selectAssignment) {
for (const loc of event.description.querySelectorAll('.location')) {
loc.classList.add('clickable');
loc.addEventListener('click', e =>
selectAssignment(event.assignment));
}
}
row.appendChild(cell);
}
}

Loading…
Cancel
Save