summaryrefslogtreecommitdiff
path: root/js/curriculum.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/curriculum.js')
-rw-r--r--js/curriculum.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/js/curriculum.js b/js/curriculum.js
new file mode 100644
index 0000000..f6d6b35
--- /dev/null
+++ b/js/curriculum.js
@@ -0,0 +1,43 @@
+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) {
+ course_item.textContent = course.id + ' ' + course.name;
+ }));
+ };
+});