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; })); }; });