Skip to content

Commit 6ebf51f

Browse files
authored
Merge pull request #88 from vatz88/gh-pages
Check Lab and Theory clash by timing support
2 parents 851663a + d2ff07b commit 6ebf51f

File tree

2 files changed

+71
-68
lines changed

2 files changed

+71
-68
lines changed

index.html

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ <h2>FFCS on The Go</h2>
155155
</header>
156156
<!-- End of container-fluid -->
157157

158-
<div class="container">
159-
<!-- Special Alert Message -->
160-
<div class="row">
158+
<!-- <div class="container"> -->
159+
<!-- Special Alert Message -->
160+
<!-- <div class="row">
161161
<div class="col-xs-12">
162162
<h1>Alerts</h1>
163163
<div class="alert alert-danger" role="alert">
@@ -168,7 +168,7 @@ <h1>Alerts</h1>
168168
</div>
169169
</div>
170170
</div>
171-
</div>
171+
</div> -->
172172
<!-- End of container -->
173173

174174
<hr>
@@ -449,90 +449,90 @@ <h5 class="list-group-item-heading">F1+TF1</h5>
449449
<tr>
450450
<!-- IMPORTANT: It's important to maintain the order of class. i.e. A1,F1,D1,.. are 2nd -->
451451
<td class="ColumnOneDays">MON</td>
452-
<td class="TimetableContent A1 L1">A1 / L1</td>
453-
<td class="TimetableContent F1 L2">F1 / L2</td>
454-
<td class="TimetableContent D1 L3">D1 / L3</td>
455-
<td class="TimetableContent TB1 L4">TB1 / L4</td>
456-
<td class="TimetableContent TG1 L5">TG1 / L5</td>
457-
<td class="TimetableContent L6">L6</td>
458-
<td class="TimetableContent A2 L31">A2 / L31</td>
459-
<td class="TimetableContent F2 L32">F2 / L32</td>
460-
<td class="TimetableContent D2 L33">D2 / L33</td>
461-
<td class="TimetableContent TB2 L34">TB2 / L34</td>
462-
<td class="TimetableContent TG2 L35">TG2 / L35</td>
463-
<td class="TimetableContent V3 L36">V3 / L36</td>
452+
<td class="TimetableContent A1 L1 noPostLab">A1 / L1</td>
453+
<td class="TimetableContent F1 L2 noPreTheory">F1 / L2</td>
454+
<td class="TimetableContent D1 L3 noPostLab">D1 / L3</td>
455+
<td class="TimetableContent TB1 L4 noPostLab noPreTheory">TB1 / L4</td>
456+
<td class="TimetableContent TG1 L5 noPostLab noPreTheory">TG1 / L5</td>
457+
<td class="TimetableContent L6 noPreTheory">L6</td>
458+
<td class="TimetableContent A2 L31 noPostLab">A2 / L31</td>
459+
<td class="TimetableContent F2 L32 noPreTheory">F2 / L32</td>
460+
<td class="TimetableContent D2 L33 noPostLab">D2 / L33</td>
461+
<td class="TimetableContent TB2 L34 noPostLab noPreTheory">TB2 / L34</td>
462+
<td class="TimetableContent TG2 L35 noPostLab noPreTheory">TG2 / L35</td>
463+
<td class="TimetableContent V3 L36 noPreTheory">V3 / L36</td>
464464
<!--<td class="TimetableContent H1 L61">H1 / L61</td>
465465
<td class="TimetableContent K1 L62">K1 / L62</td>-->
466466
</tr>
467467
<tr>
468468
<td class="ColumnOneDays">TUE</td>
469-
<td class="TimetableContent B1 L7">B1 / L7</td>
470-
<td class="TimetableContent G1 L8">G1 / L8</td>
471-
<td class="TimetableContent E1 L9">E1 / L9</td>
472-
<td class="TimetableContent TC1 L10">TC1 / L10</td>
473-
<td class="TimetableContent TAA1 L11">TAA1 / L11</td>
474-
<td class="TimetableContent L12">L12</td>
475-
<td class="TimetableContent B2 L37">B2 / L37</td>
476-
<td class="TimetableContent G2 L38">G2 / L38</td>
477-
<td class="TimetableContent E2 L39">E2 / L39</td>
478-
<td class="TimetableContent TC2 L40">TC2 / L40</td>
479-
<td class="TimetableContent TAA2 L41">TAA2 / L41</td>
480-
<td class="TimetableContent V4 L42">V4 / L42</td>
469+
<td class="TimetableContent B1 L7 noPostLab">B1 / L7</td>
470+
<td class="TimetableContent G1 L8 noPreTheory">G1 / L8</td>
471+
<td class="TimetableContent E1 L9 noPostLab">E1 / L9</td>
472+
<td class="TimetableContent TC1 L10 noPostLab noPreTheory">TC1 / L10</td>
473+
<td class="TimetableContent TAA1 L11 noPostLab noPreTheory">TAA1 / L11</td>
474+
<td class="TimetableContent L12 noPreTheory">L12</td>
475+
<td class="TimetableContent B2 L37 noPostLab">B2 / L37</td>
476+
<td class="TimetableContent G2 L38 noPreTheory">G2 / L38</td>
477+
<td class="TimetableContent E2 L39 noPostLab">E2 / L39</td>
478+
<td class="TimetableContent TC2 L40 noPostLab noPreTheory">TC2 / L40</td>
479+
<td class="TimetableContent TAA2 L41 noPostLab noPreTheory">TAA2 / L41</td>
480+
<td class="TimetableContent V4 L42 noPreTheory">V4 / L42</td>
481481
<!--<td class="TimetableContent H2 L63">H2 / L63</td>
482482
<td class="TimetableContent K2 L64">K2 / L64</td>-->
483483
</tr>
484484
<tr>
485485
<td class="ColumnOneDays">WED</td>
486-
<td class="TimetableContent C1 L13">C1 / L13</td>
487-
<td class="TimetableContent A1 L14">A1 / L14</td>
488-
<td class="TimetableContent F1 L15">F1 / L15</td>
489-
<td class="TimetableContent V1 L16">V1 / L16</td>
490-
<td class="TimetableContent V2">V2</td>
486+
<td class="TimetableContent C1 L13 noPostLab">C1 / L13</td>
487+
<td class="TimetableContent A1 L14 noPreTheory">A1 / L14</td>
488+
<td class="TimetableContent F1 L15 noPostLab">F1 / L15</td>
489+
<td class="TimetableContent V1 L16 noPostLab noPreTheory">V1 / L16</td>
490+
<td class="TimetableContent V2 noPostLab noPreTheory">V2</td>
491491
<td class="TimetableContent"></td>
492-
<td class="TimetableContent C2 L43">C2 / L43</td>
493-
<td class="TimetableContent A2 L44">A2 / L44</td>
494-
<td class="TimetableContent F2 L45">F2 / L45</td>
495-
<td class="TimetableContent TD2 L46">TD2 / L46</td>
496-
<td class="TimetableContent TBB2 L47">TBB2 / L47</td>
497-
<td class="TimetableContent V5 L48">V5 / L48</td>
492+
<td class="TimetableContent C2 L43 noPostLab">C2 / L43</td>
493+
<td class="TimetableContent A2 L44 noPreTheory">A2 / L44</td>
494+
<td class="TimetableContent F2 L45 noPostLab">F2 / L45</td>
495+
<td class="TimetableContent TD2 L46 noPostLab noPreTheory">TD2 / L46</td>
496+
<td class="TimetableContent TBB2 L47 noPostLab noPreTheory">TBB2 / L47</td>
497+
<td class="TimetableContent V5 L48 noPreTheory">V5 / L48</td>
498498
<!--<td class="TimetableContent H3 L65">H3 / L65</td>
499499
<td class="TimetableContent K3 L66">K3 / L66</td>-->
500500
</tr>
501501
<tr>
502502
<td class="ColumnOneDays">THU</td>
503-
<td class="TimetableContent D1 L19">D1 / L19</td>
504-
<td class="TimetableContent B1 L20">B1 / L20</td>
505-
<td class="TimetableContent G1 L21">G1 / L21</td>
506-
<td class="TimetableContent TE1 L22">TE1 / L22</td>
507-
<td class="TimetableContent TCC1 L23">TCC1 / L23</td>
508-
<td class="TimetableContent L24">L24</td>
509-
<td class="TimetableContent D2 L49">D2 / L49</td>
510-
<td class="TimetableContent B2 L50">B2 / L50</td>
511-
<td class="TimetableContent G2 L51">G2 / L51</td>
512-
<td class="TimetableContent TE2 L52">TE2 / L52</td>
513-
<td class="TimetableContent TCC2 L53">TCC2 / L53</td>
514-
<td class="TimetableContent V6 L54">V6 / L54</td>
503+
<td class="TimetableContent D1 L19 noPostLab">D1 / L19</td>
504+
<td class="TimetableContent B1 L20 noPreTheory">B1 / L20</td>
505+
<td class="TimetableContent G1 L21 noPostLab">G1 / L21</td>
506+
<td class="TimetableContent TE1 L22 noPostLab noPreTheory">TE1 / L22</td>
507+
<td class="TimetableContent TCC1 L23 noPostLab noPreTheory">TCC1 / L23</td>
508+
<td class="TimetableContent L24 noPreTheory">L24</td>
509+
<td class="TimetableContent D2 L49 noPostLab">D2 / L49</td>
510+
<td class="TimetableContent B2 L50 noPreTheory">B2 / L50</td>
511+
<td class="TimetableContent G2 L51 noPostLab">G2 / L51</td>
512+
<td class="TimetableContent TE2 L52 noPostLab noPreTheory">TE2 / L52</td>
513+
<td class="TimetableContent TCC2 L53 noPostLab noPreTheory">TCC2 / L53</td>
514+
<td class="TimetableContent V6 L54 noPreTheory">V6 / L54</td>
515515
<!--<td class="TimetableContent H4 L67">H4 / L67</td>
516516
<td class="TimetableContent K4 L68">K4 / L68</td>-->
517517
</tr>
518518
<tr>
519519
<td class="ColumnOneDays">FRI</td>
520-
<td class="TimetableContent E1 L25">E1 / L25</td>
521-
<td class="TimetableContent C1 L26">C1 / L26</td>
522-
<td class="TimetableContent TA1 L27">TA1 / L27</td>
523-
<td class="TimetableContent TF1 L28">TF1 / L28</td>
524-
<td class="TimetableContent TD1 L29">TD1 / L29</td>
525-
<td class="TimetableContent L30">L30</td>
526-
<td class="TimetableContent E2 L55">E2 / L55</td>
527-
<td class="TimetableContent C2 L56">C2 / L56</td>
528-
<td class="TimetableContent TA2 L57">TA2 / L57</td>
529-
<td class="TimetableContent TF2 L58">TF2 / L58</td>
530-
<td class="TimetableContent TDD2 L59">TDD2 / L59</td>
531-
<td class="TimetableContent V7 L60">V7 / L60</td>
520+
<td class="TimetableContent E1 L25 noPostLab">E1 / L25</td>
521+
<td class="TimetableContent C1 L26 noPreTheory">C1 / L26</td>
522+
<td class="TimetableContent TA1 L27 noPostLab">TA1 / L27</td>
523+
<td class="TimetableContent TF1 L28 noPostLab noPreTheory">TF1 / L28</td>
524+
<td class="TimetableContent TD1 L29 noPostLab noPreTheory">TD1 / L29</td>
525+
<td class="TimetableContent L30 noPreTheory">L30</td>
526+
<td class="TimetableContent E2 L55 noPostLab">E2 / L55</td>
527+
<td class="TimetableContent C2 L56 noPreTheory">C2 / L56</td>
528+
<td class="TimetableContent TA2 L57 noPostLab">TA2 / L57</td>
529+
<td class="TimetableContent TF2 L58 noPostLab noPreTheory">TF2 / L58</td>
530+
<td class="TimetableContent TDD2 L59 noPostLab noPreTheory">TDD2 / L59</td>
531+
<td class="TimetableContent V7 L60 noPreTheory">V7 / L60</td>
532532
<!--<td class="TimetableContent H5 L69">H5 / L69</td>
533533
<td class="TimetableContent K5 L70">K5 / L70</td>-->
534534
</tr>
535-
<tr>
535+
<!-- <tr>
536536
<td class="ColumnOneDays">SAT</td>
537537
<td class="TimetableContent V8 L71">V8 / L71</td>
538538
<td class="TimetableContent X1 L72">X1 / L72</td>
@@ -561,7 +561,7 @@ <h5 class="list-group-item-heading">F1+TF1</h5>
561561
<td class="TimetableContent W2 L92">W2 / L92</td>
562562
<td class="TimetableContent W2 L93">W2 / L93</td>
563563
<td class="TimetableContent V11 L94">V11 / L94</td>
564-
</tr>
564+
</tr> -->
565565
</table>
566566
</div>
567567
</div>

