diff --git a/override.html b/override.html
index b7e59ef..9de5425 100644
--- a/override.html
+++ b/override.html
@@ -47,6 +47,13 @@
Override activated. Blocking will be suspended until .
Note: Override will have no effect because you have not selected
"Allow temporary override for these sites" for any block sets.
Override will be applied to sites in:
+
+
diff --git a/override.js b/override.js
index e8df6fc..517ee4b 100644
--- a/override.js
+++ b/override.js
@@ -226,7 +226,11 @@ function activateOverride() {
// Calculate end time for override
let endTime = Math.floor(Date.now() / 1000) + (gClockOffset * 60) + (gOverrideMins * 60);
+ changeOverride(endTime);
+}
+// Activate override or change endtime [with second-precision]
+function changeOverride(endTime) {
// Request override
let message = {
type: "override",
@@ -244,6 +248,40 @@ function activateOverride() {
$("#alertOverrideSetList").html("- " + gOverrideSetNames.join("
- ") + "
");
}
$("#alertOverrideActivated").dialog("open");
+
+ //Update override time
+ let minDate = Date.now();
+ let fixTime = function(sliderDate) {
+ $("#timeDisplay").text( timeDiffToStr(sliderDate-minDate) + "\n" + sliderDate.toLocaleTimeString() );
+ };
+
+ //keep the remaining time counting from a UI-perspective
+ setInterval(function(){
+ minDate = Date.now();
+ fixTime(new Date($("#slider").slider("value")));
+ }, 60*1000);
+ $("#slider").slider({
+ min: minDate,
+ max: endTime,
+ value: endTime,
+ range: "min",
+ create: function() {
+ let sliderDate = new Date($(this).slider("value"));
+ fixTime(sliderDate);
+ },
+ slide: function( event, ui ) {
+ let sliderDate = new Date(ui.value);
+ fixTime(sliderDate);
+
+ //Add a Update-Button
+ $("#alertOverrideActivated").dialog("option", "buttons", Object.assign({
+ Update:function() {
+ //$(this).dialog("close");
+ changeOverride($("#slider").slider("value")/1000);
+ }
+ },$("#alertOverrideActivated").dialog("option", "buttons")));
+ }
+ });
} else {
// Close page immediately (no confirmation dialog)
closePage();
@@ -311,6 +349,10 @@ $("#alertOverrideActivated").dialog({
close: function (event, ui) { closePage(); }
});
+function timeDiffToStr(diff) {
+ return Math.floor(diff/3600000)+":"+(Math.floor(diff/60000)%60).toLocaleString('en-US', {minimumIntegerDigits: 2});
+}
+
// Initialize access control prompts
initAccessControlPrompt("promptPassword");
initAccessControlPrompt("promptAccessCode");