mirror of
https://github.com/ae-utbm/sith.git
synced 2026-09-09 22:09:14 +00:00
show the broken line on timetable parsing error
Certains utilisateurs font remonter régulièrement que le générateur ne marche pas. C'est normal, on n'a pas forcément prévu tous les cas et on n'est pas à l'abri des changements de format de l'UTBM. Ce qui est très embêtant, dans ces cas-là, c'est qu'on donne très peu d'informations sur ce qui n'a pas marché, et que les utilisateurs peuvent difficilement faire remonter plus que ça. En décrivant la ligne qui n'a pas pu être parsée, ça devrait déjà rendre la gestion de ce genre de problème un peu plus facile, tout en étant plus transparent pour l'utilisateur
This commit is contained in:
@@ -59,7 +59,7 @@ function parseSlots(s: string): TimetableSlot[] {
|
||||
.map((row: string) => {
|
||||
const parsed = TIMETABLE_ROW_RE.exec(row);
|
||||
if (!parsed?.groups) {
|
||||
throw new Error(`Couldn't parse row ${row}`);
|
||||
throw new Error(`Couldn't parse row ${row}`, { cause: { row: row } });
|
||||
}
|
||||
const [startHour, startMin] = parsed.groups.startHour
|
||||
.split(":")
|
||||
@@ -78,7 +78,7 @@ function parseSlots(s: string): TimetableSlot[] {
|
||||
document.addEventListener("alpine:init", () => {
|
||||
Alpine.data("timetableGenerator", () => ({
|
||||
content: DEFAULT_TIMETABLE,
|
||||
error: "",
|
||||
error: null as { incorrectRow?: string },
|
||||
displayedWeekdays: [] as WeekDay[],
|
||||
courses: [] as TimetableSlot[],
|
||||
startSlot: 0,
|
||||
@@ -106,10 +106,9 @@ document.addEventListener("alpine:init", () => {
|
||||
generate() {
|
||||
try {
|
||||
this.courses = parseSlots(this.content);
|
||||
} catch {
|
||||
this.error = gettext(
|
||||
"Wrong timetable format. Make sure you copied if from your student folder.",
|
||||
);
|
||||
this.error = null;
|
||||
} catch (err) {
|
||||
this.error = { incorrectRow: err?.cause?.row };
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user