diff options
Diffstat (limited to 'www/js')
| -rw-r--r-- | www/js/DataModel.js | 16 | ||||
| -rw-r--r-- | www/js/DevOptionsCtrl.js | 5 | ||||
| -rw-r--r-- | www/js/MonitorModalCtrl.js | 64 | ||||
| -rw-r--r-- | www/js/app.js | 3 |
4 files changed, 85 insertions, 3 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 233e92df..43f350d6 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -103,7 +103,9 @@ angular.module('zmApp.controllers') 'forceImageModePath': false, 'disableNative': false, 'vibrateOnPush': true, - 'soundOnPush': true + 'soundOnPush': true, + 'cycleMonitors': false, + 'cycleMonitorsInterval':10, // 10sec @@ -673,6 +675,18 @@ angular.module('zmApp.controllers') loginData.soundOnPush = true; } + + if (typeof loginData.cycleMonitors == 'undefined') { + + loginData.cycleMonitors = false; + + } + + if (typeof loginData.cycleMonitorsInterval == 'undefined') { + + loginData.cycleMonitorsInterval = 10; + + } log("DataModel init recovered this loginData as " + JSON.stringify(loginData)); diff --git a/www/js/DevOptionsCtrl.js b/www/js/DevOptionsCtrl.js index a4b8d002..7ca09068 100644 --- a/www/js/DevOptionsCtrl.js +++ b/www/js/DevOptionsCtrl.js @@ -62,7 +62,10 @@ angular.module('zmApp.controllers').controller('zmApp.DevOptionsCtrl', ['$scope' NVRDataModel.debug("SaveDevOptions: called"); - + if (parseInt($scope.loginData.cycleMonitorsInterval) < zm.minCycleTime) + { + $scope.loginData.cycleMonitorsInterval = zm.minCycleTime.toString(); + } if ((parseInt($scope.loginData.maxFPS) < 0) || (parseInt($scope.loginData.maxFPS) > zm.maxFPS)) { $scope.loginData.maxFPS = zm.defaultFPS.toString(); } diff --git a/www/js/MonitorModalCtrl.js b/www/js/MonitorModalCtrl.js index e99ce25c..3278a862 100644 --- a/www/js/MonitorModalCtrl.js +++ b/www/js/MonitorModalCtrl.js @@ -15,6 +15,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ $scope.imageFit = true; $scope.isModalActive = true; var intervalModalHandle; + var cycleHandle; var nphTimer; var ld = NVRDataModel.getLogin(); @@ -54,6 +55,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ $interval.cancel(intervalModalHandle); + $interval.cancel(cycleHandle); intervalModalHandle = $interval(function () { loadModalNotifications(); @@ -247,6 +249,34 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ // console.log ("ERROR"); }); }; + + + $scope.toggleCycle = function() + { + //console.log ("HERE"); + $scope.isCycle = !$scope.isCycle; + var ld = NVRDataModel.getLogin(); + ld.cycleMonitors = $scope.isCycle; + NVRDataModel.setLogin(ld); + $scope.cycleText = $scope.isCycle ? $translate.instant ('kOn'):$translate.instant ('kOff'); + + if ($scope.isCycle) + { + NVRDataModel.log ("re-starting cycle timer"); + $interval.cancel(cycleHandle); + + cycleHandle = $interval(function () { + moveToMonitor($scope.monitorId,1); + // console.log ("Refreshing Image..."); + }.bind(this), ld.cycleMonitorsInterval * 1000); + } + else + { + NVRDataModel.log ("cancelling cycle timer"); + $interval.cancel(cycleHandle); + } + + }; //------------------------------------------------------------- // PTZ enable/disable @@ -282,6 +312,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ function onPause() { NVRDataModel.debug("ModalCtrl: onpause called"); $interval.cancel(intervalModalHandle); + $interval.cancel(cycleHandle); // $interval.cancel(modalIntervalHandle); // FIXME: Do I need to setAwake(false) here? @@ -294,12 +325,26 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ NVRDataModel.log("ModalCtrl: Restarting Modal timer on resume"); $interval.cancel(intervalModalHandle); + $interval.cancel(cycleHandle); var ld = NVRDataModel.getLogin(); intervalModalHandle = $interval(function () { loadModalNotifications(); }.bind(this), 5000); + + if (ld.cycleMonitors) + { + NVRDataModel.debug ("Cycling enabled at "+ld.cycleMonitorsInterval); + + $interval.cancel(cycleHandle); + + cycleHandle = $interval(function () { + moveToMonitor($scope.monitorId,1); + // console.log ("Refreshing Image..."); + }.bind(this), ld.cycleMonitorsInterval * 1000); + + } $rootScope.modalRand = Math.floor((Math.random() * 100000) + 1); @@ -858,6 +903,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ // console.log("**MODAL: Stopping modal timer"); $scope.isModalActive = false; $interval.cancel(intervalModalHandle); + $interval.cancel(cycleHandle); }); @@ -880,6 +926,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ $scope.isModalActive = false; $interval.cancel(intervalModalHandle); + $interval.cance(cycleHandle); }); @@ -887,6 +934,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ $scope.isModalActive = false; //console.log("**MODAL REMOVED: Stopping modal timer"); $interval.cancel(intervalModalHandle); + $interval.cancel(cycleHandle); NVRDataModel.debug("Modal removed - killing connkey"); controlStream(17, "", $scope.connKey, -1); @@ -1228,8 +1276,24 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ //console.log ("************* GENERATED CONNKEY " + $scope.connKey); $scope.currentFrame = 1; $scope.monStatus = ""; + $scope.isCycle = ld.cycleMonitors; + $scope.cycleText = $scope.isCycle ? $translate.instant ('kOn'):$translate.instant ('kOff'); configurePTZ($scope.monitorId); + + if (ld.cycleMonitors) + { + NVRDataModel.debug ("Cycling enabled at "+ld.cycleMonitorsInterval); + + $interval.cancel(cycleHandle); + + cycleHandle = $interval(function () { + moveToMonitor($scope.monitorId,1); + // console.log ("Refreshing Image..."); + }.bind(this), ld.cycleMonitorsInterval * 1000); + + } + }); diff --git a/www/js/app.js b/www/js/app.js index f9ea05e5..22057355 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -79,7 +79,8 @@ angular.module('zmApp', [ eventPlaybackQuery: 3000, packeryTimer: 500, dbName: 'zmninja', - cipherKey: 'sdf#@#%FSXSA_AR' + cipherKey: 'sdf#@#%FSXSA_AR', + minCycleTime: 5, }) |
