diff options
Diffstat (limited to 'web/js/nms-time.js')
-rw-r--r-- | web/js/nms-time.js | 231 |
1 files changed, 118 insertions, 113 deletions
diff --git a/web/js/nms-time.js b/web/js/nms-time.js index d5b6379..6962fef 100644 --- a/web/js/nms-time.js +++ b/web/js/nms-time.js @@ -9,73 +9,80 @@ * The interface is a bit bloated at the moment, though. */ var nmsTime = nmsTime || { - _now: undefined, - _handle: undefined, - _stopTime: undefined -} + _now: undefined, + _handle: undefined, + _stopTime: undefined, +}; -nmsTime.replayEvent = function() { - var eStart = setTree(nmsData,["config","config","data","start"],"2018-03-23T00:00:00+0200"); - nmsTime._stopTime = new Date(setTree(nmsData,["config","config","data","end"],"2018-04-01T14:30:00+0200")); - nmsTime.setNow(eStart); - nmsTime.startPlayback(60); -} +nmsTime.replayEvent = function () { + var eStart = setTree( + nmsData, + ["config", "config", "data", "start"], + "2018-03-23T00:00:00+0200" + ); + nmsTime._stopTime = new Date( + setTree( + nmsData, + ["config", "config", "data", "end"], + "2018-04-01T14:30:00+0200" + ) + ); + nmsTime.setNow(eStart); + nmsTime.startPlayback(60); +}; -nmsTime.isRealTime = function() { - if (nmsTime._now == undefined && nmsTime._handle == undefined) - return true; - return false; -} +nmsTime.isRealTime = function () { + if (nmsTime._now == undefined && nmsTime._handle == undefined) return true; + return false; +}; nmsTime.startNowPicker = function () { - $.datetimepicker.setLocale('no'); - $('#nowPicker').datetimepicker('destroy'); - var now; - if (nmsTime._now == undefined) - now = new Date(); - else - now = nmsTime._now; - now.setSeconds(0); - now.setMilliseconds(0); - var datepicker = $('#nowPicker').datetimepicker({ - value: now, - step: 1, - mask:false, - inline:true, - todayButton: true, - validateOnBlur:false, - dayOfWeekStart:1, - maxDate:'+1970/01/01', - onSelectDate: function(ct,$i){ - document.getElementById('nowPicker').dataset.iso = new Date(ct.valueOf()); - }, - onSelectTime: function(ct,$i){ - document.getElementById('nowPicker').dataset.iso = new Date(ct.valueOf()); - }, - onGenerate: function(ct,$i){ - document.getElementById('nowPicker').dataset.iso = new Date(ct.valueOf()); - } - }); -} + $.datetimepicker.setLocale("no"); + $("#nowPicker").datetimepicker("destroy"); + var now; + if (nmsTime._now == undefined) now = new Date(); + else now = nmsTime._now; + now.setSeconds(0); + now.setMilliseconds(0); + var datepicker = $("#nowPicker").datetimepicker({ + value: now, + step: 1, + mask: false, + inline: true, + todayButton: true, + validateOnBlur: false, + dayOfWeekStart: 1, + maxDate: "+1970/01/01", + onSelectDate: function (ct, $i) { + document.getElementById("nowPicker").dataset.iso = new Date(ct.valueOf()); + }, + onSelectTime: function (ct, $i) { + document.getElementById("nowPicker").dataset.iso = new Date(ct.valueOf()); + }, + onGenerate: function (ct, $i) { + document.getElementById("nowPicker").dataset.iso = new Date(ct.valueOf()); + }, + }); +}; -nmsTime.setNow = function(now) { - var newDate = new Date(now); - newDate.setSeconds(0); - newDate.setMilliseconds(0); - newDate.setMinutes(newDate.getMinutes() - newDate.getMinutes()%1); - nmsTime._now = newDate; - nmsTime._updateData(); -} +nmsTime.setNow = function (now) { + var newDate = new Date(now); + newDate.setSeconds(0); + newDate.setMilliseconds(0); + newDate.setMinutes(newDate.getMinutes() - (newDate.getMinutes() % 1)); + nmsTime._now = newDate; + nmsTime._updateData(); +}; -nmsTime._updateData = function() { - nmsData.now = nmsTime._now.getTime() / 1000; -} +nmsTime._updateData = function () { + nmsData.now = nmsTime._now.getTime() / 1000; +}; -nmsTime.realTime = function() { - nmsTime.stopPlayback(); - nmsTime._now = undefined; - nmsData.now = undefined; -} +nmsTime.realTime = function () { + nmsTime.stopPlayback(); + nmsTime._now = undefined; + nmsData.now = undefined; +}; /* * Step a fixed amount of time, measured in minutes. @@ -84,41 +91,42 @@ nmsTime.realTime = function() { * backend versions to avoid bloating the cache and thus also stressing the * database */ -nmsTime.step = function(amount) { - if (nmsTime._now == null) - throw "Stepping without nmsTime._now"; - if (amount == 0 || amount == undefined) - throw "Invalid step"; - if (nmsTime._now.getTime() + (amount * 1000 * 60 ) > Date.now()) { - nmsTime.realTime(); - return; - } - if (nmsTime._stopTime != undefined && nmsTime._now.getTime() >= nmsTime._stopTime.getTime()) { - nmsTime.stopPlayback(); - nmsTime._stopTime = undefined; - } - nmsTime._now.setMinutes(nmsTime._now.getMinutes() + amount); - nmsTime._updateData(); -} +nmsTime.step = function (amount) { + if (nmsTime._now == null) throw "Stepping without nmsTime._now"; + if (amount == 0 || amount == undefined) throw "Invalid step"; + if (nmsTime._now.getTime() + amount * 1000 * 60 > Date.now()) { + nmsTime.realTime(); + return; + } + if ( + nmsTime._stopTime != undefined && + nmsTime._now.getTime() >= nmsTime._stopTime.getTime() + ) { + nmsTime.stopPlayback(); + nmsTime._stopTime = undefined; + } + nmsTime._now.setMinutes(nmsTime._now.getMinutes() + amount); + nmsTime._updateData(); +}; /* * Step based on key-press. Same as step() but stops playback if it's * active and allows you to rewind from a "live" map. */ -nmsTime.stepKey = function(amount) { - nmsTime.stopPlayback(); - if (nmsTime._now == undefined) { - nmsTime.setNow(Date.now()); - } - nmsTime.step(amount); -} +nmsTime.stepKey = function (amount) { + nmsTime.stopPlayback(); + if (nmsTime._now == undefined) { + nmsTime.setNow(Date.now()); + } + nmsTime.step(amount); +}; /* * Target of setInterval() when replaying. */ -nmsTime._tick = function() { - nmsTime.step(nmsTime._speed); -} +nmsTime._tick = function () { + nmsTime.step(nmsTime._speed); +}; /* * We now have a time (presumably), start playback. @@ -127,32 +135,29 @@ nmsTime._tick = function() { * * Gondul does not _yet_ support fast forwarding into the future. */ -nmsTime.startPlayback = function(speed) { - if (nmsTime._handle) - nmsTime.stopPlayback(); - if (nmsTime._now.getTime() > Date.now()) { - nmsTime.stopPlayback(); - return; - } - nmsTime._speed = speed; - nmsTime._handle = setInterval(nmsTime._tick,2000); -} +nmsTime.startPlayback = function (speed) { + if (nmsTime._handle) nmsTime.stopPlayback(); + if (nmsTime._now.getTime() > Date.now()) { + nmsTime.stopPlayback(); + return; + } + nmsTime._speed = speed; + nmsTime._handle = setInterval(nmsTime._tick, 2000); +}; -nmsTime.togglePause = function() { - if (nmsTime._handle) { - nmsTime.stopPlayback(); - } else { - if (nmsTime.isRealTime()) { - nmsTime.setNow(Date.now()); - } else { - nmsTime.startPlayback(nmsTime._speed ? nmsTime._speed : 60); - } - } -} +nmsTime.togglePause = function () { + if (nmsTime._handle) { + nmsTime.stopPlayback(); + } else { + if (nmsTime.isRealTime()) { + nmsTime.setNow(Date.now()); + } else { + nmsTime.startPlayback(nmsTime._speed ? nmsTime._speed : 60); + } + } +}; -nmsTime.stopPlayback = function() { - if (nmsTime._handle) - clearInterval(nmsTime._handle); - nmsTime._handle = undefined; -} - +nmsTime.stopPlayback = function () { + if (nmsTime._handle) clearInterval(nmsTime._handle); + nmsTime._handle = undefined; +}; |