blob: e122640fa4ed3e5f4dc7837aed751782c1d00164 (
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
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.title = course.name;
var label = document.createElement('span');
label.textContent = course.name;
// display link for courses which have a description block
if (course.id) {
var link = document.createElement('a');
link.href = '#/curriculum/' + course.id;
link.appendChild(label);
course_item.appendChild(link);
} else {
course_item.appendChild(label);
}
// HACK: this need to be fixed in CSS!
course_item.addEventListener('click', function() {
location.href = '#/curriculum/' + course.id;
});
}));
var citems = document.getElementById('curriculum-items');
courses.courses.forEach(function(course) {
var header = document.createElement('h2');
//header.id = 'course-' + course.id;
header.id = '/curriculum/' + course.id;
header.textContent = course.name + ' (' + course.when + ')';
citems.appendChild(header);
var text_block = document.createElement('p');
text_block.textContent = course.description;
citems.appendChild(text_block);
var links_block = document.createElement('p');
var back_to_top = document.createElement('a');
back_to_top.href = '#/curriculum/menu';
back_to_top.textContent = 'Back to table';
links_block.appendChild(back_to_top);
citems.appendChild(links_block);
});
};
});
|