diff --git a/_locales/en/messages.json b/_locales/en/messages.json index ed277dc8..f34542a7 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -308,5 +308,11 @@ }, "hoursLower": { "message": "hours" + }, + "youHaveSavedTime": { + "message": "You have saved people" + }, + "youHaveSavedTimeEnd": { + "message": " of their lives." } } diff --git a/popup.html b/popup.html index e673eecb..3e96de4d 100644 --- a/popup.html +++ b/popup.html @@ -130,6 +130,16 @@ __MSG_Segments__. + +

diff --git a/popup.js b/popup.js index 476a09cb..d51fac4b 100644 --- a/popup.js +++ b/popup.js @@ -56,6 +56,10 @@ function runThePopup() { "sponsorTimesViewsContainer", "sponsorTimesViewsDisplay", "sponsorTimesViewsDisplayEndWord", + // sponsorTimesOthersTimeSaved + "sponsorTimesOthersTimeSavedContainer", + "sponsorTimesOthersTimeSavedDisplay", + "sponsorTimesOthersTimeSavedEndWord", // sponsorTimesSkipsDone "sponsorTimesSkipsDoneContainer", "sponsorTimesSkipsDoneDisplay", @@ -244,6 +248,23 @@ function runThePopup() { } } }); + + //get this time in minutes + sendRequestToServer("GET", "/api/getSavedTimeForUser?userID=" + userID, function(xmlhttp) { + if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { + let minutesSaved = JSON.parse(xmlhttp.responseText).timeSaved; + if (minutesSaved != 0) { + if (minutesSaved != 1) { + SB.sponsorTimesOthersTimeSavedEndWord.innerText = chrome.i18n.getMessage("minsLower"); + } else { + SB.sponsorTimesOthersTimeSavedEndWord.innerText = chrome.i18n.getMessage("minLower"); + } + + SB.sponsorTimesOthersTimeSavedDisplay.innerText = getFormattedHours(minutesSaved); + SB.sponsorTimesOthersTimeSavedContainer.style.display = "unset"; + } + } + }); } }); } @@ -272,7 +293,7 @@ function runThePopup() { SB.sponsorTimeSavedEndWord.innerText = chrome.i18n.getMessage("minLower"); } - SB.sponsorTimeSavedDisplay.innerText = result.minutesSaved.toFixed(2); + SB.sponsorTimeSavedDisplay.innerText = getFormattedHours(result.minutesSaved); SB.sponsorTimeSavedContainer.style.display = "unset"; } }); @@ -1413,6 +1434,18 @@ function runThePopup() { //submit this request xmlhttp.send(); } + + /** + * Converts time in hours to 5h 25.1 + * If less than 1 hour, just returns minutes + * + * @param {float} seconds + * @returns {string} + */ + function getFormattedHours(minues) { + let hours = Math.floor(minues / 60); + return (hours > 0 ? hours + "h " : "") + (minues % 60).toFixed(1); + } //end of function }