const days = new Map([ ["M", "Monday"], ["T", "Tuesday"], ["W", "Wednesday"], ["TH", "Thursday"], ["F", "Friday"] ]); const semOrder = { "Spring": 0, "Fall": 1, "Summer": 2, "Winter": 3 } function buildQuery(course_data, sem) { let query = !sem ? "select * from agg" : "select * from grades"; query += " where dept like '%" + course_data["department"] + "%'"; query += " and prof like '%" + course_data["prof_name"].replace(/'/g, "") + "%'"; query += " and course_nbr like '%" + course_data["number"] + "%'"; if (sem) { query += "and sem like '%" + sem + "%'"; } return query + "order by a1+a2+a3+b1+b2+b3+c1+c2+c3+d1+d2+d3+f desc"; } function semesterSort(semA, semB) { let aName = semA.split(' ')[0]; let aYear = parseInt(semA.split(' ')[1]); let bName = semB.split(' ')[0]; let bYear = parseInt(semB.split(' ')[1]); if (aYear < bYear) return -1; if (aYear > bYear) return 1; if (semOrder[aName] < semOrder[bName]) return -1; if (semOrder[aName] > semOrder[bName]) return 1; return 0; } function buildChartConfig(data) { return { chart: { type: 'column', backgroundColor: ' #fefefe', spacingLeft: 10 }, title: { text: null }, subtitle: { text: null }, legend: { enabled: false }, xAxis: { title: { text: 'Grades' }, categories: [ 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F' ], crosshair: true }, yAxis: { min: 0, title: { text: 'Students' } }, credits: { enabled: false }, lang: { noData: "The professor hasn't taught this class :(" }, tooltip: { headerFormat: '{point.key}
| {point.y:.0f} Students | ', footerFormat: '