button disabling

This commit is contained in:
sghsri
2018-08-30 17:35:25 -05:00
parent 226ca88808
commit af0d8a775e
3 changed files with 95 additions and 85 deletions

View File

@@ -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">&times;</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">&times;</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

View File

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

View File

@@ -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;