summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/DataModel.js7
-rw-r--r--www/js/LoginCtrl.js3
-rw-r--r--www/js/TimelineCtrl.js266
3 files changed, 198 insertions, 78 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index ad1aaff6..e6af8baa 100644
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -1493,6 +1493,9 @@ angular.module('zmApp.controllers')
},
+ getLocalTimeZoneNow: function() {
+ return moment.tz.guess();
+ },
//returns TZ value immediately (sync)
getTimeZoneNow: function() {
@@ -1507,10 +1510,10 @@ angular.module('zmApp.controllers')
return isTzSupported;
},
- getTimeZone: function() {
+ getTimeZone: function(isForce) {
var d = $q.defer();
- if (!tz) {
+ if (!tz || isForce) {
log("First invocation of TimeZone, asking server");
var apiurl = loginData.apiurl + '/host/getTimeZone.json';
diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js
index 4e4efc0a..db0440b4 100644
--- a/www/js/LoginCtrl.js
+++ b/www/js/LoginCtrl.js
@@ -606,10 +606,13 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r
// possible image digits changed between servers
NVRDataModel.getKeyConfigParams(0);
+
NVRDataModel.log("Validating APIs at " + apiurl);
$http.get(apiurl)
.success(function (data) {
+
+ NVRDataModel.getTimeZone(true);
var loginStatus = $translate.instant('kExploreEnjoy') + " " + $rootScope.appName + "!";
EventServer.refresh();
diff --git a/www/js/TimelineCtrl.js b/www/js/TimelineCtrl.js
index 523c6d5d..0f67b085 100644
--- a/www/js/TimelineCtrl.js
+++ b/www/js/TimelineCtrl.js
@@ -96,7 +96,12 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
});
}
-
+ // helps to navigate to current time quickly
+ // after a night of heavy navigation
+ $scope.gotoNow = function()
+ {
+ timeline.moveTo(timeline.getCurrentTime());
+ };
$scope.move = function(percentage) {
move(percentage);
@@ -308,7 +313,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
$scope.$on('$ionicView.afterEnter', function() {
$scope.monitors = message;
- console.log("***AFTER ENTER");
+ //console.log("***AFTER ENTER");
$scope.follow = { 'time': NVRDataModel.getLogin().followTimeLine };
@@ -353,11 +358,11 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
- console.log ("MONITORS:"+JSON.stringify($scope.monitors));
+ //console.log ("MONITORS:"+JSON.stringify($scope.monitors));
if ($rootScope.customTimelineRange) {
$scope.currentMode = 'custom';
- console.log("***** CUSTOM RANGE");
+ //console.log("***** CUSTOM RANGE");
if (moment($rootScope.fromString).isValid() &&
moment($rootScope.toString).isValid()) {
// console.log("FROM & TO IS CUSTOM");
@@ -368,15 +373,34 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
drawGraph(fromDate, toDate, maxItems);
} else {
console.log ("From:"+$rootScope.fromString + " To:"+$rootScope.toString);
- console.log("FROM & TO IS CUSTOM INVALID");
- fromDate = moment().startOf('day').format("YYYY-MM-DD HH:mm:ss");
- toDate = moment().endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ //console.log("FROM & TO IS CUSTOM INVALID");
+
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ {
+ fromDate = moment().startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ }
+ else
+ {
+ fromDate = moment().tz(NVRDataModel.getTimeZoneNow()).startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().tz(NVRDataModel.getTimeZoneNow()).endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ }
+
drawGraph(fromDate, toDate, maxItems);
}
} else {
$scope.currentMode = 'day';
- fromDate = moment().startOf('day').format("YYYY-MM-DD HH:mm:ss");
- toDate = moment().endOf('day').format("YYYY-MM-DD HH:mm:ss");
+
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ {
+ fromDate = moment().startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ }
+ else
+ {
+ fromDate = moment().tz(NVRDataModel.getTimeZoneNow()).startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().tz(NVRDataModel.getTimeZoneNow()).endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ }
drawGraph(fromDate, toDate, maxItems);
}
@@ -449,8 +473,12 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
// fromDate and toDate will be used to plot the range for the graph
// We start in day mode
- var fromDate = moment().startOf('day').format("YYYY-MM-DD HH:mm:ss");
- var toDate = moment().endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ //
+ var fromDate, toDate;
+
+
+ fromDate = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow()).startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow()).endOf('day').format("YYYY-MM-DD HH:mm:ss");
@@ -566,8 +594,8 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
$scope.currentMode = "week";
$rootScope.customTimelineRange = false;
NVRDataModel.log("Week view");
- toDate = moment().format("YYYY-MM-DD HH:mm:ss");
- fromDate = moment().subtract(1, 'week').startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow()).format("YYYY-MM-DD HH:mm:ss");
+ fromDate = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow()).subtract(1, 'week').startOf('day').format("YYYY-MM-DD HH:mm:ss");
$scope.fromDate = fromDate;
$scope.toDate = toDate;
drawGraph(fromDate, toDate, maxItems);
@@ -578,8 +606,8 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
$rootScope.customTimelineRange = false;
NVRDataModel.log("Day view");
//toDate = moment().format("YYYY-MM-DD HH:mm:ss");
- fromDate = moment().startOf('day').format("YYYY-MM-DD HH:mm:ss");
- toDate = moment().endOf('day').format("YYYY-MM-DD HH:mm:ss");
+ fromDate = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow()).startOf('day').format("YYYY-MM-DD HH:mm:ss");
+ toDate = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow()).endOf('day').format("YYYY-MM-DD HH:mm:ss");
$scope.fromDate = fromDate;
$scope.toDate = toDate;
drawGraph(fromDate, toDate, maxItems);
@@ -607,16 +635,24 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
var ld = NVRDataModel.getLogin();
// check for last 2 minutes to account for late DB updates and what not. 5 mins was likely enough
- var from = moment(lastTimeForEvent).subtract(2, 'minutes').locale('en').format("YYYY-MM-DD HH:mm:ss");
- var to = moment().locale('en').format("YYYY-MM-DD HH:mm:ss");
- lastTimeForEvent = moment();
+ //
+
+
+ // make sure these are server time
+ var from = moment(lastTimeForEvent).tz(NVRDataModel.getTimeZoneNow());
+ from = from.subtract(2, 'minutes').locale('en').format("YYYY-MM-DD HH:mm:ss");
+
+ var to = moment(lastTimeForEvent).tz(NVRDataModel.getTimeZoneNow());
+ to = to.locale('en').format("YYYY-MM-DD HH:mm:ss");
+
+ lastTimeForEvent = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow());
// FIXME: totally ignoring event pages - hoping it wont be more than 100 or 150 whatever
// the events per page limit is. Why? laziness.
//
- var completedEvents = ld.apiurl + '/events/index/StartTime >=:' + from;
+ var completedEvents = ld.apiurl + '/events/index/EndTime >=:' + from;
// we can add alarmCount as this is really for completed events
- completedEvents = completedEvents + "/AlarmFrames >=:" + (ld.enableAlarmCount ? ld.minAlarmCount : 0);
+ //completedEvents = completedEvents + "/AlarmFrames >=:" + (ld.enableAlarmCount ? ld.minAlarmCount : 0);
completedEvents = completedEvents + ".json";
@@ -625,11 +661,15 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
// so, lets limiy to 15 m
//
- var st = moment().subtract (10,'minutes').locale('en').format("YYYY-MM-DD HH:mm:ss");
+ var st = moment(lastTimeForEvent).tz(NVRDataModel.getTimeZoneNow());
+ st = st.subtract (10,'minutes').locale('en').format("YYYY-MM-DD HH:mm:ss");
var ongoingEvents = ld.apiurl + '/events/index/StartTime >=:'+st+'/EndTime =:.json';
//NVRDataModel.debug("Getting incremental events using: " + completedEvents);
+ NVRDataModel.debug ("Completed events API:"+completedEvents);
+ NVRDataModel.debug ("Ongoing events API:+"+ongoingEvents);
+
isProcessNewEventsWaiting = true;
var $httpApi = $http.get(completedEvents);
@@ -651,60 +691,81 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
for (var j = 0; j < myevents.length; j++) {
- // get rid of the moment js deprecation notice
- myevents[j].Event.StartTime = moment.tz(myevents[j].Event.StartTime, NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
+ // these are all in server timezone but no TZ
+
+ myevents[j].Event.StartTime = moment.tz(myevents[j].Event.StartTime, NVRDataModel.getTimeZoneNow()).format('YYYY-MM-DD HH:mm:ss');
- myevents[j].Event.EndTime = moment.tz(myevents[j].Event.EndTime, NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
+ myevents[j].Event.EndTime = moment.tz(myevents[j].Event.EndTime, NVRDataModel.getTimeZoneNow()).format('YYYY-MM-DD HH:mm:ss');
var itm = graphData.get(myevents[j].Event.Id);
if (itm) {
- console.log(myevents[j].Event.Id + " already exists, updating params");
+ // console.log(myevents[j].Event.Id + " already exists, updating params");
- var content = "<span class='my-vis-font'>" + myevents[j].Event.Notes + " " + $translate.instant('kRecordingProgress') + "</span>";
+ var content = "<span class='my-vis-font'>" + "("+myevents[j].Event.Id+")"+myevents[j].Event.Notes + " " + $translate.instant('kRecordingProgress') + "</span>";
var style;
var recordingInProgress = false;
if (moment(myevents[j].Event.EndTime).isValid()) // recording over
{
-
- content = "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + myevents[j].Event.AlarmFrames + ") " + myevents[j].Event.Notes + "</span>";
+ //console.log ("EVENT "+myevents[j].Event.Id+" emded at "+myevents[j].Event.EndTime);
+
+ content = "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + myevents[j].Event.AlarmFrames + ") " + " ("+myevents[j].Event.Id+") "+ myevents[j].Event.Notes + "</span>";
style = "background-color:" + colors[parseInt(myevents[j].Event.MonitorId) % colors.length] +
";border-color:" + colors[parseInt(myevents[j].Event.MonitorId) % colors.length];
} else // still recording
{
- myevents[j].Event.EndTime = moment.tz(moment(), NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
+
+ var tze;
+ tze = moment().tz(NVRDataModel.getTimeZoneNow());
+
+ myevents[j].Event.EndTime = tze.format('YYYY-MM-DD HH:mm:ss');
+
+ //console.log ("END TIME = "+ myevents[j].Event.EndTime);
+
style = "background-color:orange";
recordingInProgress = true;
}
- if (moment(options.max).isBefore(moment())) {
- // console.log("Adjusting Range to fit in new event");
- options.max = moment().add('1', 'hours').locale('en').format("YYYY-MM-DD HH:mm:ss");
- timeline.setOptions(options);
- }
- // data.update({id: 2, group: 1});
- // update end time - is it needed to be updated?
- //
-
+
+
// right at this point we need to decide if we keep or remove this event
//
if (ld.enableAlarmCount && ld.minAlarmCount > myevents[j].Event.AlarmFrames && !recordingInProgress) {
// remove
- NVRDataModel.debug("Removing Event:" + myevents[j].Event.Id + "as it doesn't have" + myevents[j].Event.AlarmFrames + " alarm frames");
+ NVRDataModel.debug("Removing Event:" + myevents[j].Event.Id + "as it doesn't have " + myevents[j].Event.AlarmFrames + " alarm frames");
+ // var old = timeline.getWindow();
graphData.remove(myevents[j].Event.Id);
+ // timeline.setWindow (old.start, old.end);
} else {
+
+ var tzs1, tze1;
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ {
+ tzs1 = moment.tz(myevents[j].Event.StartTime, NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ tze1 = moment.tz(myevents[j].Event.EndTime, NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ }
+ else
+ {
+ tzs1 = moment.tz(myevents[j].Event.StartTime,NVRDataModel.getTimeZoneNow());
+ tze1 = moment.tz(myevents[j].Event.EndTime,NVRDataModel.getTimeZoneNow());
+ }
+
+ //tzs1 = tzs1.format("YYYY-MM-DD HH:mm:ss");
+ //tze1 = tze1.format("YYYY-MM-DD HH:mm:ss");
+
+ NVRDataModel.debug("Updating Event:" + myevents[j].Event.Id + "StartTime:"+tzs1.format()+" EndTime:" + tze1.format());
graphData.update({
id: myevents[j].Event.Id,
content: content,
- start:moment.tz(myevents[j].Event.StartTime,NVRDataModel.getTimeZoneNow()),
+ start:tzs1,
// start: myevents[j].Event.StartTime,
// end: myevents[j].Event.EndTime,
- end:moment.tz(myevents[j].Event.EndTime,NVRDataModel.getTimeZoneNow()),
- group: myevents[j].Event.MonitorId,
+ end:tze1,
+ //group: myevents[j].Event.MonitorId,
//type: "range",
style: style,
myframes: myevents[j].Event.Frames,
@@ -716,7 +777,10 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
});
- timeline.focus(myevents[j].Event.Id);
+ //timeline.focus(myevents[j].Event.Id);
+ //
+ timeline.moveTo(timeline.getCurrentTime());
+ //console.log ("Focus EID="+myevents[j].Event.Id);
localNewEvents = localNewEvents + NVRDataModel.getMonitorName(myevents[j].Event.MonitorId) + '@' + shortenTime(myevents[j].Event.StartTime) + ' (' + myevents[j].Event.Id + '),';
@@ -754,12 +818,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
// console.log (JSON.stringify(myevents[j]));
myevents[j].Event.DefaultVideo = "";
- if (NVRDataModel.getLogin().useLocalTimeZone) {
- //console.log ("CHANGING TZ");
- myevents[j].Event.StartTime = moment.tz(myevents[j].Event.StartTime, NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
- //2016-08-15 17:40:00
- myevents[j].Event.EndTime = moment.tz(myevents[j].Event.EndTime, NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
- }
+
// now lets make sure we don't infinitely increase
@@ -778,48 +837,69 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
// since this is a new add its possible dates are not defined
if (!moment(myevents[j].Event.StartTime).isValid()) {
- NVRDataModel.debug("Event:" + myevents[j].Event.Id + "-Invalid Start time - this should really not happen ");
+ NVRDataModel.log("Event:" + myevents[j].Event.Id + "-Invalid Start time - this should really not happen ");
}
if (!moment(myevents[j].Event.EndTime).isValid()) {
- // NVRDataModel.debug ("Event:" + myevents[j].Event.Id +"-End time is invalid, likely recording, so fixing" );
- myevents[j].Event.EndTime = moment.tz(moment(), NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
+ var t1 = moment().tz(NVRDataModel.getTimeZoneNow());
+
+
+
+ myevents[j].Event.EndTime = t1.format('YYYY-MM-DD HH:mm:ss');
+
+ NVRDataModel.debug ("Event:" + myevents[j].Event.Id +"-End time is invalid, setting to current time");
+
isBeingRecorded = true;
}
// if range doesn't allow for current time, we need to fix that
- if (moment(options.max).isBefore(moment())) {
+ /*if (moment(options.max).isBefore(moment())) {
// console.log("Adjusting Range to fit in new event");
options.max = moment().add('1', 'hours').locale('en').format("YYYY-MM-DD HH:mm:ss");
timeline.setOptions(options);
- }
+ }*/
var eventText = "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + (myevents[j].Event.AlarmFrames || ' unknown ') + ") " + myevents[j].Event.Notes + "</span>";
if (isBeingRecorded) {
- eventText = "<span class='my-vis-font'>" + myevents[j].Event.Notes + " " + $translate.instant('kRecordingProgress') + "</span>";
+ eventText = "<span class='my-vis-font'>" + "("+myevents[j].Event.Id+") "+ myevents[j].Event.Notes + " " + $translate.instant('kRecordingProgress') + "</span>";
}
// since we concated, its possible events may be repeated
if (!graphData.get(myevents[j].Event.Id)) {
- NVRDataModel.debug(">>> "+myevents[j].Event.Id + " at " + myevents[j].Event.StartTime + " New event updating graph");
+
localNewEvents = localNewEvents + NVRDataModel.getMonitorName(myevents[j].Event.MonitorId) + '@' + shortenTime(myevents[j].Event.StartTime) + ' (' + myevents[j].Event.Id + '),';
+ var tzs2, tze2;
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ {
+ tzs2 = moment.tz(myevents[j].Event.StartTime, NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ tze2 = moment.tz(myevents[j].Event.EndTime, NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ }
+ else
+ {
+ tzs2 = moment.tz(myevents[j].Event.StartTime,NVRDataModel.getTimeZoneNow());
+ tze2 = moment.tz(myevents[j].Event.EndTime,NVRDataModel.getTimeZoneNow());
+ }
+
+ //tzs2 = tzs2.format("YYYY-MM-DD HH:mm:ss");
+ //tze2 = tze2.format("YYYY-MM-DD HH:mm:ss");
+ NVRDataModel.debug(">>> "+myevents[j].Event.Id + " New event updating graph " + " from:" + tzs2.format()+" to:"+tze2.format() );
graphData.add({
id: myevents[j].Event.Id,
content: eventText,
- start:moment.tz(myevents[j].Event.StartTime,NVRDataModel.getTimeZoneNow()),
+ start:tzs2,
//start: myevents[j].Event.StartTime,
// end: myevents[j].Event.EndTime,
- end:moment.tz(myevents[j].Event.EndTime,NVRDataModel.getTimeZoneNow()),
+ end:tze2,
group: myevents[j].Event.MonitorId,
style: "background-color:orange",
//type: "range",
@@ -833,11 +913,13 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
});
graphIndex++;
+ //timeline.focus(myevents[j].Event.Id);
+ timeline.moveTo(timeline.getCurrentTime());
}
//options.max = moment(fromDate).locale('en').format("YYYY-MM-DD HH:mm:ss");
- timeline.focus(myevents[j].Event.Id);
+
} //idfound
@@ -918,21 +1000,48 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
//console.log ("AFTER VIS");
+ var tzs, tze;
+
+ // lets scope the time graph to either local or remote time zone
+
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ {
+ tzs = moment.tz(fromDate, NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ tze = moment.tz(toDate, NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ }
+ else
+ {
+ tzs = moment.tz(fromDate,NVRDataModel.getTimeZoneNow());
+ tze = moment.tz(toDate,NVRDataModel.getTimeZoneNow());
+ }
+
+ //tzs = tzs.format("YYYY-MM-DD HH:mm:ss");
+ //tze = tze.format("YYYY-MM-DD HH:mm:ss");
options = {
showCurrentTime: true,
editable: false,
+ moment: function (date) {
+
+ //var t;
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ //if (0)
+ return moment.tz(date,NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ else
+ // typecast to server time zone - its in server time anyway
+ return moment.tz(date,NVRDataModel.getTimeZoneNow());
+ },
//throttleRedraw: 100,
moveable: true,
zoomable: true,
selectable: true,
- start: moment.tz(fromDate,NVRDataModel.getTimeZoneNow()),
- end: moment.tz(toDate,NVRDataModel.getTimeZoneNow()),
+ start: tzs,
+ end: tze,
orientation: 'top',
- min: moment.tz(fromDate,NVRDataModel.getTimeZoneNow()),
- max: moment.tz(toDate,NVRDataModel.getTimeZoneNow()),
- zoomMin: 1 * 60 * 1000, // 1 min
+ min: tzs,
+ //max: tze,
+ zoomMin: 5 * 60 * 1000, // 1 min
stack: false,
format: {
minorLabels: {
@@ -1046,25 +1155,30 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
// console.log (JSON.stringify(myevents[i]));
myevents[i].Event.DefaultVideo = "";
- if (NVRDataModel.getLogin().useLocalTimeZone) {
- //console.log ("CHANGING TZ");
- myevents[i].Event.StartTime = moment.tz(myevents[i].Event.StartTime, NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
- //2016-08-15 17:40:00
- myevents[i].Event.EndTime = moment.tz(myevents[i].Event.EndTime, NVRDataModel.getTimeZoneNow()).tz(moment.tz.guess()).format('YYYY-MM-DD HH:mm:ss');
- }
-
+ //console.log ("ADDING "+myevents[i].Event.StartTime+"->"+myevents[i].Event.EndTime);
- console.log ("ADDING "+myevents[i].Event.StartTime+"->"+myevents[i].Event.EndTime);
+ var tzs, tze;
+ if (NVRDataModel.getLogin().useLocalTimeZone)
+ {
+ tzs = moment.tz(myevents[i].Event.StartTime,NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ tze = moment.tz(myevents[i].Event.EndTime,NVRDataModel.getTimeZoneNow()).tz(NVRDataModel.getLocalTimeZoneNow());
+ }
+ else
+ {
+ tzs = moment.tz(myevents[i].Event.StartTime,NVRDataModel.getTimeZoneNow());
+ tze = moment.tz(myevents[i].Event.EndTime,NVRDataModel.getTimeZoneNow());
+ }
+ //console.log ("ADDED "+tzs+" " +tze);
graphData.add({
//id: graphIndex,
id: myevents[i].Event.Id,
- content: "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + myevents[i].Event.AlarmFrames + ") " + myevents[i].Event.Notes + "</span>",
+ content: "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + myevents[i].Event.AlarmFrames + ") "+ "("+myevents[j].Event.Id+") " + myevents[i].Event.Notes + "</span>",
- start:moment.tz(myevents[i].Event.StartTime,NVRDataModel.getTimeZoneNow()),
+ start:tzs,
//start: myevents[i].Event.StartTime,
//end: myevents[i].Event.EndTime,
- end:moment.tz(myevents[i].Event.EndTime,NVRDataModel.getTimeZoneNow()),
+ end:tze,
group: myevents[i].Event.MonitorId,
//type: "range",
style: "background-color:" + colors[parseInt(myevents[i].Event.MonitorId) % colors.length] +
@@ -1132,7 +1246,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
}
- lastTimeForEvent = moment();
+ lastTimeForEvent = moment().tz(NVRDataModel.getLogin().useLocalTimeZone?NVRDataModel.getLocalTimeZoneNow():NVRDataModel.getTimeZoneNow());
updateInterval = $interval(function() {
processNewEvents();
}.bind(this), 10 * 1000);