diff --git a/background.js b/background.js
index c7bf572b..026b83f8 100644
--- a/background.js
+++ b/background.js
@@ -21,11 +21,10 @@ chrome.tabs.onUpdated.addListener( // On tab update
chrome.runtime.onMessage.addListener(function (request, sender, callback) {
if (request.message == "submitTimes") {
- submitTimes(request.videoID);
+ submitTimes(request.videoID, callback);
- callback({
- success: true
- });
+ //this allows the callback to be called later by the submitTimes function
+ return true;
} else if (request.message == "ytvideoid") {
if (previousVideoID != request.videoID) {
videoIDChange(request.videoID);
@@ -107,7 +106,7 @@ function submitVote(type, UUID, callback) {
})
}
-function submitTimes(videoID) {
+function submitTimes(videoID, callback) {
//get the video times from storage
let sponsorTimeKey = 'sponsorTimes' + videoID;
chrome.storage.local.get([sponsorTimeKey], function(result) {
@@ -119,7 +118,17 @@ function submitTimes(videoID) {
getUserID(function(userIDStorage) {
//submit the sponsorTime
sendRequestToServer('GET', "/api/postVideoSponsorTimes?videoID=" + videoID + "&startTime=" + sponsorTimes[i][0] + "&endTime=" + sponsorTimes[i][1]
- + "&userID=" + userIDStorage);
+ + "&userID=" + userIDStorage, function(xmlhttp, error) {
+ if (xmlhttp.readyState == 4 && !error) {
+ callback({
+ statusCode: xmlhttp.status
+ });
+ } else if (error) {
+ callback({
+ statusCode: -1
+ });
+ }
+ });
});
}
}
diff --git a/popup.html b/popup.html
index d34d9a76..f77a6a02 100644
--- a/popup.html
+++ b/popup.html
@@ -62,8 +62,18 @@
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/popup.js b/popup.js
index 29157379..d60bba61 100644
--- a/popup.js
+++ b/popup.js
@@ -268,12 +268,35 @@ function clearTimes() {
}
function submitTimes() {
+ //make info message say loading
+ document.getElementById("submitTimesInfoMessage").innerText = "Loading...";
+ document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
+
if (sponsorTimes.length > 0) {
chrome.runtime.sendMessage({
message: "submitTimes",
videoID: currentVideoID
- }, function(request) {
- clearTimes();
+ }, function(response) {
+ if (response != undefined) {
+ if (response.statusCode == 200) {
+ //hide loading message
+ document.getElementById("submitTimesInfoMessageContainer").style.display = "none";
+
+ clearTimes();
+ } else if(response.statusCode == 400) {
+ document.getElementById("submitTimesInfoMessage").innerText = "Server said this request was invalid";
+ document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
+ } else if(response.statusCode == 429) {
+ document.getElementById("submitTimesInfoMessage").innerText = "You have submitted too many sponsor times for this one video, are you sure there are this many?";
+ document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
+ } else if(response.statusCode == 409) {
+ document.getElementById("submitTimesInfoMessage").innerText = "This has already been submitted before";
+ document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
+ } else {
+ document.getElementById("submitTimesInfoMessage").innerText = "There was an error submitting your sponsor times, please try again later";
+ document.getElementById("submitTimesInfoMessageContainer").style.display = "unset";
+ }
+ }
});
}
}
@@ -343,13 +366,15 @@ function resetStartTimeChosen() {
document.getElementById("sponsorStart").innerHTML = "Sponsorship Starts Now";
}
+//hides and shows the submit times button when needed
function showSubmitTimesIfNecessary() {
//check if an end time has been specified for the latest sponsor time
if (sponsorTimes.length > 0 && sponsorTimes[sponsorTimes.length - 1].length > 1) {
//show submit times button
- document.getElementById("submitTimes").style.display = "unset";
+ document.getElementById("submitTimesContainer").style.display = "unset";
} else {
- document.getElementById("submitTimes").style.display = "none";
+ //hide submit times button
+ document.getElementById("submitTimesContainer").style.display = "none";
}
}