mirror of
https://github.com/ae-utbm/sith.git
synced 2026-10-05 18:34:15 +00:00
User timetable save
This commit is contained in:
1 parent
12fa99eb50
commit
7ab412a59b
2 files changed
+71
-11
No files matched your search
@@ -1,4 +1,6 @@
|
||||
import html2canvas from "html2canvas";
|
||||
import { AlertMessage } from "#core:utils/alert-message";
|
||||
import { timetableSaveTimetable } from "#openapi";
|
||||
|
||||
// see https://regex101.com/r/QHSaPM/3
|
||||
const TIMETABLE_ROW_RE: RegExp =
|
||||
@@ -83,10 +85,10 @@ document.addEventListener("alpine:init", () => {
|
||||
courses: [] as TimetableSlot[],
|
||||
startSlot: 0,
|
||||
endSlot: 0,
|
||||
table: {
|
||||
height: 0,
|
||||
width: 0,
|
||||
},
|
||||
table: { height: 0, width: 0 },
|
||||
edtPublic: false,
|
||||
saving: false,
|
||||
timetableSavedMessage: new AlertMessage(),
|
||||
|
||||
colors: {} as Record<string, string>,
|
||||
colorPalette: [
|
||||
@@ -181,5 +183,36 @@ document.addEventListener("alpine:init", () => {
|
||||
downloadLink.click();
|
||||
downloadLink.remove();
|
||||
},
|
||||
|
||||
async saveSith() {
|
||||
this.saving = true;
|
||||
const res = await timetableSaveTimetable({
|
||||
body: {
|
||||
// biome-ignore lint/style/useNamingConvention: api is snake case
|
||||
is_viewable: this.edtPublic,
|
||||
slots: this.courses.map((c) =>
|
||||
Object.assign({}, c, {
|
||||
// biome-ignore lint/style/useNamingConvention: api is snake case
|
||||
start_at: c.startSlot,
|
||||
// biome-ignore lint/style/useNamingConvention: api is snake case
|
||||
end_at: c.endSlot,
|
||||
weekday: WEEKDAYS.indexOf(c.weekday) + 1,
|
||||
}),
|
||||
),
|
||||
},
|
||||
});
|
||||
if (res.response?.ok) {
|
||||
this.timetableSavedMessage.display(
|
||||
gettext("This timetable has been saved in your profile"),
|
||||
{ success: true },
|
||||
);
|
||||
} else {
|
||||
this.timetableSavedMessage.display(
|
||||
interpolate(gettext("Error %d: timetable save failed"), res.response?.status),
|
||||
{ success: false },
|
||||
);
|
||||
}
|
||||
this.saving = false;
|
||||
},
|
||||
}));
|
||||
});
|
||||
Reference in new issue
Block a user