button disabling
This commit is contained in:
154
js/calendar.js
154
js/calendar.js
@@ -1,8 +1,8 @@
|
|||||||
$(function () {
|
$(function () {
|
||||||
const materialColors = ['#4CAF50', '#CDDC39',
|
const materialColors = ['#4CAF50', '#CDDC39',
|
||||||
'#FFC107', '#2196F3', '#F57C00', '#9C27B0', '#FF5722', '#673AB7',
|
'#FFC107', '#2196F3', '#F57C00', '#9C27B0', '#FF5722', '#673AB7',
|
||||||
'#FF5252', '#E91E63', '#009688', '#00BCD4',
|
'#FF5252', '#E91E63', '#009688', '#00BCD4',
|
||||||
'#4E342E', '#424242', '#9E9E9E'
|
'#4E342E', '#424242', '#9E9E9E'
|
||||||
];
|
];
|
||||||
const days = new Map([
|
const days = new Map([
|
||||||
["M", "Monday"],
|
["M", "Monday"],
|
||||||
@@ -10,16 +10,15 @@ $(function () {
|
|||||||
["W", "Wednesday"],
|
["W", "Wednesday"],
|
||||||
["TH", "Thursday"],
|
["TH", "Thursday"],
|
||||||
["F", "Friday"]
|
["F", "Friday"]
|
||||||
]);
|
]);
|
||||||
const fadetime = 150;
|
const fadetime = 150;
|
||||||
const butdelay = 75;
|
const butdelay = 75;
|
||||||
$("#calendar").prepend('<div id="myModal" class="modal"><div class="modal-content"><span class="close">×</span><div class="card"><div id="colorStrip" style="height:10px;"></div><div class="cardcontainer"><div><div style="display:flex;"><h2 id="classname">Classname</h2></div><p id="prof">Prof</p></div><div id="timelines"></div><button id="info" class="matbut" style="font-size:medium; margin-right: auto; margin-left:auto; background: #FF9800;">More Info</button><button id="remove" class="matbut" style="font-size:medium;margin:10px;background: #FF0000;">Remove</button></div></div></div></div>');
|
$("#calendar").prepend('<div id="myModal" class="modal"><div class="modal-content"><span class="close">×</span><div class="card"><div id="colorStrip" style="height:10px;"></div><div class="cardcontainer"><div><div style="display:flex;"><h2 id="classname">Classname</h2></div><p id="prof">Prof</p></div><div id="timelines"></div><button id="info" class="matbut" style="font-size:medium; margin-right: auto; margin-left:auto; background: #2196F3;">More Info</button><button id="register" class="matbut" style="font-size:medium; margin-right: auto; margin-left:10px; background: #4CAF50;">Register</button><button id="remove" class="matbut" style="font-size:medium;margin:10px;background: #FF0000;">Remove</button></div></div></div></div>');
|
||||||
// Counter to iterate through material colors to avoid duplicates
|
// Counter to iterate through material colors to avoid duplicates
|
||||||
var colorCounter = 0;
|
var colorCounter = 0;
|
||||||
// Each schedule needs to store 'TITLE - START TIME - END TIME - COLOR'
|
// Each schedule needs to store 'TITLE - START TIME - END TIME - COLOR'
|
||||||
var classSchedules = [];
|
var classSchedules = [];
|
||||||
var savedCourses = [];
|
var savedCourses = [];
|
||||||
var currLink = "";
|
|
||||||
var currindex = 0;
|
var currindex = 0;
|
||||||
chrome.storage.sync.get("savedCourses", function (data) {
|
chrome.storage.sync.get("savedCourses", function (data) {
|
||||||
// Iterate through each saved course and add to 'event'
|
// Iterate through each saved course and add to 'event'
|
||||||
@@ -46,33 +45,73 @@ $(function () {
|
|||||||
events: classSchedules,
|
events: classSchedules,
|
||||||
slotLabelFormat: [
|
slotLabelFormat: [
|
||||||
'h:mm A' // lower level of text
|
'h:mm A' // lower level of text
|
||||||
],
|
],
|
||||||
eventRender: function (event, element, view) {
|
eventRender: function (event, element, view) {
|
||||||
$(element).css("padding", "5px");
|
$(element).css("padding", "5px");
|
||||||
$(element).css("margin-bottom", "5px");
|
$(element).css("margin-bottom", "5px");
|
||||||
|
|
||||||
},
|
},
|
||||||
eventClick: function (data, event, view) {
|
eventClick: function (data, event, view) {
|
||||||
$("#myModal").fadeIn(fadetime);
|
$("#myModal").fadeIn(fadetime);
|
||||||
$("#colorStrip").css('background-color', data.color);
|
$("#colorStrip").css('background-color', data.color);
|
||||||
currindex = data.index;
|
currindex = data.index;
|
||||||
currLink = savedCourses[currindex].link;
|
var currLink = savedCourses[currindex].link;
|
||||||
var currunique = savedCourses[currindex].unique;
|
var currunique = savedCourses[currindex].unique;
|
||||||
$("#classname").html(`${savedCourses[currindex].coursename} <span style='font-size:small'>(${savedCourses[currindex].unique})</span>`);
|
$("#classname").html(`${savedCourses[currindex].coursename} <span style='font-size:small'>(${savedCourses[currindex].unique})</span>`);
|
||||||
$("#timelines").append(makeLine(savedCourses[currindex].datetimearr));
|
$("#timelines").append(makeLine(savedCourses[currindex].datetimearr));
|
||||||
|
|
||||||
var uncapProf = prettifyName(savedCourses[currindex].profname);
|
var uncapProf = prettifyName(savedCourses[currindex].profname);
|
||||||
if (uncapProf == "") {
|
if (uncapProf == "") {
|
||||||
uncapProf = "Undecided";
|
uncapProf = "Undecided";
|
||||||
|
}
|
||||||
|
$("#prof").html(`with <span style='font-weight:bold;'>${uncapProf}</span>`);
|
||||||
|
|
||||||
|
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 <span> (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 <span style='font-weight:bold;'>${uncapProf}</span>`);
|
});
|
||||||
}
|
});
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/* convert from the dtarr and maek the time lines*/
|
/* convert from the dtarr and maek the time lines*/
|
||||||
function makeLine(datetimearr) {
|
function makeLine(datetimearr) {
|
||||||
$(".time").remove();
|
$(".time").remove();
|
||||||
//converted times back
|
//converted times back
|
||||||
console.log(datetimearr);
|
console.log(datetimearr);
|
||||||
var dtmap = new Map([]);
|
var dtmap = new Map([]);
|
||||||
@@ -101,35 +140,6 @@ $(function () {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// When the user clicks on <span> (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*/
|
/*Close Modal when hit escape*/
|
||||||
$(document).keydown((e) => {
|
$(document).keydown((e) => {
|
||||||
if (e.keyCode == 27) {
|
if (e.keyCode == 27) {
|
||||||
@@ -195,21 +205,21 @@ $(function () {
|
|||||||
classSchedules.push({
|
classSchedules.push({
|
||||||
title: `${department}-${course_nbr} with ${uncapProf}`,
|
title: `${department}-${course_nbr} with ${uncapProf}`,
|
||||||
start: moment().format("YYYY-MM-") +
|
start: moment().format("YYYY-MM-") +
|
||||||
moment()
|
moment()
|
||||||
.day(fullday)
|
.day(fullday)
|
||||||
._d.toString()
|
._d.toString()
|
||||||
.split(" ")[2] +
|
.split(" ")[2] +
|
||||||
"T" +
|
"T" +
|
||||||
session[1][0] +
|
session[1][0] +
|
||||||
":00",
|
":00",
|
||||||
end: moment().format("YYYY-MM-") +
|
end: moment().format("YYYY-MM-") +
|
||||||
moment()
|
moment()
|
||||||
.day(fullday)
|
.day(fullday)
|
||||||
._d.toString()
|
._d.toString()
|
||||||
.split(" ")[2] +
|
.split(" ")[2] +
|
||||||
"T" +
|
"T" +
|
||||||
session[1][1] +
|
session[1][1] +
|
||||||
":00",
|
":00",
|
||||||
color: materialColors[colorCounter],
|
color: materialColors[colorCounter],
|
||||||
index: i,
|
index: i,
|
||||||
allday: false
|
allday: false
|
||||||
|
|||||||
@@ -130,22 +130,16 @@ function update() {
|
|||||||
}, function (response) {
|
}, function (response) {
|
||||||
if (response.isConflict && data.courseConflictHighlight) {
|
if (response.isConflict && data.courseConflictHighlight) {
|
||||||
$(thisForm).find('td').each(function () {
|
$(thisForm).find('td').each(function () {
|
||||||
$(this).css('color', '#F44336');
|
$(this).css('color', '#F44336').css('text-decoration', 'line-through').css('font-weight', 'normal');
|
||||||
$(this).css('text-decoration', 'line-through');
|
|
||||||
$(this).css('font-weight', 'normal');
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
$(thisForm).find('td').each(function () {
|
$(thisForm).find('td').each(function () {
|
||||||
$(this).css('color', 'black');
|
$(this).css('color', 'black').css('text-decoration', 'none').css('font-weight', 'normal');
|
||||||
$(this).css('text-decoration', 'none');
|
|
||||||
$(this).css('font-weight', 'normal');
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (response.alreadyContains) {
|
if (response.alreadyContains) {
|
||||||
$(thisForm).find('td').each(function () {
|
$(thisForm).find('td').each(function () {
|
||||||
$(this).css('color', '#4CAF50');
|
$(this).css('color', '#4CAF50').css('text-decoration', 'none').css('font-weight', 'bold');
|
||||||
$(this).css('text-decoration', 'none');
|
|
||||||
$(this).css('font-weight', 'bold');
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
14
js/popup.js
14
js/popup.js
@@ -88,12 +88,18 @@ $(document).ready(function () {
|
|||||||
$(this).find("#listMoreInfo").click(function () {
|
$(this).find("#listMoreInfo").click(function () {
|
||||||
window.open(courses[$(this).closest("li").attr("id")].link);
|
window.open(courses[$(this).closest("li").attr("id")].link);
|
||||||
});
|
});
|
||||||
$(this).find("#register").click(function () {
|
let status = courses[$(this).closest("li").attr("id")].status;
|
||||||
let registerlink = courses[$(this).closest("li").attr("id")].registerlink;
|
if(status.includes("closed") || status.includes("cancelled")){
|
||||||
chrome.tabs.query({currentWindow: true, active: true}, function (tab) {
|
$(this).find("#register").text("Class Closed").css("background-color","#FF5722");
|
||||||
chrome.tabs.update(tab.id, {url: registerlink});
|
} 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*/
|
/* clear the conflict messages, then remove the course and updateConflicts. update the tabs*/
|
||||||
$(this).find("#listRemove").click(function () {
|
$(this).find("#listRemove").click(function () {
|
||||||
var thisForm = this;
|
var thisForm = this;
|
||||||
|
|||||||
Reference in New Issue
Block a user