Skip to content

Commit eddc7f4

Browse files
committed
Update change finalization
1 parent 91ee157 commit eddc7f4

File tree

3 files changed

+18
-20
lines changed

3 files changed

+18
-20
lines changed

course-matrix/backend/src/constants/availableFunctions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ export const availableFunctions: AvailableFunctions = {
112112
}
113113

114114
let updateData: any = {};
115+
updateData.updated_at = new Date().toISOString();
115116
if (timetable_title) updateData.timetable_title = timetable_title;
116117
if (semester) updateData.semester = semester;
117118

course-matrix/backend/src/controllers/timetablesController.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -163,17 +163,6 @@ export default {
163163
favorite,
164164
email_notifications_enabled,
165165
} = req.body;
166-
if (
167-
!timetable_title &&
168-
!semester &&
169-
favorite === undefined &&
170-
email_notifications_enabled === undefined
171-
) {
172-
return res.status(400).json({
173-
error:
174-
"New timetable title or semester or updated favorite status or email notifications enabled is required when updating a timetable",
175-
});
176-
}
177166

178167
// Timetables cannot be longer than 50 characters.
179168
if (timetable_title.length > 50) {

course-matrix/frontend/src/pages/TimetableBuilder/Calendar.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ const Calendar = React.memo<CalendarProps>(
117117
const [deleteRestriction] = useDeleteRestrictionMutation();
118118

119119
const [errorMessage, setErrorMessage] = useState<string | null>(null);
120-
120+
const [updateErrorMessage, setUpdateErrorMessage] = useState<string | null>(null);
121121
const semesterStartDate = getSemesterStartAndEndDates(semester).start;
122122
const { start: semesterStartDatePlusOneWeek, end: semesterEndDate } =
123123
getSemesterStartAndEndDatesPlusOneWeek(semester);
@@ -280,12 +280,7 @@ const Calendar = React.memo<CalendarProps>(
280280
};
281281

282282
const handleUpdate = async () => {
283-
try {
284-
await updateTimetable({ id: editingTimetableId }).unwrap();
285-
} catch (error) {
286-
console.log("cannot update rip");
287-
return;
288-
}
283+
const timetableTitle = timetableTitleRef.current?.value ?? "";
289284
setShowLoadingPage(true);
290285

291286
const offeringIdsToDelete = oldOfferingIds.filter(
@@ -294,6 +289,11 @@ const Calendar = React.memo<CalendarProps>(
294289
const offeringIdsToAdd = newOfferingIds.filter(
295290
(offeringId) => !oldOfferingIds.includes(offeringId),
296291
);
292+
if(offeringIdsToAdd.length === 0 && offeringIdsToDelete.length === 0){
293+
setUpdateErrorMessage("You have made no changes to the timetable!");
294+
setShowLoadingPage(false);
295+
return;
296+
}
297297
// Delete course events
298298
for (const offeringId of offeringIdsToDelete) {
299299
const { error: deleteError } = await deleteEvent({
@@ -347,12 +347,20 @@ const Calendar = React.memo<CalendarProps>(
347347
console.error(restrictionError);
348348
}
349349
}
350+
351+
try {
352+
await updateTimetable({ id: editingTimetableId, timetable_title: timetableTitle }).unwrap();
353+
} catch (error) {
354+
setUpdateErrorMessage("You have made no changes to the timetable");
355+
setShowLoadingPage(false);
356+
return;
357+
}
350358
navigate("/home");
351359
};
352360

353361
return (
354362
<div>
355-
<h1 className="text-2xl flex flex-row justify-between font-medium tracking-tight mb-8">
363+
<h1 className="text-2xl flex flex-row justify-between font-medium tracking-tight mb-4">
356364
<div>{header}</div>
357365
<TimetableErrorDialog
358366
errorMessage={errorMessage}
@@ -431,7 +439,7 @@ const Calendar = React.memo<CalendarProps>(
431439
Update Timetable
432440
</Button>
433441
</div>
434-
<div className="text-red-500 font-bold"> Yes </div>
442+
<div className="mt-1 text-sm text-red-500 font-bold"> {updateErrorMessage} </div>
435443
</div>
436444
)}
437445
</h1>

0 commit comments

Comments
 (0)