diff --git a/js/calendar.js b/js/calendar.js
index 8971d4d5..73452a02 100644
--- a/js/calendar.js
+++ b/js/calendar.js
@@ -1,8 +1,8 @@
$(function () {
const materialColors = ['#4CAF50', '#CDDC39',
- '#FFC107', '#2196F3', '#F57C00', '#9C27B0', '#FF5722', '#673AB7',
- '#FF5252', '#E91E63', '#009688', '#00BCD4',
- '#4E342E', '#424242', '#9E9E9E'
+ '#FFC107', '#2196F3', '#F57C00', '#9C27B0', '#FF5722', '#673AB7',
+ '#FF5252', '#E91E63', '#009688', '#00BCD4',
+ '#4E342E', '#424242', '#9E9E9E'
];
const days = new Map([
["M", "Monday"],
@@ -10,16 +10,15 @@ $(function () {
["W", "Wednesday"],
["TH", "Thursday"],
["F", "Friday"]
- ]);
+ ]);
const fadetime = 150;
const butdelay = 75;
- $("#calendar").prepend('
');
+ $("#calendar").prepend('');
// Counter to iterate through material colors to avoid duplicates
var colorCounter = 0;
// Each schedule needs to store 'TITLE - START TIME - END TIME - COLOR'
var classSchedules = [];
var savedCourses = [];
- var currLink = "";
var currindex = 0;
chrome.storage.sync.get("savedCourses", function (data) {
// Iterate through each saved course and add to 'event'
@@ -46,33 +45,73 @@ $(function () {
events: classSchedules,
slotLabelFormat: [
'h:mm A' // lower level of text
- ],
- eventRender: function (event, element, view) {
- $(element).css("padding", "5px");
- $(element).css("margin-bottom", "5px");
+ ],
+ eventRender: function (event, element, view) {
+ $(element).css("padding", "5px");
+ $(element).css("margin-bottom", "5px");
- },
- eventClick: function (data, event, view) {
- $("#myModal").fadeIn(fadetime);
- $("#colorStrip").css('background-color', data.color);
- currindex = data.index;
- currLink = savedCourses[currindex].link;
- var currunique = savedCourses[currindex].unique;
- $("#classname").html(`${savedCourses[currindex].coursename} (${savedCourses[currindex].unique})`);
- $("#timelines").append(makeLine(savedCourses[currindex].datetimearr));
+ },
+ eventClick: function (data, event, view) {
+ $("#myModal").fadeIn(fadetime);
+ $("#colorStrip").css('background-color', data.color);
+ currindex = data.index;
+ var currLink = savedCourses[currindex].link;
+ var currunique = savedCourses[currindex].unique;
+ $("#classname").html(`${savedCourses[currindex].coursename} (${savedCourses[currindex].unique})`);
+ $("#timelines").append(makeLine(savedCourses[currindex].datetimearr));
- var uncapProf = prettifyName(savedCourses[currindex].profname);
- if (uncapProf == "") {
- uncapProf = "Undecided";
+ var uncapProf = prettifyName(savedCourses[currindex].profname);
+ if (uncapProf == "") {
+ uncapProf = "Undecided";
+ }
+ $("#prof").html(`with ${uncapProf}`);
+
+ let status = savedCourses[currindex].status;
+ if(status.includes("closed") || status.includes("cancelled")){
+ $("#register").text("Class Closed").css("background-color","#FF5722");
+ } else{
+ $("#register").text("Register").css("background-color","#4CAF50").click(function () {
+ let registerlink = savedCourses[currindex].registerlink;
+ setTimeout(() => {
+ window.open(registerlink);
+ }, butdelay);
+ });
+ // When the user clicks on (x), close the modal
+ $(".close").click(() => {
+ $("#myModal").fadeOut(fadetime);
+ });
+ $("#info").click(() => {
+ setTimeout(() => {
+ window.open(currLink);
+ }, butdelay);
+ });
+ $("#remove").click(() => {
+ setTimeout(() => {
+ chrome.runtime.sendMessage({
+ command: "courseStorage",
+ course: savedCourses[currindex],
+ action: "remove"
+ }, function (response) {
+ $("#myModal").fadeOut(fadetime);
+ updateCalendar();
+ chrome.tabs.query({}, function (tabs) {
+ for (var i = 0; i < tabs.length; i++) {
+ chrome.tabs.sendMessage(tabs[i].id, {
+ command: "updateCourseList"
+ });
+ }
+ });
+ });
+ }, butdelay);
+ });
+ }
}
- $("#prof").html(`with ${uncapProf}`);
- }
- });
- });
+ });
+});
- /* convert from the dtarr and maek the time lines*/
- function makeLine(datetimearr) {
- $(".time").remove();
+/* convert from the dtarr and maek the time lines*/
+function makeLine(datetimearr) {
+ $(".time").remove();
//converted times back
console.log(datetimearr);
var dtmap = new Map([]);
@@ -101,35 +140,6 @@ $(function () {
return output;
}
-
- // When the user clicks on (x), close the modal
- $(".close").click(() => {
- $("#myModal").fadeOut(fadetime);
- });
- $("#info").click(() => {
- setTimeout(() => {
- window.open(currLink);
- }, butdelay);
- });
- $("#remove").click(() => {
- setTimeout(() => {
- chrome.runtime.sendMessage({
- command: "courseStorage",
- course: savedCourses[currindex],
- action: "remove"
- }, function (response) {
- $("#myModal").fadeOut(fadetime);
- updateCalendar();
- chrome.tabs.query({}, function (tabs) {
- for (var i = 0; i < tabs.length; i++) {
- chrome.tabs.sendMessage(tabs[i].id, {
- command: "updateCourseList"
- });
- }
- });
- });
- }, butdelay);
- });
/*Close Modal when hit escape*/
$(document).keydown((e) => {
if (e.keyCode == 27) {
@@ -195,21 +205,21 @@ $(function () {
classSchedules.push({
title: `${department}-${course_nbr} with ${uncapProf}`,
start: moment().format("YYYY-MM-") +
- moment()
- .day(fullday)
- ._d.toString()
- .split(" ")[2] +
- "T" +
- session[1][0] +
- ":00",
+ moment()
+ .day(fullday)
+ ._d.toString()
+ .split(" ")[2] +
+ "T" +
+ session[1][0] +
+ ":00",
end: moment().format("YYYY-MM-") +
- moment()
- .day(fullday)
- ._d.toString()
- .split(" ")[2] +
- "T" +
- session[1][1] +
- ":00",
+ moment()
+ .day(fullday)
+ ._d.toString()
+ .split(" ")[2] +
+ "T" +
+ session[1][1] +
+ ":00",
color: materialColors[colorCounter],
index: i,
allday: false
diff --git a/js/content.js b/js/content.js
index a85ea941..81e8ca3d 100644
--- a/js/content.js
+++ b/js/content.js
@@ -130,22 +130,16 @@ function update() {
}, function (response) {
if (response.isConflict && data.courseConflictHighlight) {
$(thisForm).find('td').each(function () {
- $(this).css('color', '#F44336');
- $(this).css('text-decoration', 'line-through');
- $(this).css('font-weight', 'normal');
+ $(this).css('color', '#F44336').css('text-decoration', 'line-through').css('font-weight', 'normal');
});
} else {
$(thisForm).find('td').each(function () {
- $(this).css('color', 'black');
- $(this).css('text-decoration', 'none');
- $(this).css('font-weight', 'normal');
+ $(this).css('color', 'black').css('text-decoration', 'none').css('font-weight', 'normal');
});
}
if (response.alreadyContains) {
$(thisForm).find('td').each(function () {
- $(this).css('color', '#4CAF50');
- $(this).css('text-decoration', 'none');
- $(this).css('font-weight', 'bold');
+ $(this).css('color', '#4CAF50').css('text-decoration', 'none').css('font-weight', 'bold');
});
}
});
diff --git a/js/popup.js b/js/popup.js
index f6e68e27..536eb4c1 100644
--- a/js/popup.js
+++ b/js/popup.js
@@ -88,12 +88,18 @@ $(document).ready(function () {
$(this).find("#listMoreInfo").click(function () {
window.open(courses[$(this).closest("li").attr("id")].link);
});
- $(this).find("#register").click(function () {
- let registerlink = courses[$(this).closest("li").attr("id")].registerlink;
- chrome.tabs.query({currentWindow: true, active: true}, function (tab) {
- chrome.tabs.update(tab.id, {url: registerlink});
+ let status = courses[$(this).closest("li").attr("id")].status;
+ if(status.includes("closed") || status.includes("cancelled")){
+ $(this).find("#register").text("Class Closed").css("background-color","#FF5722");
+ } else{
+ $(this).find("#register").text("Register").css("background-color","#4CAF50").click(function () {
+ let registerlink = courses[$(this).closest("li").attr("id")].registerlink;
+ chrome.tabs.query({currentWindow: true, active: true}, function (tab) {
+ chrome.tabs.update(tab.id, {url: registerlink});
});
});
+ }
+
/* clear the conflict messages, then remove the course and updateConflicts. update the tabs*/
$(this).find("#listRemove").click(function () {
var thisForm = this;