aboutsummaryrefslogtreecommitdiffstats
path: root/web/js/nms-time.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/js/nms-time.js')
-rw-r--r--web/js/nms-time.js231
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;
+};