options button, styling changes, bug fixes
This commit is contained in:
134
js/background.js
134
js/background.js
@@ -1,23 +1,19 @@
|
||||
/* Handle messages and their commands from content and popup scripts*/
|
||||
chrome.runtime.onMessage.addListener(function(request, sender, response) {
|
||||
if(request.command == "courseStorage") {
|
||||
if(request.action == "add"){
|
||||
add(request,sender,response);
|
||||
chrome.runtime.onMessage.addListener(function (request, sender, response) {
|
||||
if (request.command == "courseStorage") {
|
||||
if (request.action == "add") {
|
||||
add(request, sender, response);
|
||||
}
|
||||
if(request.action == "remove"){
|
||||
remove(request,sender,response);
|
||||
if (request.action == "remove") {
|
||||
remove(request, sender, response);
|
||||
}
|
||||
}
|
||||
else if(request.command == "isSingleConflict"){
|
||||
isSingleConflict(request.dtarr,request.unique,response);
|
||||
}
|
||||
else if(request.command == "checkConflicts"){
|
||||
} else if (request.command == "isSingleConflict") {
|
||||
isSingleConflict(request.dtarr, request.unique, response);
|
||||
} else if (request.command == "checkConflicts") {
|
||||
checkConflicts(response);
|
||||
}
|
||||
else if(request.command == "alreadyContains"){
|
||||
alreadyContains(request.unique,response);
|
||||
}
|
||||
else{
|
||||
} else if (request.command == "alreadyContains") {
|
||||
alreadyContains(request.unique, response);
|
||||
} else {
|
||||
const xhr = new XMLHttpRequest();
|
||||
const method = request.method ? request.method.toUpperCase() : "GET";
|
||||
xhr.open(method, request.url, true);
|
||||
@@ -32,71 +28,83 @@ chrome.runtime.onMessage.addListener(function(request, sender, response) {
|
||||
});
|
||||
|
||||
/* Initially set the course data in storage */
|
||||
chrome.runtime.onInstalled.addListener(function() {
|
||||
var arr = new Array();
|
||||
chrome.storage.sync.set({savedCourses: arr}, function() {
|
||||
console.log('initial course list');
|
||||
});
|
||||
chrome.storage.sync.set({courseConflictHighlight: true}, function() {
|
||||
console.log('initial highlighting: true');
|
||||
});
|
||||
chrome.runtime.onInstalled.addListener(function () {
|
||||
var arr = new Array();
|
||||
chrome.storage.sync.set({
|
||||
savedCourses: arr
|
||||
}, function () {
|
||||
console.log('initial course list');
|
||||
});
|
||||
chrome.storage.sync.set({
|
||||
courseConflictHighlight: true
|
||||
}, function () {
|
||||
console.log('initial highlighting: true');
|
||||
});
|
||||
});
|
||||
|
||||
/* Find all the conflicts in the courses and send them out/ if there is even a conflict*/
|
||||
function checkConflicts(sendResponse) {
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
chrome.storage.sync.get('savedCourses', function (data) {
|
||||
var conflicts = [];
|
||||
var courses = data.savedCourses;
|
||||
for(var i = 0; i<courses.length;i++){
|
||||
for(var j=i+1; j<courses.length; j++){
|
||||
if(isConflict(courses[i].datetimearr,courses[j].datetimearr)){
|
||||
for (var i = 0; i < courses.length; i++) {
|
||||
for (var j = i + 1; j < courses.length; j++) {
|
||||
if (isConflict(courses[i].datetimearr, courses[j].datetimearr)) {
|
||||
console.log("conflict");
|
||||
conflicts.push([courses[i],courses[j]]);
|
||||
conflicts.push([courses[i], courses[j]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(conflicts.length == 0){
|
||||
sendResponse({isConflict:false});
|
||||
if (conflicts.length == 0) {
|
||||
sendResponse({
|
||||
isConflict: false
|
||||
});
|
||||
} else {
|
||||
console.log(conflicts);
|
||||
sendResponse({isConflict:true,between: conflicts});
|
||||
sendResponse({
|
||||
isConflict: true,
|
||||
between: conflicts
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* Find if the course at unique and with currdatearr is contained in the saved courses and if it conflicts with any other courses*/
|
||||
function isSingleConflict(currdatearr, unique, sendResponse){
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
function isSingleConflict(currdatearr, unique, sendResponse) {
|
||||
chrome.storage.sync.get('savedCourses', function (data) {
|
||||
var courses = data.savedCourses;
|
||||
var conflict = false;
|
||||
for(var i = 0; i<courses.length;i++){
|
||||
if(isConflict(currdatearr,courses[i].datetimearr)){
|
||||
for (var i = 0; i < courses.length; i++) {
|
||||
if (isConflict(currdatearr, courses[i].datetimearr)) {
|
||||
conflict = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
var contains = false;
|
||||
var i = 0;
|
||||
while(i < courses.length && !contains){
|
||||
if(courses[i].unique == unique){
|
||||
while (i < courses.length && !contains) {
|
||||
if (courses[i].unique == unique) {
|
||||
contains = true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
sendResponse({isConflict:conflict,alreadyContains:contains});
|
||||
sendResponse({
|
||||
isConflict: conflict,
|
||||
alreadyContains: contains
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* Check if conflict between two date-time-arrs*/
|
||||
function isConflict(adtarr, bdtarr){
|
||||
for(var i = 0; i<adtarr.length;i++){
|
||||
function isConflict(adtarr, bdtarr) {
|
||||
for (var i = 0; i < adtarr.length; i++) {
|
||||
var currday = adtarr[i][0];
|
||||
var currtimes = adtarr[i][1];
|
||||
for(var j = 0; j<bdtarr.length;j++){
|
||||
for (var j = 0; j < bdtarr.length; j++) {
|
||||
var nextday = bdtarr[j][0];
|
||||
var nextimes = bdtarr[j][1];
|
||||
if(nextday == currday){
|
||||
if(currtimes[0] < nextimes[1] && currtimes[1] > nextimes[0]){
|
||||
if (nextday == currday) {
|
||||
if (currtimes[0] < nextimes[1] && currtimes[1] > nextimes[0]) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -107,42 +115,54 @@ function isConflict(adtarr, bdtarr){
|
||||
|
||||
/* Add the requested course to the storage*/
|
||||
function add(request, sender, sendResponse) {
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
chrome.storage.sync.get('savedCourses', function (data) {
|
||||
var courses = data.savedCourses;
|
||||
courses.push(request.course)
|
||||
console.log(courses);
|
||||
chrome.storage.sync.set({savedCourses: courses});
|
||||
sendResponse({done:"Added: ("+request.course.unique+") "+request.course.coursename,label:"Remove Course -"});
|
||||
chrome.storage.sync.set({
|
||||
savedCourses: courses
|
||||
});
|
||||
sendResponse({
|
||||
done: "Added: (" + request.course.unique + ") " + request.course.coursename,
|
||||
label: "Remove Course -"
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* Find and Remove the requested course from the storage*/
|
||||
function remove(request, sender, sendResponse) {
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
chrome.storage.sync.get('savedCourses', function (data) {
|
||||
var courses = data.savedCourses;
|
||||
console.log(courses);
|
||||
var index = 0;
|
||||
while(index<courses.length && courses[index].unique != request.course.unique){
|
||||
while (index < courses.length && courses[index].unique != request.course.unique) {
|
||||
index++;
|
||||
}
|
||||
courses.splice(index,1);
|
||||
chrome.storage.sync.set({savedCourses: courses});
|
||||
sendResponse({done:"Removed: ("+request.course.unique+") "+request.course.coursename,label:"Add Course +"});
|
||||
courses.splice(index, 1);
|
||||
chrome.storage.sync.set({
|
||||
savedCourses: courses
|
||||
});
|
||||
sendResponse({
|
||||
done: "Removed: (" + request.course.unique + ") " + request.course.coursename,
|
||||
label: "Add Course +"
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* Find if the unique is already contained within the storage*/
|
||||
function alreadyContains(unique,sendResponse){
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
function alreadyContains(unique, sendResponse) {
|
||||
chrome.storage.sync.get('savedCourses', function (data) {
|
||||
var courses = data.savedCourses;
|
||||
var contains = false;
|
||||
var i = 0;
|
||||
while(i < courses.length && !contains){
|
||||
if(courses[i].unique == unique){
|
||||
while (i < courses.length && !contains) {
|
||||
if (courses[i].unique == unique) {
|
||||
contains = true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
sendResponse({alreadyContains: contains});
|
||||
sendResponse({
|
||||
alreadyContains: contains
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user