summaryrefslogtreecommitdiff
path: root/js/curriculum.js
blob: 4594f4134f90df7b8e13050504f9838b71ac0338 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
define(['courses'], function(courses) {
    'use strict';

    function makeCoursesList(courseCallback) {
        var years_list = document.createElement('ul');
        years_list.className = 'year';
        // courses.schedule[YEAR][quartile][coursesIdx]
        courses.schedule.forEach(function(year) {
            var year_item = document.createElement('li');
            years_list.appendChild(year_item);
            var quartiles_list = document.createElement('ul');
            quartiles_list.className = 'quartile';
            year_item.appendChild(quartiles_list);

            // [year][QUARTILE][coursesIdx]
            year.forEach(function(quartile) {
                var quartile_item = document.createElement('li');
                quartiles_list.appendChild(quartile_item);
                var courses_list = document.createElement('ul');
                courses_list.className = 'courses';
                quartile_item.appendChild(courses_list);

                // [year][quartile][COURSESIDX]
                quartile.forEach(function(course) {
                    var course_item = document.createElement('li');
                    courses_list.appendChild(course_item);

                    // display course information
                    courseCallback(course_item, course);
                });
            });
        });
        return years_list;
    }

    return function() {
        // navigation
        var cmenu = document.getElementById("curriculum-menu");
        cmenu.appendChild(makeCoursesList(function(course_item, course) {
            // types: bc, major, bep
            course_item.dataset.type = course.type || 'major';

            course_item.textContent = course.id + ' ' + course.name;
        }));
    };
});