diff options
Diffstat (limited to 'www/js/EventServerSettingsCtrl.js')
| -rw-r--r-- | www/js/EventServerSettingsCtrl.js | 192 |
1 files changed, 101 insertions, 91 deletions
diff --git a/www/js/EventServerSettingsCtrl.js b/www/js/EventServerSettingsCtrl.js index 7bee989d..064c785f 100644 --- a/www/js/EventServerSettingsCtrl.js +++ b/www/js/EventServerSettingsCtrl.js @@ -2,46 +2,51 @@ /* jslint browser: true*/ /* global cordova,StatusBar,angular,console */ - angular.module('zmApp.controllers').controller('zmApp.EventServerSettingsCtrl', ['$scope', '$ionicSideMenuDelegate', 'zm', '$stateParams', 'EventServer', '$ionicHistory', '$rootScope', '$state', 'message', 'NVRDataModel', '$ionicPlatform', '$ionicPopup', '$timeout', '$translate', function ($scope, $ionicSideMenuDelegate, zm, $stateParams, EventServer, $ionicHistory, $rootScope, $state, message, NVRDataModel, $ionicPlatform, $ionicPopup, $timeout, $translate) { - $scope.openMenu = function () { + angular.module('zmApp.controllers').controller('zmApp.EventServerSettingsCtrl', ['$scope', '$ionicSideMenuDelegate', 'zm', '$stateParams', 'EventServer', '$ionicHistory', '$rootScope', '$state', 'message', 'NVRDataModel', '$ionicPlatform', '$ionicPopup', '$timeout', '$translate', function($scope, $ionicSideMenuDelegate, zm, $stateParams, EventServer, $ionicHistory, $rootScope, $state, message, NVRDataModel, $ionicPlatform, $ionicPopup, $timeout, $translate) + { + $scope.openMenu = function() + { $ionicSideMenuDelegate.toggleLeft(); }; - - $scope.openMenu = function () { + $scope.openMenu = function() + { $ionicSideMenuDelegate.toggleLeft(); }; - //---------------------------------------------------------------- // Alarm notification handling //---------------------------------------------------------------- - $scope.handleAlarms = function () { + $scope.handleAlarms = function() + { $rootScope.isAlarm = !$rootScope.isAlarm; - if (!$rootScope.isAlarm) { + if (!$rootScope.isAlarm) + { $rootScope.alarmCount = "0"; - $ionicHistory.nextViewOptions({ + $ionicHistory.nextViewOptions( + { disableBack: true }); - - $state.go("events", { + $state.go("events", + { "id": 0, - "playEvent":false - }, { + "playEvent": false + }, + { reload: true }); return; } }; - // we need this to dynamically get title // name as ion-view is set in stone and // we don't get title till beforeEnter // which is odd - I'd expect beforeEnter to load // before View is loaded - $scope.getTitle = function () { + $scope.getTitle = function() + { return $scope.loginData.serverName; }; @@ -49,38 +54,39 @@ // Save anyway when you exit //---------------------------------------------------------------- - $scope.$on('$ionicView.beforeLeave', function () { + $scope.$on('$ionicView.beforeLeave', function() + { saveItems(); - }); - - $scope.$on('$ionicView.beforeEnter', function () { + $scope.$on('$ionicView.beforeEnter', function() + { $scope.loginData = NVRDataModel.getLogin(); //console.log ("Event server - before Enter, loginData is " + JSON.stringify($scope.loginData)); $scope.defScreen = $scope.loginData.onTapScreen; - if ($scope.loginData.eventServer == "") { + if ($scope.loginData.eventServer == "") + { $scope.loginData.eventServer = "wss://" + extractDomain($scope.loginData.url) + ":9000"; } - - res = $scope.loginData.eventServerMonitors.split(","); minterval = $scope.loginData.eventServerInterval.split(","); + for (var i = 0; i < $scope.monitors.length; i++) + { - for (var i = 0; i < $scope.monitors.length; i++) { - - - if (!isEnabled($scope.monitors[i].Monitor.Id)) { + if (!isEnabled($scope.monitors[i].Monitor.Id)) + { // if the filter list has IDs and this is not part of it, uncheck it $scope.monitors[i].Monitor.isChecked = false; //console.log("Marking false"); $scope.monitors[i].Monitor.reportingInterval = 0; - } else { + } + else + { // console.log("Marking true"); $scope.monitors[i].Monitor.isChecked = true; $scope.monitors[i].Monitor.reportingInterval = getInterval($scope.monitors[i].Monitor.Id); @@ -89,14 +95,12 @@ } }); - //-------------------------------------------------- // notification tap action //-------------------------------------------------- - - - $scope.selectScreen = function () { + $scope.selectScreen = function() + { var ld = NVRDataModel.getLogin(); @@ -104,62 +108,62 @@ selectedState: ld.onTapScreen }; - var options = '<ion-radio-fix ng-model="myopt.selectedState" ng-value="\'' + $translate.instant('kTapEvents') + '\'">' + $translate.instant('kTapEvents') + '</ion-radio-fix>'; options += '<ion-radio-fix ng-model="myopt.selectedState" ng-value="\'' + $translate.instant('kTapMontage') + '\'">' + $translate.instant('kTapMontage') + '</ion-radio-fix>'; options += '<ion-radio-fix ng-model="myopt.selectedState" ng-value="\'' + $translate.instant('kTapLiveMonitor') + '\'">' + $translate.instant('kTapLiveMonitor') + '</ion-radio-fix>'; - - - $rootScope.zmPopup = $ionicPopup.show({ + $rootScope.zmPopup = $ionicPopup.show( + { scope: $scope, template: options, - title: 'View to navigate to:', subTitle: 'currently set to: ' + ld.onTapScreen, buttons: [ - { - text: $translate.instant('kButtonCancel'), - + { + text: $translate.instant('kButtonCancel'), - }, + }, + { + text: $translate.instant('kButtonOk'), + onTap: function(e) { - text: $translate.instant('kButtonOk'), - onTap: function (e) { - - ld.onTapScreen = $scope.myopt.selectedState; - NVRDataModel.log("Setting new onTap State:" + ld.onTapScreen); - NVRDataModel.setLogin(ld); - $scope.defScreen = $scope.myopt.selectedState; - $scope.loginData = ld; + ld.onTapScreen = $scope.myopt.selectedState; + NVRDataModel.log("Setting new onTap State:" + ld.onTapScreen); + NVRDataModel.setLogin(ld); + $scope.defScreen = $scope.myopt.selectedState; + $scope.loginData = ld; - } - } - ] + } + }] }); - }; //---------------------------------------------------------------- // Accordion list show/hide //---------------------------------------------------------------- - $scope.toggleGroup = function (group) { - if ($scope.isGroupShown(group)) { + $scope.toggleGroup = function(group) + { + if ($scope.isGroupShown(group)) + { $scope.shownGroup = null; - } else { + } + else + { $scope.shownGroup = group; } }; - $scope.isGroupShown = function (group) { + $scope.isGroupShown = function(group) + { return $scope.shownGroup === group; }; - $scope.saveItems = function () { + $scope.saveItems = function() + { saveItems(); }; @@ -167,16 +171,20 @@ // Saves ES data //---------------------------------------------------------------- - function saveItems() { + function saveItems() + { NVRDataModel.debug("Saving Event Server data"); var monstring = ""; var intervalstring = ""; var plat = $ionicPlatform.is('ios') ? 'ios' : 'android'; - for (var i = 0; i < $scope.monitors.length; i++) { - if (isNaN($scope.monitors[i].Monitor.reportingInterval)) { + for (var i = 0; i < $scope.monitors.length; i++) + { + if (isNaN($scope.monitors[i].Monitor.reportingInterval)) + { $scope.monitors[i].Monitor.reportingInterval = 0; } - if ($scope.monitors[i].Monitor.isChecked) { + if ($scope.monitors[i].Monitor.isChecked) + { monstring = monstring + $scope.monitors[i].Monitor.Id + ","; var tint = parseInt($scope.monitors[i].Monitor.reportingInterval); if (isNaN(tint)) tint = 0; @@ -194,7 +202,6 @@ $scope.loginData.eventServerMonitors = monstring; $scope.loginData.eventServerInterval = intervalstring; - //console.log ("SAVED: " + JSON.stringify($scope.loginData)); NVRDataModel.setLogin($scope.loginData); @@ -202,12 +209,15 @@ if ($scope.loginData.disablePush == true || $scope.loginData.isUseEventServer == false) pushstate = "disabled"; - if ($scope.loginData.isUseEventServer == true) { + if ($scope.loginData.isUseEventServer == true) + { EventServer.init() - .then(function (data) { + .then(function(data) + { // console.log("Sending control filter"); NVRDataModel.debug("Sending Control message 'filter' with monlist=" + monstring + " and interval=" + intervalstring); - EventServer.sendMessage("control", { + EventServer.sendMessage("control", + { type: 'filter', monlist: monstring, intlist: intervalstring @@ -220,7 +230,8 @@ { // we need to disable the token NVRDataModel.debug("Sending token state " + pushstate); - EventServer.sendMessage('push', { + EventServer.sendMessage('push', + { type: 'token', platform: plat, token: $rootScope.apnsToken, @@ -229,12 +240,11 @@ } - }); - - - } else { + } + else + { if ($rootScope.apnsToken != "") // if its defined then this is post init work // so lets transmit state here @@ -242,7 +252,8 @@ { // we need to disable the token NVRDataModel.debug("Sending token state " + pushstate); - EventServer.sendMessage('push', { + EventServer.sendMessage('push', + { type: 'token', platform: plat, token: $rootScope.apnsToken, @@ -254,11 +265,8 @@ EventServer.disconnect(); - } - - NVRDataModel.displayBanner('info', ['settings saved']); } @@ -266,12 +274,16 @@ // returns domain name in string - // http://stackoverflow.com/questions/8498592/extract-root-domain-name-from-string //---------------------------------------------------------------- - function extractDomain(url) { + function extractDomain(url) + { var domain; //find & remove protocol (http, ftp, etc.) and get domain - if (url.indexOf("://") > -1) { + if (url.indexOf("://") > -1) + { domain = url.split('/')[2]; - } else { + } + else + { domain = url.split('/')[0]; } @@ -281,18 +293,20 @@ return domain; } - //---------------------------------------------------------------- // returns reporting interval for monitor ID //---------------------------------------------------------------- - function getInterval(id) { + function getInterval(id) + { // means no interval, should only happen one time // till we save if ($scope.loginData.eventServerInterval == "") return 0; var retval = 0; - for (var i = 0; i < res.length; i++) { - if (res[i] == id) { + for (var i = 0; i < res.length; i++) + { + if (res[i] == id) + { retval = parseInt(minterval[i]); break; } @@ -303,13 +317,16 @@ //---------------------------------------------------------------- // Returns true/false if monitor ID is in event monitor list //---------------------------------------------------------------- - function isEnabled(id) { + function isEnabled(id) + { if ($scope.loginData.eventServerMonitors == "") return true; var isThere = false; - for (var i = 0; i < res.length; i++) { - if (res[i] == id) { + for (var i = 0; i < res.length; i++) + { + if (res[i] == id) + { isThere = true; //console.log("isRes found: " + id); break; @@ -325,11 +342,4 @@ $scope.monitors = message; var res, minterval; - - - - - - - -}]);
\ No newline at end of file + }]); |