js/colorChange.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ function addColorChangeEvents() {
324324

325325
function addCourseToTimetable(courseId, courseCode, venue, slotArray, isProject) {
326326
slotArray.forEach(function (slot) {
327-
var $divElement = $('<div data-course="' + 'course' + courseId + '" data-is-project="' + isProject + '">' + courseCode + '-' + venue + '</div>');
327+
var $divElement = $('<div data-course="' + 'course' + courseId + '" data-is-lab="' + (slot[0] === 'L') + '" data-is-project="' + isProject + '">' + courseCode + '-' + venue + '</div>');
328328
$('#timetable tr .' + slot).addClass('highlight').append($divElement);
329329
if ($(".quick-selection ." + slot + "-tile")) {
330330
$(".quick-selection ." + slot + "-tile").addClass("highlight");
@@ -409,7 +409,10 @@ function checkSlotClash() {
409409
var $highlightedCell = $(this);
410410
var $highlightedCellDivs = $(this).children('div[data-course]');
411411

412-
if ($highlightedCellDivs.length > 1) {
412+
var noPostLabFlag = $(this).hasClass('noPostLab') && $(this).children('div[data-is-lab="false"]').length > 0 && $(this).next().children('div[data-is-lab="true"]').length > 0;
413+
var noPreTheoryFlag = $(this).hasClass('noPreTheory') && $(this).children('div[data-is-lab="true"]').length > 0 && $(this).prev().children('div[data-is-lab="false"]').length > 0;
414+
415+
if ($highlightedCellDivs.length > 1 || noPostLabFlag || noPreTheoryFlag) {
413416
var isClashing = true;
414417

415418
// Check if there are two dissimilar courses or if there is a J
@@ -656,4 +659,4 @@ function loadCourseData() {
656659
console.error("Failed to load course data.");
657660
});
658661
}
659-
}
662+
}

0 commit comments

Comments
 (0)