schedule conflicts backend relatively done
This commit is contained in:
@@ -8,14 +8,11 @@ chrome.runtime.onMessage.addListener(function(request, sender, response) {
|
||||
}
|
||||
}
|
||||
else if(request.command == "checkConflicts"){
|
||||
//Check conflicts
|
||||
checkConflicts(response);
|
||||
}
|
||||
else if(request.command == "alreadyContains"){
|
||||
alreadyContains(request.unique,response);
|
||||
}
|
||||
else if(request.command == "getCourses"){
|
||||
getCourses(response);
|
||||
}
|
||||
else{
|
||||
const xhr = new XMLHttpRequest();
|
||||
const method = request.method ? request.method.toUpperCase() : "GET";
|
||||
@@ -37,18 +34,50 @@ chrome.runtime.onMessage.addListener(function(request, sender, response) {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function getCourses(sendResponse){
|
||||
function checkConflicts(sendResponse) {
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
sendResponse({done:data.savedCourses});
|
||||
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],courses[j])){
|
||||
console.log("conflict");
|
||||
conflicts.push([courses[i],courses[j]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(conflicts.length == 0){
|
||||
sendResponse({isConflict:false});
|
||||
} else {
|
||||
console.log(conflicts);
|
||||
sendResponse({isConflict:true,between: conflicts});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function isConflict(courseA, courseB){
|
||||
var adtarr = courseA.datetimearr;
|
||||
var bdtarr = courseB.datetimearr;
|
||||
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++){
|
||||
var nextday = bdtarr[j][0];
|
||||
var nextimes = bdtarr[j][1];
|
||||
if(nextday == currday){
|
||||
if(currtimes[0] < nextimes[1] && currtimes[1] > nextimes[0]){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function add(request, sender, sendResponse) {
|
||||
var courses;
|
||||
var response;
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
courses = data.savedCourses;
|
||||
var courses = data.savedCourses;
|
||||
courses.push(request.course)
|
||||
console.log(courses);
|
||||
chrome.storage.sync.set({savedCourses: courses});
|
||||
@@ -56,10 +85,8 @@ function add(request, sender, sendResponse) {
|
||||
});
|
||||
}
|
||||
function remove(request, sender, sendResponse) {
|
||||
var courses;
|
||||
var response;
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
courses = data.savedCourses;
|
||||
var courses = data.savedCourses;
|
||||
var index = 0;
|
||||
while(index<courses.length && courses[index].unique != request.course.unique){
|
||||
index++;
|
||||
@@ -73,7 +100,7 @@ function remove(request, sender, sendResponse) {
|
||||
|
||||
function alreadyContains(unique,sendResponse){
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
courses = data.savedCourses;
|
||||
var courses = data.savedCourses;
|
||||
var contains = false;
|
||||
var i = 0;
|
||||
while(i < courses.length && !contains){
|
||||
|
||||
22
content.js
22
content.js
@@ -8,9 +8,6 @@ var uniquenum;
|
||||
var profurl;
|
||||
var department;
|
||||
var course_nbr;
|
||||
var times = [];
|
||||
var dates = [];
|
||||
var locations = [];
|
||||
var datetimearr = [];
|
||||
|
||||
var description;
|
||||
@@ -46,7 +43,7 @@ $(document).ready( function() {
|
||||
});
|
||||
|
||||
$("#saveCourse").click(function(){
|
||||
var c = new Course(coursename,uniquenum, profname, times, dates, locations, status, profurl);
|
||||
var c = new Course(coursename,uniquenum, profname, datetimearr, status, profurl);
|
||||
chrome.runtime.sendMessage({command: "courseStorage",course: c, action:$("#saveCourse").text().substring(0,$("#saveCourse").text().indexOf(" ")).toLowerCase()}, function(response) {
|
||||
$("#saveCourse").text(response.label);
|
||||
alert(response.done);
|
||||
@@ -75,13 +72,11 @@ $(document).ready( function() {
|
||||
});
|
||||
});
|
||||
|
||||
function Course(coursename, unique, profname, times, dates, locations, status, link){
|
||||
function Course(coursename, unique, profname,datetimearr, status, link){
|
||||
this.coursename = coursename;
|
||||
this.unique = unique;
|
||||
this.profname = profname;
|
||||
this.times = times;
|
||||
this.dates = dates;
|
||||
this.locations = locations;
|
||||
this.datetimearr = datetimearr;
|
||||
this.status = status;
|
||||
this.link = link;
|
||||
}
|
||||
@@ -103,18 +98,11 @@ function getCourseInfo(row){
|
||||
profname = profname.substring(1);
|
||||
}
|
||||
var numlines = $(this).find('td[data-th="Days"]>span').length;
|
||||
dates = [];
|
||||
times = [];
|
||||
locations = [];
|
||||
datetimearr = [];
|
||||
var arr = [];
|
||||
for(var i=0; i<numlines;i++){
|
||||
var date = $(this).find('td[data-th="Days"]>span:eq('+i+')').text();
|
||||
var time = $(this).find('td[data-th="Hour"]>span:eq('+i+')').text();
|
||||
var place = $(this).find('td[data-th="Room"]>span:eq('+i+')').text();
|
||||
dates.push(date);
|
||||
times.push(time);
|
||||
locations.push(place);
|
||||
$(".topbuttons").before('<h2 class="dateTimePlace">'+makeLine(date,time,place)+'</th>');
|
||||
// makeLine(date,time,place);
|
||||
}
|
||||
@@ -144,12 +132,12 @@ function makeLine(date, time, place){
|
||||
var day = "";
|
||||
if(letter == "T" && i <date.length-1 && date.charAt(i+1) == "H"){
|
||||
arr.push(days.get("TH"));
|
||||
datetimearr.push(["TH", convertTime(time)]);
|
||||
datetimearr.push(["TH", convertTime(time),place]);
|
||||
}
|
||||
else {
|
||||
if(letter != "H"){
|
||||
arr.push(days.get(letter));
|
||||
datetimearr.push([letter, convertTime(time)]);
|
||||
datetimearr.push([letter, convertTime(time),place]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ body{
|
||||
<body>
|
||||
<script src="jquery-3.3.1.min.js"></script>
|
||||
<script src="popup.js"></script>
|
||||
<h2>Saved Courses</h2>
|
||||
<h2 id='headertext'>Saved Courses</h2>
|
||||
<ul id= "courseList" style="list-style-type: none;padding: 5px;"></ul>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
13
popup.js
13
popup.js
@@ -1,4 +1,17 @@
|
||||
chrome.storage.sync.get('savedCourses', function(data) {
|
||||
chrome.runtime.sendMessage({command: "checkConflicts"}, function(response) {
|
||||
if(response.isConflict){
|
||||
var between = response.between;
|
||||
var text = "";
|
||||
for(var i = 0; i<between.length;i++){
|
||||
text+="Conflict between: "+between[i][0].coursename + " and "+between[i][1].coursename+"\n";
|
||||
if(i != between.length-1){
|
||||
text+= "<br></br>";
|
||||
}
|
||||
}
|
||||
$("#headertext").append("<p style='font-size:small;color:red;'>"+text+"</>");
|
||||
}
|
||||
});
|
||||
var courses = data.savedCourses;
|
||||
console.log(courses);
|
||||
for(var i = 0; i<courses.length;i++){
|
||||
|
||||
Reference in New Issue
Block a user