diff --git a/js/calendar.js b/js/calendar.js index 82f1c451..6aaccb56 100644 --- a/js/calendar.js +++ b/js/calendar.js @@ -100,8 +100,16 @@ function buildEventSource(saved_courses) { coursename, datetimearr } = saved_courses[i]; - let number = seperateCourseNameParts(coursename).number; - hours += parseInt(number.charAt(0)); + let number = separateCourseNameParts(coursename).number; + let class_length = parseInt(number.charAt(0)); + let multi_semester_code = number.slice(-1); + if (["A","B"].includes(multi_semester_code)) { + hours += Math.floor(class_length/2); + } else if (["X","Y","Z"].includes(multi_semester_code)) { + hours += Math.floor(class_length/3); + } else { + hours += class_length; + } for (let j = 0; j < datetimearr.length; j++) { let session = datetimearr[j]; // One single session for a class let event_obj = setEventForSection(session, color_counter, i); @@ -129,7 +137,7 @@ function setEventForSection(session, colorCounter, i) { let { department, number - } = seperateCourseNameParts(coursename) + } = separateCourseNameParts(coursename) beg_day = calculateBeginningDate(full_day) start_date = formatCalculateDate(beg_day, full_day, session[1][0]); end_date = formatCalculateDate(beg_day, full_day, session[1][1]); diff --git a/js/courseCatalog.js b/js/courseCatalog.js index d3665b7b..f6050ab2 100644 --- a/js/courseCatalog.js +++ b/js/courseCatalog.js @@ -105,7 +105,7 @@ function buildBasicCourseInfo(row, course_name, individual) { name, department, number - } = seperateCourseNameParts(course_name); + } = separateCourseNameParts(course_name); let instructor_text = $(row).find('td[data-th="Instructor"]').text(); let has_initial = instructor_text.indexOf(',') > 0; course_info = { @@ -223,7 +223,7 @@ function updateTextHighlighting(tds, canHighlight, isConflict, alreadyContains, } return false; }).map(function(course){ - let { name, department, number} = seperateCourseNameParts(course.coursename); + let { name, department, number} = separateCourseNameParts(course.coursename); return `${department} ${number} (${course.unique})`; }); if(isConflict && unique_list.length){ @@ -277,7 +277,7 @@ function getDayTimeArray(row, course_info) { } function convertDateTimeArrToLine(date, time, place) { - let arr = seperateDays(date) + let arr = separateDays(date) let output = prettifyDaysText(arr) let building = place.substring(0, place.search(/\d/) - 1); building = building ? building : "Undecided Location"; diff --git a/js/import.js b/js/import.js index e095bf74..3580d67c 100644 --- a/js/import.js +++ b/js/import.js @@ -114,7 +114,7 @@ function buildBasicCourseInfo(row, course_name, individual) { name, department, number - } = seperateCourseNameParts(course_name); + } = separateCourseNameParts(course_name); let instructor_text = $(row).find('td[data-th="Instructor"]').text(); let has_initial = instructor_text.indexOf(',') > 0; course_info = { diff --git a/js/popup.js b/js/popup.js index 4075c705..6cf872ca 100644 --- a/js/popup.js +++ b/js/popup.js @@ -12,7 +12,7 @@ function setCourseList() { updateConflicts(); courses = data.savedCourses; handleEmpty(); - let num_hours = 0; + let hours = 0; // build and append the course list element for (var i = 0; i < courses.length; i++) { let { coursename, unique, profname, status, datetimearr } = courses[i]; @@ -20,13 +20,20 @@ function setCourseList() { let line = buildTimeLines(datetimearr); let list_tile_color = getStatusColor(status); let list_sub_color = getStatusColor(status, true); - let { department, number } = seperateCourseNameParts(coursename); - num_hours += parseInt(number.substring(0, 1)); - + let { department, number } = separateCourseNameParts(coursename); + let class_length = parseInt(number.charAt(0)); + let multi_semester_code = number.slice(-1); + if (["A","B"].includes(multi_semester_code)) { + hours += Math.floor(class_length/2); + } else if (["X","Y","Z"].includes(multi_semester_code)) { + hours += Math.floor(class_length/3); + } else { + hours += class_length; + } let list_html = Template.Popup.list_item(i, list_tile_color, unique, department, number, profname, list_sub_color, line); $("#courseList").append(list_html); } - $("#meta-metric").text(num_hours); + $("#meta-metric").text(hours); }); } @@ -69,7 +76,7 @@ function updateConflicts() { /* prettify the name for the conflict messages*/ function formatShortenedCourseName(course) { - let { number, department } = seperateCourseNameParts(course.coursename); + let { number, department } = separateCourseNameParts(course.coursename); return `${department} ${number} (${course.unique})`; } @@ -300,9 +307,18 @@ function handleRemove(clicked_item, curr_course) { function subtractHours(curr_course) { let curr_total_hours = parseInt($("#meta-metric").text()); - let curr_course_number = seperateCourseNameParts(curr_course.coursename).number; - let curr_individual_hours = parseInt(curr_course_number.substring(0, 1)); - $("#meta-metric").text(curr_total_hours - curr_individual_hours); + let curr_course_number = separateCourseNameParts(curr_course.coursename).number; + let class_length = parseInt(curr_course_number.charAt(0)); + let multi_semester_code = curr_course_number.slice(-1); + if (["A","B"].includes(multi_semester_code)) { + $("#meta-metric").text(curr_total_hours - Math.floor(class_length/2)); + } else if (["X","Y","Z"].includes(multi_semester_code)) { + $("#meta-metric").text(curr_total_hours - Math.floor(class_length/3)); + } else { + $("#meta-metric").text(curr_total_hours - class_length); + } + + } function handleMoreInfo(clicked_item, curr_course) { diff --git a/js/utPlanner.js b/js/utPlanner.js index fb97ec1c..2afd6937 100644 --- a/js/utPlanner.js +++ b/js/utPlanner.js @@ -184,7 +184,7 @@ function buildTimeTitle(times) { } function makeLine(date, time, place) { - var arr = seperateDays(date) + var arr = separateDays(date) var output = prettifyDaysText(arr) var building = place.substring(0, place.search(/\d/) - 1); building = building == "" ? "Undecided Location" : building; diff --git a/js/util.js b/js/util.js index dc9ad6c5..840571b9 100644 --- a/js/util.js +++ b/js/util.js @@ -54,7 +54,7 @@ function capitalizeString(string) { return output.trim(); } -function seperateCourseNameParts(name) { +function separateCourseNameParts(name) { let num_index = name.search(/\d/); department = name.substring(0, num_index).trim(); number = name.substring(num_index, name.indexOf(" ", num_index)).trim(); @@ -67,11 +67,11 @@ function seperateCourseNameParts(name) { } -function seperateDays(date, simple=false) { +function separateDays(date, simple=false) { let arr = []; for (var i = 0; i < date.length; i++) { let letter = date.charAt(i); - let seperated_letter = letter; + let separated_letter = letter; if (letter == "T" && i < date.length - 1 && date.charAt(i + 1) == "H") { arr.push(simple ? "TH" : days.get("TH")); } else {