Skip to content

Commit 5ef734c

Browse files
authored
Update index.html
1 parent 3f3b04a commit 5ef734c

1 file changed

Lines changed: 32 additions & 15 deletions

File tree

index.html

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,21 @@ <h2>Generated Routine</h2>
224224
let selectedCourses = [];
225225
let sortAscending = true;
226226

227+
// Helper: Normalize day names (convert abbreviated to full names)
228+
function normalizeDay(dayStr) {
229+
const mapping = {
230+
"Mon": "Monday",
231+
"Tue": "Tuesday",
232+
"Wed": "Wednesday",
233+
"Thu": "Thursday",
234+
"Fri": "Friday",
235+
"Sat": "Saturday",
236+
"Sun": "Sunday"
237+
};
238+
const key = dayStr.trim();
239+
return mapping[key] || key;
240+
}
241+
227242
// Load any persisted data from localStorage
228243
function loadDataFromLocalStorage() {
229244
const storedCourses = localStorage.getItem('courses');
@@ -345,6 +360,9 @@ <h2>Generated Routine</h2>
345360
// Skip row if missing title, no free seats or if class is for freshmen.
346361
if (!title || free === 0 || /freshman/i.test(title)) return;
347362
const key = title + '|' + r[idx['Section']];
363+
// Normalize day and add room as meeting property
364+
const dayNormalized = normalizeDay(r[idx['Day']]);
365+
348366
if (!courses[key]) {
349367
courses[key] = {
350368
code: r[idx['Course Code']],
@@ -353,25 +371,20 @@ <h2>Generated Routine</h2>
353371
faculty: r[idx['Faculty']],
354372
type: r[idx['Type']], // theory or lab
355373
section: r[idx['Section']],
356-
meetings: [],
357-
room: r[idx['Room']],
358374
free,
359-
status: status // pick status from uploaded file
375+
status: status, // pick status from uploaded file
376+
meetings: [] // meetings will contain day, start, end, and room
360377
};
361378
depts.add(courses[key].dept);
362-
} else {
363-
// If room value differs, append it
364-
const currentRoom = courses[key].room;
365-
const newRoom = r[idx['Room']];
366-
if (!currentRoom.includes(newRoom)) {
367-
courses[key].room += ", " + newRoom;
368-
}
369379
}
380+
// Create a meeting with day, time and room details.
370381
const meeting = {
371-
day: r[idx['Day']],
382+
day: dayNormalized,
372383
start: r[idx['Start Time']],
373-
end: r[idx['End Time']]
384+
end: r[idx['End Time']],
385+
room: r[idx['Room']]
374386
};
387+
// Add meeting if not already present.
375388
if (!courses[key].meetings.some(m => m.day === meeting.day && m.start === meeting.start && m.end === meeting.end)) {
376389
courses[key].meetings.push(meeting);
377390
}
@@ -427,14 +440,16 @@ <h2>Generated Routine</h2>
427440
const disabled = alreadySelected || info.status.toLowerCase() === "reserved" ? 'disabled' : '';
428441
const days = info.meetings.map(m => m.day).join(', ');
429442
const times = info.meetings.map(m => `${m.start}-${m.end}`).join('; ');
443+
// Compute unique room list from meetings
444+
const rooms = [...new Set(info.meetings.map(m => m.room))].join(', ');
430445
const div = document.createElement('div');
431446
div.className = 'section-item';
432447
div.innerHTML = `
433448
<div>
434449
<strong>${info.code} - ${title} (${info.section})</strong>
435450
<div class="details">
436451
${days} ${times}<br>
437-
Room: ${info.room}<br>
452+
Room: ${rooms}<br>
438453
Dept: ${info.dept}<br>
439454
Free Seats: ${info.free}<br>
440455
Type: ${info.type}<br>
@@ -542,7 +557,7 @@ <h2>Generated Routine</h2>
542557
code: course.code,
543558
sec: course.section,
544559
title: course.title,
545-
room: course.room,
560+
room: m.room,
546561
assigned: conflict ? '' : (num > course.free ? 'Over cap' : num),
547562
status: conflict ? 'Time conflict' : ''
548563
});
@@ -614,6 +629,8 @@ <h2>Generated Routine</h2>
614629
if (!course) return;
615630
const days = course.meetings.map(m => m.day).join(', ');
616631
const times = course.meetings.map(m => `${m.start}-${m.end}`).join('; ');
632+
// Compute unique room list from meetings
633+
const rooms = [...new Set(course.meetings.map(m => m.room))].join(', ');
617634
const row = document.createElement('tr');
618635
row.id = `sel-${i}`;
619636
row.innerHTML = `
@@ -622,7 +639,7 @@ <h2>Generated Routine</h2>
622639
<td>${course.section}</td>
623640
<td>${days}</td>
624641
<td>${times}</td>
625-
<td>${course.room}</td>
642+
<td>${rooms}</td>
626643
<td>
627644
<input type="number" id="num-${i}" min="1" max="${course.free}" placeholder="Fill student number"
628645
onblur="validateInput(this, ${course.free}); updateTotalCount();" onchange="updateTotalCount();">

0 commit comments

Comments
 (0)