fixed import not working properly

This commit is contained in:
10001shh
2018-08-31 23:50:25 -05:00
parent c063b58f1b
commit 71e81dacd9
3 changed files with 84 additions and 85 deletions

View File

@@ -11,12 +11,12 @@ chrome.runtime.onMessage.addListener(function (request, sender, response) {
isSingleConflict(request.dtarr, request.unique, response); isSingleConflict(request.dtarr, request.unique, response);
} else if (request.command == "checkConflicts") { } else if (request.command == "checkConflicts") {
checkConflicts(response); checkConflicts(response);
} } else if (request.command == "updateStatus") {
else if(request.command == "updateStatus"){
updateStatus(); updateStatus();
} } else if (request.command == "alreadyContains") {
else if (request.command == "alreadyContains") {
alreadyContains(request.unique, response); alreadyContains(request.unique, response);
} else if (request.command == "updateTabs") {
updateTabs();
} else { } else {
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
const method = request.method ? request.method.toUpperCase() : "GET"; const method = request.method ? request.method.toUpperCase() : "GET";
@@ -123,11 +123,13 @@ function isConflict(adtarr, bdtarr) {
function add(request, sender, sendResponse) { function add(request, sender, sendResponse) {
chrome.storage.sync.get('savedCourses', function (data) { chrome.storage.sync.get('savedCourses', function (data) {
var courses = data.savedCourses; var courses = data.savedCourses;
courses.push(request.course) if (!contains(courses, request.course.unique)) {
console.log(courses); courses.push(request.course)
chrome.storage.sync.set({ console.log(courses);
savedCourses: courses chrome.storage.sync.set({
}); savedCourses: courses
});
}
sendResponse({ sendResponse({
done: "Added: (" + request.course.unique + ") " + request.course.coursename, done: "Added: (" + request.course.unique + ") " + request.course.coursename,
label: "Remove Course -" label: "Remove Course -"
@@ -159,34 +161,47 @@ function remove(request, sender, sendResponse) {
function alreadyContains(unique, sendResponse) { function alreadyContains(unique, sendResponse) {
chrome.storage.sync.get('savedCourses', function (data) { chrome.storage.sync.get('savedCourses', function (data) {
var courses = data.savedCourses; var courses = data.savedCourses;
var contains = false;
var i = 0;
while (i < courses.length && !contains) {
if (courses[i].unique == unique) {
contains = true;
}
i++;
}
sendResponse({ sendResponse({
alreadyContains: contains alreadyContains: contains(courses, unique)
}); });
}); });
} }
function updateStatus(){ function contains(courses, unique) {
var i = 0;
while (i < courses.length) {
if (courses[i].unique == unique) {
return true;
}
i++;
}
return false;
}
function updateTabs() {
chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.sendMessage(tabs[i].id, {
command: "updateCourseList"
});
}
});
}
function updateStatus() {
chrome.storage.sync.get('savedCourses', function (data) { chrome.storage.sync.get('savedCourses', function (data) {
console.log(data.savedCourses); console.log(data.savedCourses);
for(let i = 0; i<data.savedCourses.length; i++){ for (let i = 0; i < data.savedCourses.length; i++) {
let c = data.savedCourses[i]; let c = data.savedCourses[i];
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.open("GET", c.link, false); xhr.open("GET", c.link, false);
xhr.send(); xhr.send();
var result = xhr.responseText; var result = xhr.responseText;
var dummy = document.createElement( 'html' ); var dummy = document.createElement('html');
dummy.innerHTML = result; dummy.innerHTML = result;
var newstatus = dummy.querySelector('[data-th="Status"]').textContent; var newstatus = dummy.querySelector('[data-th="Status"]').textContent;
c.status = element; c.status = element;
// console.log(result); // console.log(result);
} }
}); });
} }

View File

@@ -4,12 +4,16 @@ $(function () {
var sem = $('[name="s_ccyys"]').val(); var sem = $('[name="s_ccyys"]').val();
$("[href='#top']").before("<button class='matbut' id='import' style='margin:10px 0px 20px 0px;'><span style='font-size:small'>Import into </span><b>UT Reg Plus<b></h2></button><br>"); $("[href='#top']").before("<button class='matbut' id='import' style='margin:10px 0px 20px 0px;'><span style='font-size:small'>Import into </span><b>UT Reg Plus<b></h2></button><br>");
$("#import").prepend("<div id='snackbar'>defaultmessage..</div>"); $("#import").prepend("<div id='snackbar'>defaultmessage..</div>");
$("#import").click(function(){ $("#import").click(function () {
$(".tbg").last().find(".tbon>td:first-child").each(function(){ $(".tbg").last().find(".tbon>td:first-child").each(function () {
let unique = $(this).text().replace(/\s/g, ''); let unique = $(this).text().replace(/\s/g, '');
link = `https://utdirect.utexas.edu/apps/registrar/course_schedule/${sem}/${unique}/`; link = `https://utdirect.utexas.edu/apps/registrar/course_schedule/${sem}/${unique}/`;
getInfo(); getInfo();
}); });
$("#import").text("Courses Saved!").css("background-color", "#4CAF50");
setTimeout(function () {
$("#import").html("<span style='font-size:small'>Import into </span><b>UT Reg Plus<b></h2>").css("background-color", "#FF9800");
}, 1000);
}); });
}); });
@@ -26,30 +30,26 @@ function Course(coursename, unique, profname, datetimearr, status, link, registe
} }
function getInfo(classurl){ function getInfo(classurl) {
chrome.runtime.sendMessage({ var xhr = new XMLHttpRequest();
method: "GET", xhr.open("GET", link, false);
action: "xhttp", xhr.send();
url: link, var response = xhr.responseText;
data: "" if (response) {
}, function (response) { var output = "";
if (response) { var object = $('<div/>').html(response).contents();
var output = ""; var c = getCourseObject(object);
var object = $('<div/>').html(response).contents(); console.log(c);
var c = getCourseObject(object); chrome.runtime.sendMessage({
command: "courseStorage",
course: c,
action: "add"
}, function () {
chrome.runtime.sendMessage({ chrome.runtime.sendMessage({
command: "alreadyContains", command: "updateTabs"
unique: c.unique
}, function (response) {
if (!response.alreadyContains) {
saveCourse(c);
}
}); });
// var first = object.find('td[data-th="Instructor"]').text(); });
} else {
} }
});
} }
@@ -65,7 +65,7 @@ function getCourseObject(object) {
let status = object.find('td[data-th="Status"]').text(); let status = object.find('td[data-th="Status"]').text();
let indlink = link; let indlink = link;
let registerlink = object.find('td[data-th="Add"] a').prop('href'); let registerlink = object.find('td[data-th="Add"] a').prop('href');
return new Course(coursename,uniquenum,profname,datetimearr,status,indlink,registerlink); return new Course(coursename, uniquenum, profname, datetimearr, status, indlink, registerlink);
} }
/* For a row, get the date-time-array for checking conflicts*/ /* For a row, get the date-time-array for checking conflicts*/
@@ -99,20 +99,3 @@ function convertTime(time) {
} }
return converted; return converted;
} }
function saveCourse(course){
chrome.runtime.sendMessage({
command: "courseStorage",
course: course,
action: "add"
}, function (response) {
$("#import").text("Courses Saved!").css("background-color","#4CAF50");
setTimeout(function () {
$("#import").html("<span style='font-size:small'>Import into </span><b>UT Reg Plus<b></h2>").css("background-color","#FF9800");
}, 1000);
chrome.runtime.sendMessage({
command: "updateCourseList"
});
});
}

View File

@@ -5,25 +5,26 @@
"version": "0.1.4", "version": "0.1.4",
"options_page": "options.html", "options_page": "options.html",
"description": "Improves the course registration process at the University of Texas at Austin!", "description": "Improves the course registration process at the University of Texas at Austin!",
"permissions": [ "tabs", "permissions": ["tabs",
"declarativeContent", "declarativeContent",
"storage", "storage",
"*://*.utdirect.utexas.edu/apps/registrar/course_schedule/*", "*://*.utdirect.utexas.edu/apps/registrar/course_schedule/*",
"*://*.catalog.utexas.edu/ribbit/" "*://*.catalog.utexas.edu/ribbit/"
], ],
"content_scripts": [{ "content_scripts": [{
"css": ["css/styles.css"], "css": ["css/styles.css"],
"js": ["js/moment.min.js","js/sql-memory-growth.js","js/highcharts.js","js/jquery-3.3.1.min.js","js/content.js"], "js": ["js/moment.min.js", "js/sql-memory-growth.js", "js/highcharts.js", "js/jquery-3.3.1.min.js", "js/content.js"],
"matches": ["https://utdirect.utexas.edu/apps/registrar/course_schedule/*"] "matches": ["https://utdirect.utexas.edu/apps/registrar/course_schedule/*"]
},{ }, {
"css": ["css/styles.css"], "css": ["css/styles.css"],
"js": ["js/moment.min.js","js/sql-memory-growth.js","js/highcharts.js","js/jquery-3.3.1.min.js","js/import.js"], "js": ["js/moment.min.js", "js/sql-memory-growth.js", "js/highcharts.js", "js/jquery-3.3.1.min.js", "js/import.js"],
"matches": ["https://utdirect.utexas.edu/registrar/waitlist/wl_see_my_waitlists.WBX"] "matches": ["https://utdirect.utexas.edu/registrar/waitlist/wl_see_my_waitlists.WBX"]
} }
], ],
"web_accessible_resources": [ "web_accessible_resources": [
"grades.db","images/disticon.png"], "grades.db", "images/disticon.png"
],
"background": { "background": {
"scripts": ["js/background.js"], "scripts": ["js/background.js"],
"persistent": true "persistent": true
@@ -38,9 +39,9 @@
} }
}, },
"icons": { "icons": {
"16": "icons/icon16.png", "16": "icons/icon16.png",
"32": "icons/icon32.png", "32": "icons/icon32.png",
"48": "icons/icon48.png", "48": "icons/icon48.png",
"128": "icons/icon128.png" "128": "icons/icon128.png"
} }
} }