From d167ac96958730179cbb0a8245d800e3ce1fbef5 Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Mon, 31 Aug 2020 22:09:24 +1200 Subject: increment app version # Conflicts: # package.json # www/js/NVR.js --- www/js/EventCtrl.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'www/js') diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index a6e89d6c..8da67496 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -1159,6 +1159,54 @@ angular.module('zmApp.controllers') reload: true });*/ }; + + $scope.nextEventsLoad = function () { + NVR.debug("nextEventsLoad called"); + $scope.nextEvents = false; + //$scope.eventsBeingLoaded = true; + var lData = NVR.getLogin(); + + currEventsPage = 1; + maxEventsPage = 1; + currentPagePosition = 0; + currentPageLength = 0; + + nolangFrom = ""; + nolangTo = ""; + if ($rootScope.toString && $rootScope.fromString) { + //nolangTo = moment($rootScope.fromString).locale('en').format("YYYY-MM-DD HH:mm:ss"); + nolangTo = moment($scope.events[$scope.events.length-1].Event.StartTime).subtract(1, 'seconds').locale('en').format("YYYY-MM-DD HH:mm:ss"); + //$rootScope.fromString = new Date('01/01/2000'); + nolangFrom = moment(new Date('01/01/2000')).locale('en').format("YYYY-MM-DD HH:mm:ss"); + } + + //NVR.debug ("GETTING EVENTS USING "+$scope.id+" "+nolangFrom+" "+ nolangTo); + NVR.debug("EventCtrl: grabbing events for: id=" + $scope.id + " Date/Time:" + nolangFrom + + "-" + nolangTo); + + NVR.getEvents($scope.id, currEventsPage, "", nolangFrom, nolangTo, false, $rootScope.monitorsFilter) + .then(function (data) { + // console.log(JSON.stringify(data.pagination)); + if (data.pagination && data.pagination.pageCount) + maxEventsPage = data.pagination.pageCount; + + NVR.debug("maxEventsPage: " + maxEventsPage + ", currEventsPage: " + currEventsPage); + + // console.log ("WE GOT EVENTS="+JSON.stringify(data)); + + //NVR.debug("EventCtrl: success, got " + data.events.length + " events"); + loadEvents(data); + + currentPageData = data; + //$scope.events = data.events; + // we only need to stop the template from loading when the list is empty + // so this can be false once we have _some_ content + // FIXME: check reload + //$scope.eventsBeingLoaded = false; + moreEvents = true; + }); + loadMoreTime = Date.now(); + }; //---------------------------------------------------------------- // Alarm notification handling -- cgit v1.2.3 From e02255edfba2f055d7a35dea5f6442eeb149632e Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Mon, 31 Aug 2020 22:16:48 +1200 Subject: increase image size in event list, improve layout and loading code. # Conflicts: # www/js/EventCtrl.js --- www/js/EventCtrl.js | 443 ++++++++++++++++++++++++++-------------------------- 1 file changed, 219 insertions(+), 224 deletions(-) (limited to 'www/js') diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index 8da67496..7f0aeb5d 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -48,7 +48,6 @@ angular.module('zmApp.controllers') var currEventsPage = 1; var maxEventsPage = 1; var moreEvents; - var pageLoaded; var enableLoadMore; var lData; var showHiddenMonitors; @@ -58,14 +57,17 @@ angular.module('zmApp.controllers') var nolangTo; var broadcastHandles = []; var intervalReloadEvents; + var eventHeight = 0; + var currentPagePosition = 0; + var currentPageLength = 0; + var currentPageData; + var loadMoreTime; + var maxEventsToLoad = 5; //limit to 5 to minimise memory usage when displaying gifs $scope.typeOfFrames = $translate.instant('kShowTimeDiffFrames'); $scope.outlineMotion = false; $scope.outlineMotionParam = "&show=capture"; - - - var eventsListScrubHeight = eventsListScrubHeight; - var eventsListDetailsHeight = eventsListDetailsHeight; + $scope.eventsBeingLoaded = true; var eHandle; var scrubOngoing = false; @@ -176,7 +178,16 @@ angular.module('zmApp.controllers') $scope.$on('$ionicView.beforeLeave', function () { - + /*NVR.log("EventCtrl:beforeLeave Filter reset"); + $rootScope.isEventFilterOn = false; + $rootScope.fromDate = ""; + $rootScope.fromTime = ""; + $rootScope.toDate = ""; + $rootScope.toTime = ""; + $rootScope.fromString = ""; + $rootScope.toString = ""; + $rootScope.monitorsFilter = ''; +*/ NVR.debug ("Cancelling page reload timer"); $interval.cancel(intervalReloadEvents); NVR.debug("EventCtrl: Deregistering resize listener"); @@ -229,40 +240,29 @@ angular.module('zmApp.controllers') document.addEventListener("pause", onPause, false); //console.log("I got STATE PARAM " + $stateParams.id); $scope.id = parseInt($stateParams.id, 10); - if (isNaN($scope.id)) $scope.id = 0; $scope.showEvent = $stateParams.playEvent || false; $scope.monitors = NVR.getMonitorsNow(); + //console.log("lastCheckTime: " + $stateParams.lastCheckTime); + if ($stateParams.lastCheckTime != undefined && $stateParams.lastCheckTime != '' && moment($stateParams.lastCheckTime).isValid()) { + $rootScope.fromString = $stateParams.lastCheckTime; + var mToDate = moment().tz(NVR.getTimeZoneNow()); + $rootScope.toString = mToDate + .format("YYYY-MM-DD") + " " + mToDate.format("HH:mm:ss"); + $rootScope.isEventFilterOn = true; + $rootScope.fromDate = moment($rootScope.fromString).toDate(); + $rootScope.fromTime = moment($rootScope.fromString).toDate(); + $rootScope.toDate = moment($rootScope.toString).toDate(); + $rootScope.toTime = moment($rootScope.toString).toDate(); + //console.log("toString: " + $rootScope.toString); + } + //console.log("BEFORE ENTER >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); NVR.log("EventCtrl called with: E/MID=" + $scope.id + " playEvent = " + $scope.showEvent); - - - // This is the only view that hardcodes row size due to - // collection repeat, so lets re-get the text size if it has changed - // note that there may be a delay as its a callback - so might involve - // a UI jiggle - - /* if (window.cordova) - MobileAccessibility.getTextZoom(getTextZoomCallback);*/ - - eventsListDetailsHeight = parseInt(zm.eventsListDetailsHeight * $rootScope.textScaleFactor); - eventsListScrubHeight = parseInt(zm.eventsListScrubHeight * $rootScope.textScaleFactor); - - - if (NVR.getLogin().enableThumbs) { - // NVR.debug("--> thumbnail means increasing row size"); - eventsListScrubHeight = 370; - eventsListDetailsHeight = 330; - - } - - NVR.debug(">>>height of list/scrub set to " + eventsListDetailsHeight + " and " + eventsListScrubHeight); - - pageLoaded = false; enableLoadMore = true; $scope.mycarousel = { @@ -397,6 +397,8 @@ angular.module('zmApp.controllers') function getInitialEvents() { NVR.debug("getInitialEvents called"); + $scope.eventsBeingLoaded = true; + $ionicScrollDelegate.$getByHandle("mainScroll").scrollTop(); var lData = NVR.getLogin(); // If you came from Monitors, disregard hidden monitors in montage @@ -407,6 +409,8 @@ angular.module('zmApp.controllers') $scope.monitors = message; currEventsPage = 1; maxEventsPage = 1; + currentPagePosition = 0; + currentPageLength = 0; if ($scope.monitors.length == 0) { var pTitle = $translate.instant('kNoMonitors'); @@ -426,11 +430,23 @@ angular.module('zmApp.controllers') } $scope.events = []; + + if ($scope.id) { + $rootScope.monitorsFilter = "/MonitorId =:" + $scope.id; + //console.log("monitors.length: " + $scope.monitors.length); + for (var i=0; i <= $scope.monitors.length; i++) { + //console.log("i: " + i); + if ($scope.monitors[i] != undefined) { + //console.log("$scope.monitors[i].Id: " + $scope.monitors[i].Monitor.Id); + if ($scope.monitors[i].Monitor.Id == $scope.id) + $scope.monitors[i].Monitor.isChecked = true; + else + $scope.monitors[i].Monitor.isChecked = false; + } + } + $scope.id = 0; + } - // First get total pages and then - // start from the latest. If this fails, nothing displays - - NVR.debug("EventCtrl: grabbing # of event pages"); nolangFrom = ""; nolangTo = ""; if ($rootScope.fromString) @@ -439,122 +455,40 @@ angular.module('zmApp.controllers') nolangTo = moment($rootScope.toString).locale('en').format("YYYY-MM-DD HH:mm:ss"); //NVR.debug ("GETTING EVENTS USING "+$scope.id+" "+nolangFrom+" "+ nolangTo); - - NVR.debug("EventCtrl: grabbing events for: id=" + $scope.id + " Date/Time:" + $rootScope.fromString + "-" + $rootScope.toString); - nolangFrom = ""; - nolangTo = ""; - if ($rootScope.fromString) - nolangFrom = moment($rootScope.fromString).locale('en').format("YYYY-MM-DD HH:mm:ss"); - if ($rootScope.toString) - nolangTo = moment($rootScope.toString).locale('en').format("YYYY-MM-DD HH:mm:ss"); NVR.getEvents($scope.id, currEventsPage, "", nolangFrom, nolangTo, false, $rootScope.monitorsFilter) .then(function (data) { - - pageLoaded = true; - //$scope.viewTitle.title = data.pagination.count; - // console.log(JSON.stringify(data.pagination)); if (data.pagination && data.pagination.pageCount) maxEventsPage = data.pagination.pageCount; - NVR.debug("We have a total of " + maxEventsPage + " and are at page=" + currEventsPage); + NVR.debug("maxEventsPage: " + maxEventsPage + ", currEventsPage: " + currEventsPage); // console.log ("WE GOT EVENTS="+JSON.stringify(data)); - var myevents = data.events; - - NVR.debug("EventCtrl: success, got " + myevents.length + " events"); - var loginData = NVR.getLogin(); - - //console.log ("-------->MON LEN"+$scope.monitors.length); - - for (var i = 0; i < myevents.length; i++) { - - var idfound = true; - if (loginData.persistMontageOrder) { - idfound = false; - for (var ii = 0; ii < $scope.monitors.length; ii++) { - if ($scope.monitors[ii].Monitor.Id == myevents[i].Event.MonitorId && (NVR.isNotHidden(myevents[i].Event.MonitorId) || showHiddenMonitors)) { - // console.log ("FOUND IT"); - - idfound = true; - break; - } - } - } - - //console.log ("IDFOUND="+idfound + " AND MON LEN="+$scope.monitors.length); - - myevents[i].Event.humanizeTime = humanizeTime(myevents[i].Event.StartTime); - myevents[i].Event.streamingURL = NVR.getStreamingURL(myevents[i].Event.MonitorId); - myevents[i].Event.recordingURL = NVR.getRecordingURL(myevents[i].Event.MonitorId); - myevents[i].Event.imageMode = NVR.getImageMode(myevents[i].Event.MonitorId); - - //console.log ("***** MULTISERVER STREAMING URL FOR EVENTS " + myevents[i].Event.streamingURL); - - // console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.recordingURL); - - myevents[i].Event.MonitorName = NVR.getMonitorName(myevents[i].Event.MonitorId); - myevents[i].Event.ShowScrub = false; - myevents[i].Event.height = eventsListDetailsHeight; - // now construct base path - - - // get thumbW/H - - var tempMon = NVR.getMonitorObject(myevents[i].Event.MonitorId); - if (tempMon != undefined) { - - var mw = parseInt(tempMon.Monitor.Width); - var mh = parseInt(tempMon.Monitor.Height); - - - var mo = parseInt(tempMon.Monitor.Orientation); - myevents[i].Event.Rotation = ''; - - var th = computeThumbnailSize(mw, mh, mo); - myevents[i].Event.thumbWidth = th.w; - myevents[i].Event.thumbHeight = th.h; - } - - // in multiserver BasePath is login url for frames - // http://login.url/index.php?view=frame&eid=19696772&fid=21 - - // console.log ("COMPARING "+NVR.getLogin().url+ " TO " +myevents[i].Event.recordingURL); - + //NVR.debug("EventCtrl: success, got " + data.events.length + " events"); + loadEvents(data); - myevents[i].Event.videoPath = myevents[i].Event.recordingURL + "/index.php?view=view_video&eid=" + myevents[i].Event.Id; - - // if (idfound) - if (idfound) { - - //NVR.debug ("PUSHING "+JSON.stringify(myevents[i])); - $scope.events.push(myevents[i]); - //console.log ("SCOPE EVENTS LEN="+$scope.events.length); - } else { - //NVR.debug ("Skipping Event MID = " + myevents[i].Event.MonitorId); - } - - } //for - - //$scope.events = myevents; + currentPageData = data; + //$scope.events = data.events; // we only need to stop the template from loading when the list is empty // so this can be false once we have _some_ content // FIXME: check reload $scope.eventsBeingLoaded = false; + moreEvents = true; // to avoid only few events being displayed // if last page has less events //console.log("**Loading Next Page ***"); - if (myevents.length < 50) { + if ($scope.events < 5) { //console.log ("EVENTS LOADED="+JSON.stringify($scope.events)); NVR.debug("EventCtrl:loading one more page just in case we don't have enough to display"); loadMore(); } + navTitle(); }); - + loadMoreTime = Date.now(); } //------------------------------------------------------- @@ -2076,19 +2010,33 @@ angular.module('zmApp.controllers') $ionicSideMenuDelegate.toggleLeft(); }; - $scope.scrollPosition = function () { - if (!$ionicScrollDelegate.$getByHandle("mainScroll")) return ""; - if (!$ionicScrollDelegate.$getByHandle("mainScroll").getScrollPosition()) return ""; + $scope.scrolling = function() { + //console.log("scrolling : When Scrolling"); + navTitle(); + }; + + function navTitle() { + if (!$ionicScrollDelegate.$getByHandle("mainScroll")) $scope.navTitle = ""; + if (!$ionicScrollDelegate.$getByHandle("mainScroll").getScrollPosition()) $scope.navTitle = ""; var scrl = parseFloat($ionicScrollDelegate.$getByHandle("mainScroll").getScrollPosition().top); - var item = Math.round(scrl / eventsListDetailsHeight); + if (eventHeight == 0 && !$scope.eventsBeingLoaded && document.getElementById('item-0') != null) { + eventHeight = document.getElementById('item-0').offsetHeight; + NVR.debug("scrl: " + scrl + ", eventHeight: " + eventHeight); + } + var item = 0; + if (eventHeight) { + item = Math.floor(scrl / eventHeight); + } + //NVR.debug("scrl: " + scrl + ", events[0].Event.Height: " + eventHeight + ", item: " + item); if ($scope.events == undefined || !$scope.events.length || $scope.events[item] == undefined) { - return ""; + $scope.navTitle = ""; } else { //return prettifyDate($scope.events[item].Event.StartTime); - return ($scope.events[item].Event.humanizeTime); + $scope.navTitle = ($scope.events[item].Event.humanizeTime); } + $scope.$evalAsync(); //return Math.random(); - }; + } //------------------------------------------------------------------------- // called when user switches to background @@ -2160,8 +2108,6 @@ angular.module('zmApp.controllers') }; function toggleGroup(event, ndx, frames, groupType) { - - // If we are here and there is a record of a previous scroll // then we need to scroll back to hide that view if (scrollbynumber) { @@ -2178,7 +2124,6 @@ angular.module('zmApp.controllers') NVR.debug("EventCtrl:Old event scrub will hide now"); oldEvent.Event.ShowScrub = false; - oldEvent.Event.height = eventsListDetailsHeight; oldEvent = ""; } @@ -2210,7 +2155,6 @@ angular.module('zmApp.controllers') // $ionicListDelegate.canSwipeItems(false); //NVR.debug ("Disabling flag swipe as alarms are swipable"); $scope.alarm_images = []; - event.Event.height = (eventsListDetailsHeight + eventsListScrubHeight); $ionicScrollDelegate.resize(); var myurl = loginData.apiurl + '/events/' + event.Event.Id + ".json?"+$rootScope.authSession; NVR.log("API for event details" + myurl); @@ -2314,7 +2258,6 @@ angular.module('zmApp.controllers') }; - event.Event.height = (eventsListDetailsHeight + eventsListScrubHeight); $ionicScrollDelegate.resize(); $scope.mycarousel.index = 0; $scope.ionRange.index = 1; @@ -2424,15 +2367,6 @@ angular.module('zmApp.controllers') // console.log("top location is " + toplocation); var distdiff = parseInt($rootScope.devHeight) - toplocation - objheight; // console.log("*****Space at bottom is " + distdiff); - - if (distdiff < eventsListScrubHeight) // size of the scroller with bars - { - scrollbynumber = eventsListScrubHeight - distdiff; - $ionicScrollDelegate.$getByHandle("mainScroll").scrollBy(0, scrollbynumber, true); - - // we need to scroll up to make space - } - } // end of groupType == scrub } // end of ShowScrub == true else { @@ -2442,7 +2376,6 @@ angular.module('zmApp.controllers') // NVR.debug ("enabling options swipe"); $ionicSideMenuDelegate.canDragContent(true); - event.Event.height = eventsListDetailsHeight; $ionicScrollDelegate.resize(); if (scrollbynumber) { @@ -2465,7 +2398,6 @@ angular.module('zmApp.controllers') $scope.isGroupShown = function (event) { // console.log ("IS SHOW INDEX is " + ndx); //console.log ("SHOW GROUP IS " + showGroup); - return (event == undefined) ? false : event.Event.ShowScrub; }; @@ -2788,6 +2720,7 @@ angular.module('zmApp.controllers') //-------------------------------------------------------- $scope.moreDataCanBeLoaded = function () { + //console.log(new Date() + ' ' + moreEvents); return moreEvents; }; @@ -2818,9 +2751,18 @@ angular.module('zmApp.controllers') // except greater page limits than reported //console.log("***** LOADING MORE INFINITE SCROLL ****"); + loadMoreTime = Date.now(); + + if (currentPagePosition > 0 && currentPagePosition >= currentPageLength) { + currEventsPage++; + currentPagePosition = 0; + currentPageLength = 0; + } + NVR.debug("EventCtrl:loadMore() currEventsPage: " + currEventsPage + ", currentPagePosition: " + currentPagePosition + ", currentPageLength: " + currentPageLength); - if ((currEventsPage >= maxEventsPage) && (pageLoaded)) { + if (currEventsPage > maxEventsPage) { moreEvents = false; + $scope.nextEvents = true; NVR.debug("No more - We have a total of " + maxEventsPage + " and are at page=" + currEventsPage); // console.log("*** At Page " + currEventsPage + " of " + maxEventsPage + ", not proceeding"); @@ -2828,10 +2770,10 @@ angular.module('zmApp.controllers') return; } - currEventsPage++; if (!enableLoadMore) { $ionicLoading.hide(); moreEvents = false; // Don't ion-scroll till enableLoadMore is true; + $scope.nextEvents = true; $scope.$broadcast('scroll.infiniteScrollComplete'); // console.log("**** LOADMORE ARTIFICALLY DISABLED"); @@ -2861,88 +2803,130 @@ angular.module('zmApp.controllers') if ($rootScope.toString) nolangTo = moment($rootScope.toString).locale('en').format("YYYY-MM-DD HH:mm:ss"); + if (currentPagePosition && currentPageData) { + loadEvents(currentPageData); + //console.log("Got new page of events"); + moreEvents = true; + } + else { NVR.getEvents($scope.id, currEventsPage, loadingStr, nolangFrom, nolangTo, false,$rootScope.monitorsFilter) - .then(function (data) { - var loginData = NVR.getLogin(); - // console.log("Got new page of events with Page=" + eventsPage); - var myevents = data.events; - + .then( function (data) { + // console.log(JSON.stringify(data.pagination)); + if (data.pagination && data.pagination.pageCount) + maxEventsPage = data.pagination.pageCount; - for (var i = 0; i < myevents.length; i++) { + loadEvents(data); + currentPageData = data; + //console.log("Got new page of events"); + moreEvents = true; + }, - var idfound = true; - var ld = NVR.getLogin(); + function (error) { + // console.log("*** No More Events to Load, Stop Infinite Scroll ****"); + moreEvents = false; + $ionicLoading.hide(); + }); + } + } - if (ld.persistMontageOrder) { - idfound = false; - for (var ii = 0; ii < $scope.monitors.length; ii++) { - if ($scope.monitors[ii].Monitor.Id == myevents[i].Event.MonitorId && (NVR.isNotHidden(myevents[i].Event.MonitorId) || showHiddenMonitors)) { + $scope.loadMore = function () { + var now = Date.now(); + if (now - loadMoreTime > 1500) { + NVR.debug("$scope.loadMore > loadMore() ... delta: " + (now - loadMoreTime)); + loadMore(); + $scope.$broadcast('scroll.infiniteScrollComplete'); + } + else { + NVR.debug("$scope.loadMore ... delta: " + (now - loadMoreTime)); + $timeout(function () { + $scope.$broadcast('scroll.infiniteScrollComplete'); + }, 250); + } + }; + + function loadEvents(data) { + var loginData = NVR.getLogin(); + var myevents = data.events; + NVR.debug("EventCtrl:loadEvents() myevents.length: " + myevents.length + ", currEventsPage: " + currEventsPage + ", currentPagePosition: " + currentPagePosition); + + if (data.events.length == 0) { + NVR.debug("EventCtrl:loadEvents() no events so we must have reached the end."); + moreEvents = false; + $ionicLoading.hide(); + currEventsPage++; + return; + } - //console.log ( $scope.monitors[ii].Monitor.Id + " MATCHES " + myevents[i].Event.MonitorId); - idfound = true; + //console.log ("-------->MON LEN"+$scope.monitors.length); + currentPageLength = myevents.length; + var eventsLoaded = 0; + var prevPagePosition = currentPagePosition; + for (currentPagePosition; currentPagePosition < myevents.length && eventsLoaded < maxEventsToLoad; currentPagePosition++) { + var idfound = true; + if (loginData.persistMontageOrder) { + idfound = false; + for (var i = 0; i < $scope.monitors.length; i++) { + if ($scope.monitors[i].Monitor.Id == myevents[currentPagePosition].Event.MonitorId && (NVR.isNotHidden(myevents[currentPagePosition].Event.MonitorId) || showHiddenMonitors)) { + // console.log ("FOUND IT"); - break; - } + //console.log ( $scope.monitors[i].Monitor.Id + " MATCHES " + myevents[currentPagePosition].Event.MonitorId); + idfound = true; + break; } } + } - myevents[i].Event.humanizeTime = humanizeTime(myevents[i].Event.StartTime); - myevents[i].Event.MonitorName = NVR.getMonitorName(myevents[i].Event.MonitorId); - // now construct base path - - myevents[i].Event.streamingURL = NVR.getStreamingURL(myevents[i].Event.MonitorId); - myevents[i].Event.recordingURL = NVR.getRecordingURL(myevents[i].Event.MonitorId); - myevents[i].Event.imageMode = NVR.getImageMode(myevents[i].Event.MonitorId); - // console.log ("***** MULTISERVER STREAMING URL FOR EVENTS " + myevents[i].Event.streamingURL); - - // console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.recordingURL); + //console.log ("IDFOUND="+idfound + " AND MON LEN="+$scope.monitors.length); - myevents[i].Event.ShowScrub = false; - myevents[i].Event.height = eventsListDetailsHeight; + myevents[currentPagePosition].Event.humanizeTime = humanizeTime(myevents[currentPagePosition].Event.StartTime); + myevents[currentPagePosition].Event.streamingURL = NVR.getStreamingURL(myevents[currentPagePosition].Event.MonitorId); + myevents[currentPagePosition].Event.recordingURL = NVR.getRecordingURL(myevents[currentPagePosition].Event.MonitorId); + myevents[currentPagePosition].Event.imageMode = NVR.getImageMode(myevents[currentPagePosition].Event.MonitorId); - // get thumbW/H + // console.log ("***** MULTISERVER STREAMING URL FOR EVENTS " + myevents[currentPagePosition].Event.streamingURL); + // console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[currentPagePosition].Event.recordingURL); - var tempMon = NVR.getMonitorObject(myevents[i].Event.MonitorId); - if (tempMon != undefined) { - var mw = parseInt(tempMon.Monitor.Width); - var mh = parseInt(tempMon.Monitor.Height); - var mo = parseInt(tempMon.Monitor.Orientation); + myevents[currentPagePosition].Event.MonitorName = NVR.getMonitorName(myevents[currentPagePosition].Event.MonitorId); + myevents[currentPagePosition].Event.ShowScrub = false; + //myevents[currentPagePosition].Event.height = eventsListDetailsHeight; + // now construct base path - myevents[i].Event.Rotation = ''; + // get thumbW/H + var tempMon = NVR.getMonitorObject(myevents[currentPagePosition].Event.MonitorId); + if (tempMon != undefined) { + var mw = parseInt(tempMon.Monitor.Width); + var mh = parseInt(tempMon.Monitor.Height); + var mo = parseInt(tempMon.Monitor.Orientation); + myevents[currentPagePosition].Event.Rotation = ''; + var th = computeThumbnailSize(mw, mh, mo); + myevents[currentPagePosition].Event.thumbWidth = th.w; + myevents[currentPagePosition].Event.thumbHeight = th.h; + } - var th = computeThumbnailSize(mw, mh, mo); - myevents[i].Event.thumbWidth = th.w; - myevents[i].Event.thumbHeight = th.h; + // in multiserver BasePath is login url for frames + // http://login.url/index.php?view=frame&eid=19696772&fid=21 - } + // console.log ("COMPARING "+NVR.getLogin().url+ " TO " +myevents[currentPagePosition].Event.recordingURL); + myevents[currentPagePosition].Event.videoPath = myevents[currentPagePosition].Event.recordingURL + "/index.php?view=view_video&eid=" + myevents[currentPagePosition].Event.Id; - - myevents[i].Event.videoPath = myevents[i].Event.recordingURL + "/index.php?view=view_video&eid=" + myevents[i].Event.Id; + // if (idfound) + if (idfound) { - if (idfound) $scope.events.push(myevents[i]); + //NVR.debug ("PUSHING "+JSON.stringify(myevents[currentPagePosition])); + $scope.events.push(myevents[currentPagePosition]); + eventsLoaded++; + //console.log ("SCOPE EVENTS LEN="+$scope.events.length); + } else { + //NVR.debug ("Skipping Event MID = " + myevents[currentPagePosition].Event.MonitorId); } - //console.log("Got new page of events"); - moreEvents = true; - $scope.$broadcast('scroll.infiniteScrollComplete'); - }, - - function (error) { - // console.log("*** No More Events to Load, Stop Infinite Scroll ****"); - moreEvents = false; - $ionicLoading.hide(); - $scope.$broadcast('scroll.infiniteScrollComplete'); - - }); + } //for + + NVR.debug("EventCtrl:loadEvents() Events added to view: " + (currentPagePosition - prevPagePosition)); } - $scope.loadMore = function () { - loadMore(); - - }; - function recomputeThumbSize() { // NVR.debug("EventCtrl: recompute thumbnails"); @@ -2961,6 +2945,8 @@ angular.module('zmApp.controllers') $scope.events[i].Event.thumbWidth = th.w; $scope.events[i].Event.thumbHeight = th.h; //console.log ("Setting to "+th.w+"*"+th.h); + + eventHeight = document.getElementById('item-0').offsetHeight; } @@ -2972,12 +2958,9 @@ angular.module('zmApp.controllers') } function computeThumbnailSize(mw, mh, mo) { - - - - - tw = Math.min(Math.round(0.35 * $rootScope.devWidth), 200); - th = 150; + + tw = Math.round(0.9 * $rootScope.devWidth); + th = Math.round(0.7 * $rootScope.devHeight); var ratio = mw / mh; var result = { @@ -3004,15 +2987,17 @@ angular.module('zmApp.controllers') } if (mw > mh) { - ratio = mh / mw; mw = tw; - mh = tw * ratio; + mh = tw / ratio; + if (mh > th) { + mw = th * ratio; + mh = th; + } } else if (mh > mw) { - ratio = mw / mh; mh = th; mw = th * ratio; } else { - mw = tw; + mh = th; mw = tw; } mw = Math.round(mw); @@ -3027,14 +3012,20 @@ angular.module('zmApp.controllers') $scope.constructThumbnail = function (event) { var stream = ""; + //console.log(event.Event.Notes); + var snapshotFrame = NVR.getSnapshotFrame(); + if (NVR.getSnapshotFrame() == 'objdetect' && !event.Event.Notes.includes("detected:")) { + snapshotFrame = 'snapshot'; + } stream = event.Event.recordingURL + "/index.php?view=image&fid=" + - NVR.getSnapshotFrame()+"&eid="+event.Event.Id + - "&width=" + event.Event.thumbWidth * 2 + - "&height=" + event.Event.thumbHeight * 2; + snapshotFrame+"&eid="+event.Event.Id + + "&width=" + event.Event.thumbWidth + + "&height=" + event.Event.thumbHeight; stream += $rootScope.authSession; stream += NVR.insertSpecialTokens(); + return stream; }; @@ -3068,7 +3059,7 @@ angular.module('zmApp.controllers') return stream; }; - + $scope.toggleObjectDetectionFilter = function () { var ld = NVR.getLogin(); @@ -3173,6 +3164,9 @@ angular.module('zmApp.controllers') NVR.debug("Reloading monitors"); maxEventsPage = 1; currEventsPage = 1; + currentLength = 0; + currentPagePosition = 0; + currentPageLength = 0; var refresh = NVR.getMonitors(1); refresh.then(function (data) { $scope.monitors = data; @@ -3190,6 +3184,7 @@ angular.module('zmApp.controllers') moreEvents = true; }); + $scope.$broadcast('scroll.refreshComplete'); } }]); -- cgit v1.2.3 From 0e5779874010cd8730ee4f788ff4420f70dd2ad2 Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Sat, 29 Aug 2020 21:29:07 +1200 Subject: when click notification in montage, filter event view to only display events since last notification click --- www/js/EventDateTimeFilterCtrl.js | 17 +++++++++++++++-- www/js/MontageCtrl.js | 36 ++++++++++++++++++++++++++++++++---- www/js/app.js | 2 +- 3 files changed, 48 insertions(+), 7 deletions(-) (limited to 'www/js') diff --git a/www/js/EventDateTimeFilterCtrl.js b/www/js/EventDateTimeFilterCtrl.js index e2d7b22e..689b800d 100644 --- a/www/js/EventDateTimeFilterCtrl.js +++ b/www/js/EventDateTimeFilterCtrl.js @@ -63,6 +63,7 @@ angular.module('zmApp.controllers') $rootScope.toTime = ""; $rootScope.fromString = ""; $rootScope.toString = ""; + $rootScope.monitorsFilter = ''; // if you come here via the events pullup // you are looking at a specific monitor ID @@ -100,6 +101,8 @@ angular.module('zmApp.controllers') // don't root. //-------------------------------------------------------------------------- $scope.saveFilters = function () { + // only reset date/time if at least one of them is set. + if ($rootScope.fromDate || $rootScope.toDate || $rootScope.fromTime || $rootScope.toTime) { if (!$rootScope.fromDate) { //console.log("RESET fromDate"); $rootScope.fromDate = new Date(); @@ -131,11 +134,21 @@ angular.module('zmApp.controllers') $rootScope.fromDate = $rootScope.toDate; $rootScope.toDate = t; } - - $rootScope.isEventFilterOn = true; + $rootScope.fromString = moment($rootScope.fromDate).format("YYYY-MM-DD") + " " + moment($rootScope.fromTime).format("HH:mm:ss"); $rootScope.toString = moment($rootScope.toDate).format("YYYY-MM-DD") + " " + moment($rootScope.toTime).format("HH:mm:ss"); + } + else { + $rootScope.fromDate = null; + $rootScope.toDate = null; + $rootScope.fromTime = null; + $rootScope.toTime = null; + $rootScope.fromString = null; + $rootScope.toString = null; + } + + $rootScope.isEventFilterOn = true; //console.log("CONCAT DATES " + temp); // diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index 967decfe..3da303a5 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -592,6 +592,7 @@ angular.module('zmApp.controllers') // now is server TZ time var now = ld.lastEventCheckTimes[monitor.Monitor.Id]; + NVR.debug ("ld.lastEventCheckTimes[id]:" + ld.lastEventCheckTimes[monitor.Monitor.Id]); apiurl += "/StartTime >:" + now; } @@ -615,7 +616,7 @@ angular.module('zmApp.controllers') apiurl += '.json?sort=StartTime&direction=desc&limit=1'+$rootScope.authSession; - NVR.debug ("Getting event count "); + NVR.debug ("Getting event count for monitor.Monitor.Id: " + monitor.Monitor.Id); $http.get(apiurl) .then (function (data) { // console.log ("EVENTS GOT: "+JSON.stringify(data)); @@ -1706,7 +1707,7 @@ angular.module('zmApp.controllers') function onResume() { // we should be going to portal login so no need here - //NVR.debug ("Montage resume called, regenerating all connkeys"); + NVR.debug ("Montage resume called, regenerating all connkeys"); //NVR.regenConnKeys(); // $scope.MontageMonitors = NVR.getMonitorsNow(); @@ -2290,9 +2291,29 @@ angular.module('zmApp.controllers') var stream; var fps = NVR.getLogin().montageliveFPS; + if (!monitor.Monitor.streamingURL) { + NVR.debug("monitor.Monitor.streamingURL: " + monitor.Monitor.streamingURL ); + NVR.debug("monitor.Monitor.MonitorId: " + monitor.Monitor.MonitorId ); + /*for (var key in monitor.Monitor) { + console.log(key + ": " + monitor.Monitor[key]); + } + return; + NVR.log("Reloading view for montage view, recomputing rand"); + $rootScope.rand = Math.floor((Math.random() * 100000) + 1); + $scope.monitors = []; + //imageLoadingDataShare.set(0); + + var refresh = NVR.getMonitors(1); + + refresh.then(function (data) { + $scope.monitors = data; + }); + return;*/ + } if (currentStreamState == streamState.STOPPED || monitor.Monitor.listDisplay == 'noshow' ) { //console.log ("STREAM=empty and auth="+$rootScope.authSession); //sconsole.log ('EMPTY STREAM'); + NVR.log("currentStreamState: " + currentStreamState + ", monitor.Monitor.listDisplay: " + monitor.Monitor.listDisplay); return ""; } @@ -2300,6 +2321,7 @@ angular.module('zmApp.controllers') stream = monitor.Monitor.streamingURL + "/nph-zms?mode=single&scale=10&monitor="+ monitor.Monitor.Id + "&rand=" + randToAvoidCacheMem + monitor.Monitor.Id ; // console.log(stream); + NVR.log("currentStreamState: " + currentStreamState); } else { stream = monitor.Monitor.streamingURL + @@ -2328,6 +2350,7 @@ angular.module('zmApp.controllers') //console.log("STREAM=" + stream); + //NVR.log("STREAM=" + stream); return stream; }; @@ -2611,15 +2634,20 @@ angular.module('zmApp.controllers') var ld = NVR.getLogin(); mid = monitor.Monitor.Id; // always use server tz to avoid confusion + var lastCheckTime = ld.lastEventCheckTimes[mid]; ld.lastEventCheckTimes[mid] = (new moment()).tz(NVR.getTimeZoneNow()).format('YYYY-MM-DD HH:mm:ss'); - NVR.debug ("Updating monitor:"+mid+" event check time (server tz) to " + ld.lastEventCheckTimes[mid] ); + NVR.debug ("Updating monitor:"+mid+" event check time (server tz) to " + lastCheckTime); NVR.setLogin(ld); + if (!monitor.Monitor.lastEvent) { + lastCheckTime = ""; + } monitor.Monitor.lastEvent = undefined; monitor.Monitor.showSidebar = false; if (!showEvents) return; $state.go("app.events", { "id": monitor.Monitor.Id, - "playEvent": false + "playEvent": false, + "lastCheckTime": lastCheckTime }); return; diff --git a/www/js/app.js b/www/js/app.js index f84673a5..8799784d 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -2388,7 +2388,7 @@ angular.module('zmApp', [ } }, cache: false, - url: "/events/:id/:playEvent", + url: "/events/:id/:playEvent/:lastCheckTime", templateUrl: "templates/events.html", controller: 'zmApp.EventCtrl', -- cgit v1.2.3 From a711b32fd585308284c96f05dc9772a9abca1e3a Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Sat, 29 Aug 2020 21:29:50 +1200 Subject: display gif if api supports --- www/js/NVR.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'www/js') diff --git a/www/js/NVR.js b/www/js/NVR.js index f1c369c3..a9b552e7 100644 --- a/www/js/NVR.js +++ b/www/js/NVR.js @@ -2674,7 +2674,10 @@ angular.module('zmApp.controllers') //console.log("API VERSION RETURNED: " + JSON.stringify(success)); $rootScope.apiValid = true; - if (versionCompare(success.data.version, '1.32.0') != -1) { + if (versionCompare(success.data.version, '1.34.0') != -1) { + debug("objdetect supported in image.php"); + snapshotFrame = 'objdetect'; + } else if (versionCompare(success.data.version, '1.32.0') != -1) { debug("snapshot supported in image.php"); snapshotFrame = 'snapshot'; } else { -- cgit v1.2.3 From 1139b026aedbc609189a5b3cb7ef446e1ceec09d Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Sat, 5 Sep 2020 11:41:25 +1200 Subject: select event view thumbnails type, replaces enableThumbs in dev options. Enables selection of different thumbnail types. If gif is selected limit the number of events returned to 5 to improve load time. --- www/js/DevOptionsCtrl.js | 29 +++++++++++++++++++++++++++++ www/js/EventCtrl.js | 17 +++++++++++------ www/js/NVR.js | 11 +++-------- 3 files changed, 43 insertions(+), 14 deletions(-) (limited to 'www/js') diff --git a/www/js/DevOptionsCtrl.js b/www/js/DevOptionsCtrl.js index 2ad40bfa..d735f967 100644 --- a/www/js/DevOptionsCtrl.js +++ b/www/js/DevOptionsCtrl.js @@ -181,6 +181,35 @@ angular.module('zmApp.controllers').controller('zmApp.DevOptionsCtrl', ['$scope' }); }; + $scope.selectEventViewThumbs = function() { + + var buttons = [ + { text: $translate.instant('kNone').toLowerCase(), value:'none' }, + { text: 'snapshot', value:'snapshot' }, + { text: 'objdetect', value:'objdetect' }, + { text: 'objdetect_jpg', value:'objdetect_jpg' }, + { text: 'objdetect_gif', value:'objdetect_gif' }, + + ]; + + $ionicActionSheet.show({ + titleText: $translate.instant('kSelect'), + buttons: buttons, + + cancelText: $translate.instant('kButtonCancel'), + cancel: function() { + NVR.debug ('obfuscation actionsheet cancelled'); + }, + buttonClicked: function(index) { + + $scope.loginData.eventViewThumbs = buttons[index].value; + NVR.debug ('changed event view thumbs to:'+$scope.loginData.eventViewThumbs ); + return true; + }, + + }); + }; + $scope.saveDevOptions = function () { saveDevOptions(); diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index 7f0aeb5d..359db3d5 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -458,6 +458,11 @@ angular.module('zmApp.controllers') NVR.debug("EventCtrl: grabbing events for: id=" + $scope.id + " Date/Time:" + $rootScope.fromString + "-" + $rootScope.toString); + if ($scope.loginData.eventViewThumbs != 'objdetect_gif') { + maxEventsToLoad = 50; //limit to 5 to minimise memory usage when displaying gifs + } + NVR.debug("maxEventsToLoad: " + maxEventsToLoad); + NVR.getEvents($scope.id, currEventsPage, "", nolangFrom, nolangTo, false, $rootScope.monitorsFilter) .then(function (data) { // console.log(JSON.stringify(data.pagination)); @@ -475,13 +480,12 @@ angular.module('zmApp.controllers') //$scope.events = data.events; // we only need to stop the template from loading when the list is empty // so this can be false once we have _some_ content - // FIXME: check reload $scope.eventsBeingLoaded = false; moreEvents = true; // to avoid only few events being displayed // if last page has less events //console.log("**Loading Next Page ***"); - if ($scope.events < 5) { + if ($scope.events < maxEventsToLoad) { //console.log ("EVENTS LOADED="+JSON.stringify($scope.events)); NVR.debug("EventCtrl:loading one more page just in case we don't have enough to display"); loadMore(); @@ -2861,6 +2865,7 @@ angular.module('zmApp.controllers') currentPageLength = myevents.length; var eventsLoaded = 0; var prevPagePosition = currentPagePosition; + NVR.debug("maxEventsToLoad: " + maxEventsToLoad); for (currentPagePosition; currentPagePosition < myevents.length && eventsLoaded < maxEventsToLoad; currentPagePosition++) { var idfound = true; if (loginData.persistMontageOrder) { @@ -3014,14 +3019,14 @@ angular.module('zmApp.controllers') var stream = ""; //console.log(event.Event.Notes); var snapshotFrame = NVR.getSnapshotFrame(); - if (NVR.getSnapshotFrame() == 'objdetect' && !event.Event.Notes.includes("detected:")) { - snapshotFrame = 'snapshot'; + if (($scope.loginData.eventViewThumbs.substring(0, 9) == 'objdetect') && event.Event.Notes.includes("detected:")) { + snapshotFrame = $scope.loginData.eventViewThumbs; } stream = event.Event.recordingURL + "/index.php?view=image&fid=" + snapshotFrame+"&eid="+event.Event.Id + - "&width=" + event.Event.thumbWidth + - "&height=" + event.Event.thumbHeight; + "&width=" + event.Event.thumbWidth * 2 + + "&height=" + event.Event.thumbHeight * 2; stream += $rootScope.authSession; stream += NVR.insertSpecialTokens(); diff --git a/www/js/NVR.js b/www/js/NVR.js index a9b552e7..5bdc23b9 100644 --- a/www/js/NVR.js +++ b/www/js/NVR.js @@ -188,7 +188,6 @@ angular.module('zmApp.controllers') 'timelineScale': -1, 'hideArchived': false, 'videoPlaybackSpeed': 2, - 'enableThumbs': true, 'enableStrictSSL': false, 'enableSlowLoading': false, 'isFullScreen': false, @@ -1562,10 +1561,9 @@ angular.module('zmApp.controllers') } + if (typeof loginData.eventViewThumbs == 'undefined') { - if (typeof loginData.enableThumbs == 'undefined') { - - loginData.enableThumbs = true; + loginData.eventViewThumbs = 'snapshot'; } @@ -2674,10 +2672,7 @@ angular.module('zmApp.controllers') //console.log("API VERSION RETURNED: " + JSON.stringify(success)); $rootScope.apiValid = true; - if (versionCompare(success.data.version, '1.34.0') != -1) { - debug("objdetect supported in image.php"); - snapshotFrame = 'objdetect'; - } else if (versionCompare(success.data.version, '1.32.0') != -1) { + if (versionCompare(success.data.version, '1.32.0') != -1) { debug("snapshot supported in image.php"); snapshotFrame = 'snapshot'; } else { -- cgit v1.2.3 From 49235f845d1b4cb01d64c5a650e4a0094562cf1d Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Sat, 5 Sep 2020 11:42:28 +1200 Subject: remove unnneded debugging code --- www/js/EventCtrl.js | 11 +---------- www/js/MontageCtrl.js | 27 ++------------------------- 2 files changed, 3 insertions(+), 35 deletions(-) (limited to 'www/js') diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index 359db3d5..d7dd4fc1 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -178,16 +178,7 @@ angular.module('zmApp.controllers') $scope.$on('$ionicView.beforeLeave', function () { - /*NVR.log("EventCtrl:beforeLeave Filter reset"); - $rootScope.isEventFilterOn = false; - $rootScope.fromDate = ""; - $rootScope.fromTime = ""; - $rootScope.toDate = ""; - $rootScope.toTime = ""; - $rootScope.fromString = ""; - $rootScope.toString = ""; - $rootScope.monitorsFilter = ''; -*/ + NVR.debug ("Cancelling page reload timer"); $interval.cancel(intervalReloadEvents); NVR.debug("EventCtrl: Deregistering resize listener"); diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index 3da303a5..c3500aee 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -592,7 +592,6 @@ angular.module('zmApp.controllers') // now is server TZ time var now = ld.lastEventCheckTimes[monitor.Monitor.Id]; - NVR.debug ("ld.lastEventCheckTimes[id]:" + ld.lastEventCheckTimes[monitor.Monitor.Id]); apiurl += "/StartTime >:" + now; } @@ -616,7 +615,7 @@ angular.module('zmApp.controllers') apiurl += '.json?sort=StartTime&direction=desc&limit=1'+$rootScope.authSession; - NVR.debug ("Getting event count for monitor.Monitor.Id: " + monitor.Monitor.Id); + NVR.debug ("Getting event count "); $http.get(apiurl) .then (function (data) { // console.log ("EVENTS GOT: "+JSON.stringify(data)); @@ -1707,7 +1706,7 @@ angular.module('zmApp.controllers') function onResume() { // we should be going to portal login so no need here - NVR.debug ("Montage resume called, regenerating all connkeys"); + //NVR.debug ("Montage resume called, regenerating all connkeys"); //NVR.regenConnKeys(); // $scope.MontageMonitors = NVR.getMonitorsNow(); @@ -2291,29 +2290,9 @@ angular.module('zmApp.controllers') var stream; var fps = NVR.getLogin().montageliveFPS; - if (!monitor.Monitor.streamingURL) { - NVR.debug("monitor.Monitor.streamingURL: " + monitor.Monitor.streamingURL ); - NVR.debug("monitor.Monitor.MonitorId: " + monitor.Monitor.MonitorId ); - /*for (var key in monitor.Monitor) { - console.log(key + ": " + monitor.Monitor[key]); - } - return; - NVR.log("Reloading view for montage view, recomputing rand"); - $rootScope.rand = Math.floor((Math.random() * 100000) + 1); - $scope.monitors = []; - //imageLoadingDataShare.set(0); - - var refresh = NVR.getMonitors(1); - - refresh.then(function (data) { - $scope.monitors = data; - }); - return;*/ - } if (currentStreamState == streamState.STOPPED || monitor.Monitor.listDisplay == 'noshow' ) { //console.log ("STREAM=empty and auth="+$rootScope.authSession); //sconsole.log ('EMPTY STREAM'); - NVR.log("currentStreamState: " + currentStreamState + ", monitor.Monitor.listDisplay: " + monitor.Monitor.listDisplay); return ""; } @@ -2321,7 +2300,6 @@ angular.module('zmApp.controllers') stream = monitor.Monitor.streamingURL + "/nph-zms?mode=single&scale=10&monitor="+ monitor.Monitor.Id + "&rand=" + randToAvoidCacheMem + monitor.Monitor.Id ; // console.log(stream); - NVR.log("currentStreamState: " + currentStreamState); } else { stream = monitor.Monitor.streamingURL + @@ -2350,7 +2328,6 @@ angular.module('zmApp.controllers') //console.log("STREAM=" + stream); - //NVR.log("STREAM=" + stream); return stream; }; -- cgit v1.2.3 From 956e88ec354019b9f7c68e0cd7f2fefd9921dfdc Mon Sep 17 00:00:00 2001 From: lucas_nz Date: Sat, 5 Sep 2020 11:42:53 +1200 Subject: indent for readability --- www/js/EventDateTimeFilterCtrl.js | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'www/js') diff --git a/www/js/EventDateTimeFilterCtrl.js b/www/js/EventDateTimeFilterCtrl.js index 689b800d..2de8dd15 100644 --- a/www/js/EventDateTimeFilterCtrl.js +++ b/www/js/EventDateTimeFilterCtrl.js @@ -103,41 +103,41 @@ angular.module('zmApp.controllers') $scope.saveFilters = function () { // only reset date/time if at least one of them is set. if ($rootScope.fromDate || $rootScope.toDate || $rootScope.fromTime || $rootScope.toTime) { - if (!$rootScope.fromDate) { - //console.log("RESET fromDate"); - $rootScope.fromDate = new Date(); - NVR.debug("DateTimeFilter: resetting from date"); - } + if (!$rootScope.fromDate) { + //console.log("RESET fromDate"); + $rootScope.fromDate = new Date(); + NVR.debug("DateTimeFilter: resetting from date"); + } - if (!$rootScope.toDate) { - // console.log("RESET toDate"); - $rootScope.toDate = new Date(); - NVR.debug("DateTimeFilter: resetting to date"); - } + if (!$rootScope.toDate) { + // console.log("RESET toDate"); + $rootScope.toDate = new Date(); + NVR.debug("DateTimeFilter: resetting to date"); + } - if (!$rootScope.fromTime) { - // console.log("RESET fromTime"); - $rootScope.fromTime = new Date(99, 5, 24, 0, 0, 0, 0); //moment().format("hh:mm:ss"); - NVR.debug("DateTimeFilter: resetting from time"); - } + if (!$rootScope.fromTime) { + // console.log("RESET fromTime"); + $rootScope.fromTime = new Date(99, 5, 24, 0, 0, 0, 0); //moment().format("hh:mm:ss"); + NVR.debug("DateTimeFilter: resetting from time"); + } - if (!$rootScope.toTime) { - //console.log("RESET toTime"); - $rootScope.toTime = new Date(99, 5, 24, 23, 59, 59, 0); - //$rootScope.toTime = "01:01:02"; //moment().format("hh:mm:ss"); - NVR.debug("DateTimeFilter: resetting to time"); - } + if (!$rootScope.toTime) { + //console.log("RESET toTime"); + $rootScope.toTime = new Date(99, 5, 24, 23, 59, 59, 0); + //$rootScope.toTime = "01:01:02"; //moment().format("hh:mm:ss"); + NVR.debug("DateTimeFilter: resetting to time"); + } - if ($rootScope.fromDate > $rootScope.toDate) { - NVR.log("From date > To Date, swapping"); - var t = $rootScope.fromDate; - $rootScope.fromDate = $rootScope.toDate; - $rootScope.toDate = t; - } - - $rootScope.fromString = moment($rootScope.fromDate).format("YYYY-MM-DD") + " " + moment($rootScope.fromTime).format("HH:mm:ss"); + if ($rootScope.fromDate > $rootScope.toDate) { + NVR.log("From date > To Date, swapping"); + var t = $rootScope.fromDate; + $rootScope.fromDate = $rootScope.toDate; + $rootScope.toDate = t; + } + + $rootScope.fromString = moment($rootScope.fromDate).format("YYYY-MM-DD") + " " + moment($rootScope.fromTime).format("HH:mm:ss"); - $rootScope.toString = moment($rootScope.toDate).format("YYYY-MM-DD") + " " + moment($rootScope.toTime).format("HH:mm:ss"); + $rootScope.toString = moment($rootScope.toDate).format("YYYY-MM-DD") + " " + moment($rootScope.toTime).format("HH:mm:ss"); } else { $rootScope.fromDate = null; -- cgit v1.2.3