NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Leho NewFileChecker
// @namespace https://github.com/BenjaVR
// @version 1
// @description marks the new files on Leho
// @author BenjaVR
// @include *://leho.howest.be*
// @grant none
// ==/UserScript==
$(document).ready(function () {
function createHTML() {
var html = '' +
'<ul style="float:left;" id="lehoTimeChecker">' +
' <li>' +
' <a href="#" id="lehoTimeButton">' +
' Save Current Time!' +
' </a>' +
' </li>' +
' <li>' +
' <div>' +
' Last saved date: ' + '<div style="display:inline" id="printedDate">' + getDateObjectInLocalStorage().printableDate + '</div>' +
' </div>' +
' </li>' +
'</ul>';
$('div#usermenu').append(html);
}
function updatePrintedDate(){
$('#printedDate').replaceWith(getDateObjectInLocalStorage().printableDate);
}
function checkNewDatesOnThePage() {
$("td").each(function () {
var date = new Date($(this).text());
if (!isNaN(date.getTime())) {
if (compareWithSavedDate(date)){
changeBackgroundColor(this.parentElement, "pink");
}
}
});
}
function compareWithSavedDate(date) {
var storedDefaultDate = new Date(getDateObjectInLocalStorage().defaultDate);
return storedDefaultDate < date;
}
function changeBackgroundColor(element, color) {
element.style.backgroundColor = color;
}
function checkIfLocalstorageExists() {
if (!localStorage.lehoTimeCheck) {
var aDate = formatDefaultDate2localStorageDateObject(new Date());
setDateArrayInLocalStorage(aDate);
}
}
function formatDefaultDate2localStorageDateObject(pageDate) {
return {defaultDate: new Date(pageDate), printableDate: formatDefaultDate2PrintableDate(new Date(pageDate))};
}
function setDateArrayInLocalStorage(dateObject){
localStorage.lehoTimeCheck = JSON.stringify(dateObject);
}
function getDateObjectInLocalStorage(){
checkIfLocalstorageExists();
return JSON.parse(localStorage.lehoTimeCheck);
}
function addZero(number, totalDigits) {
number = String(number);
while (number.length < totalDigits) {
number = "0" + number;
}
return number;
}
function formatDefaultDate2PrintableDate(date) {
var day = addZero(date.getDate(), 2),
month = addZero(date.getMonth() + 1, 2),
year = date.getFullYear(),
hours = addZero(date.getHours(), 2),
minutes = addZero(date.getMinutes(), 2),
fullDay = getDayName(date.getDay(), 2);
return fullDay + " " + day + "/" + month + "/" + year + " " + hours + ":" + minutes;
}
function getDayName(daynumber) {
var fullDay;
switch (daynumber) {
case 1:
fullDay = "Monday";
break;
case 2:
fullDay = "Tuesday";
break;
case 3:
fullDay = "Wednesday";
break;
case 4:
fullDay = "Thursday";
break;
case 5:
fullDay = "Friday";
break;
case 6:
fullDay = "Saturday";
break;
case 7:
fullDay = "Sunday";
break;
default:
fullDay = "";
}
return fullDay;
}
function updateSavedDate() {
var nowObject = formatDefaultDate2localStorageDateObject(new Date()),
conf = confirm("Confirm if you want to override your current saved date:\n" + getDateObjectInLocalStorage().printableDate + "\nto:\n" + nowObject.printableDate);
if (conf) {
setDateArrayInLocalStorage(nowObject);
updatePrintedDate();
checkNewDatesOnThePage();
}
}
if (document.getElementById("usermenu")) {
createHTML();
checkNewDatesOnThePage();
}
$("#lehoTimeButton").on("click", function () {
updateSavedDate();
});
});