diff options
Diffstat (limited to 'www/js')
| -rw-r--r-- | www/js/DataModel.js | 78 | ||||
| -rw-r--r-- | www/js/EventCtrl.js | 24 | ||||
| -rw-r--r-- | www/js/EventModalCtrl.js | 61 | ||||
| -rw-r--r-- | www/js/EventsModalGraphCtrl.js | 24 | ||||
| -rw-r--r-- | www/js/LoginCtrl.js | 4 | ||||
| -rw-r--r-- | www/js/MonitorModalCtrl.js | 2 | ||||
| -rw-r--r-- | www/js/MontageCtrl.js | 82 | ||||
| -rw-r--r-- | www/js/MontageHistoryCtrl.js | 24 | ||||
| -rw-r--r-- | www/js/TimelineModalCtrl.js | 24 | ||||
| -rw-r--r-- | www/js/app.js | 72 |
10 files changed, 287 insertions, 108 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 11451916..dcd6b768 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -2,7 +2,7 @@ /* jslint browser: true*/ -/* global cordova,StatusBar,angular,console, URI, moment, localforage, CryptoJS */ +/* global cordova,StatusBar,angular,console, URI, moment, localforage, CryptoJS, Connection */ // This is my central data respository and common functions // that many other controllers use @@ -39,7 +39,15 @@ angular.module('zmApp.controllers') { text: 'Portugese', value: 'pt' - } + }, + /*{ + text: 'Arabic', + value: 'ar' + }, + { + text: 'Hindi', + value: 'hi' + }*/ ]; var serverGroupList = {}; @@ -109,6 +117,8 @@ angular.module('zmApp.controllers') 'cycleMonitors': false, 'cycleMonitorsInterval':10, // 10sec 'enableLowBandwidth':false, + 'autoSwitchBandwidth':false, + 'disableAlarmCheckMontage': false, @@ -144,6 +154,37 @@ angular.module('zmApp.controllers') return true; } + function getBandwidth() + { + // if mode is not on always return high + if (loginData.enableLowBandwidth == false) + { + return "highbw"; + } + // if mode is force on, return low + if (loginData.enableLowBandwidth == true && loginData.autoSwitchBandwidth != true) + { + return "lowbw"; + } + if (loginData.enableLowBandwidth == true && loginData.autoSwitchBandwidth == true && $rootScope.platformOS == 'desktop') + { + return "highbw"; + } + // else return real state + + var networkState = navigator.connection.type; + var strState; + switch (networkState) + { + + case Connection.WIFI: strState="highbw"; break; + case Connection.ETHERNET: strState="highbw"; break; + default: strState = "lowbw"; break; + + } + return strState; + } + //-------------------------------------------------------------------------- // uses fileLogger to write logs to file for later investigation //-------------------------------------------------------------------------- @@ -691,12 +732,31 @@ angular.module('zmApp.controllers') } + if (typeof loginData.enableLowBandwidth == 'undefined') { + loginData.enableLowBandwidth = false; } - $rootScope.runMode = loginData.enableLowBandwith? "low": "normal"; + // wtf is wrong with this ternary? + //$rootScope.runMode = (loginData.enableLowBandwith==true)? "low": "normal"; + + + + + if (typeof loginData.autoSwitchBandwidth == 'undefined') { + + + loginData.autoSwitchBandwidth = false; + + } + + $rootScope.runMode = getBandwidth(); + log("Setting DataModel init bandwidth to: " +$rootScope.runMode); + + + if (typeof loginData.refreshSecLowBW == 'undefined') { @@ -704,6 +764,12 @@ angular.module('zmApp.controllers') } + if (typeof loginData.disableAlarmCheckMontage == 'undefined') { + + loginData.disableAlarmCheckMontage = false; + + } + @@ -1079,6 +1145,12 @@ angular.module('zmApp.controllers') }, + //-------------------------------------------------------------------------- + // returns high or low BW mode + //-------------------------------------------------------------------------- + getBandwidth: function () { + return getBandwidth(); + }, //-------------------------------------------------------------------------- // This is really a hack for now & is very ugly. I need to clean this up a lot diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index d7ebdfa9..b802ff0e 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -1372,12 +1372,12 @@ angular.module('zmApp.controllers') var relativePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); relativePath = event.Event.MonitorId + "/" + yy + "/" + mm + "/" + @@ -1397,12 +1397,12 @@ angular.module('zmApp.controllers') var basePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); basePath = event.Event.baseURL + "/events/" + event.Event.MonitorId + "/" + diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js index 8a2c3c4c..373d415b 100644 --- a/www/js/EventModalCtrl.js +++ b/www/js/EventModalCtrl.js @@ -101,6 +101,30 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro //$rootScope.authSession=""; NVRDataModel.log("Modal: Error returned Stream authentication construction. Retaining old value of: " + $rootScope.authSession); }); + + + + //-------------------------------------------------------------------------------------- + // Handles bandwidth change, if required + // + //-------------------------------------------------------------------------------------- + + $rootScope.$on("bandwidth-change", function (e,data) { + // not called for offline, I'm only interested in BW switches + NVRDataModel.debug("Got network change:" + data); + var ds; + if (data == 'lowbw') { + ds = "low bandwidth mode"; + } else { + ds = "high bandwidth mode"; + } + NVRDataModel.displayBanner('net', [ds]); + + var ld = NVRDataModel.getLogin(); + + $scope.singleImageQuality = (NVRDataModel.getBandwidth()=="lowbw" )? zm.eventSingleImageQualityLowBW: ld.singleImageQuality; + }); + @@ -148,6 +172,14 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro //------------------------------------------------------ function checkEvent() { + + if ($scope.modalFromTimelineIsOpen == false) + { + NVRDataModel.log ("Modal was closed in timeline, cancelling timer"); + $interval.cancel(eventQueryHandle); + return; + } + //console.log ("Event timer"); //console.log ("Event timer"); $scope.checkEventOn = true; @@ -740,7 +772,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro var ld = NVRDataModel.getLogin(); $scope.loginData = NVRDataModel.getLogin(); - $scope.singleImageQuality = ld.enableLowBandwidth? 70: ld.singleImageQuality; + $scope.singleImageQuality = (NVRDataModel.getBandwidth()=="lowbw" )? zm.eventSingleImageQualityLowBW: ld.singleImageQuality; $scope.blockSlider = false; $scope.checkEventOn = false; //$scope.singleImageQuality = 100; @@ -776,7 +808,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro eventQueryHandle = $interval(function () { checkEvent(); // console.log ("Refreshing Image..."); - }.bind(this), ld.enableLowBandwidth? zm.eventPlaybackQueryLowBW: zm.eventPlaybackQuery); + }.bind(this), (NVRDataModel.getBandwidth()=="lowbw")? zm.eventPlaybackQueryLowBW: zm.eventPlaybackQuery); } else { NVRDataModel.log(">>>Modal was exited, not starting checkAllEvents"); } @@ -854,6 +886,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro $scope.$on('modal.removed', function (e, m) { + console.log ("************* REMOVE CALLED"); $interval.cancel(eventQueryHandle); if (m.id != 'footage') return; @@ -1235,12 +1268,12 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro var relativePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); relativePath = event.Event.MonitorId + "/" + yy + "/" + mm + "/" + @@ -1260,12 +1293,12 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro var basePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); basePath = loginData.url + "/events/" + event.Event.MonitorId + "/" + diff --git a/www/js/EventsModalGraphCtrl.js b/www/js/EventsModalGraphCtrl.js index fb349df0..0874e4f7 100644 --- a/www/js/EventsModalGraphCtrl.js +++ b/www/js/EventsModalGraphCtrl.js @@ -334,12 +334,12 @@ angular.module('zmApp.controllers').controller('EventsModalGraphCtrl', ['$scope' var relativePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); relativePath = event.Event.MonitorId + "/" + yy + "/" + mm + "/" + @@ -359,12 +359,12 @@ angular.module('zmApp.controllers').controller('EventsModalGraphCtrl', ['$scope' var basePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); basePath = loginData.url + "/events/" + event.Event.MonitorId + "/" + diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js index 457ebe79..28f16670 100644 --- a/www/js/LoginCtrl.js +++ b/www/js/LoginCtrl.js @@ -424,7 +424,7 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r NVRDataModel.setFirstUse(false); // used for menu display - $rootScope.runMode = $scope.loginData.enableLowBandwidth ? "low":"normal"; + // lets so some basic sanitization of the data // I am already adding "/" so lets remove spurious ones @@ -529,6 +529,8 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r } NVRDataModel.setLogin($scope.loginData); + $rootScope.runMode = NVRDataModel.getBandwidth(); + oldName = $scope.loginData.serverName; if ($scope.check.isUseEventServer) { diff --git a/www/js/MonitorModalCtrl.js b/www/js/MonitorModalCtrl.js index 84553d6e..5268b19d 100644 --- a/www/js/MonitorModalCtrl.js +++ b/www/js/MonitorModalCtrl.js @@ -1259,7 +1259,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$ $scope.isCycle = ld.cycleMonitors; $scope.cycleText = $scope.isCycle ? $translate.instant('kOn') : $translate.instant('kOff'); - $scope.quality = ld.enableLowBandwidth? 70:ld.monSingleImageQuality; + $scope.quality = (NVRDataModel.getBandwidth()=="lowbw")? zm.monSingleImageQualityLowBW:ld.monSingleImageQuality; configurePTZ($scope.monitorId); diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index 5cc06739..bff471d3 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -4,7 +4,8 @@ /* global cordova,StatusBar,angular,console,ionic,Packery, Draggabilly, imagesLoaded, ConnectSDK */ -angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '$rootScope', 'NVRDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$localstorage', '$translate', function ($scope, $rootScope, NVRDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $localstorage, $translate) { +angular.module('zmApp.controllers') + .controller('zmApp.MontageCtrl', ['$scope', '$rootScope', 'NVRDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$localstorage', '$translate', function ($scope, $rootScope, NVRDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $localstorage, $translate) { //--------------------------------------------------------------------- // Controller main @@ -24,6 +25,41 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', ' var ld; var refreshSec; + + //-------------------------------------------------------------------------------------- + // Handles bandwidth change, if required + // + //-------------------------------------------------------------------------------------- + + $rootScope.$on("bandwidth-change", function (e,data) { + // not called for offline, I'm only interested in BW switches + NVRDataModel.debug("Got network change:" + data); + var ds; + if (data == 'lowbw') { + ds = "low bandwidth mode"; + } else { + ds = "high bandwidth mode"; + } + NVRDataModel.displayBanner('net', [ds]); + var ld = NVRDataModel.getLogin(); + refreshSec = (NVRDataModel.getBandwidth()=='lowbw') ? ld.refreshSecLowBW : ld.refreshSec; + $interval.cancel(intervalHandleMontage); + intervalHandleMontage = $interval(function () { + loadNotifications(); + }.bind(this), refreshSec * 1000); + + + if (NVRDataModel.getBandwidth() == 'lowbw') + { + NVRDataModel.debug("Enabling low bandwidth parameters"); + $scope.LoginData.montageQuality = zm.montageQualityLowBW; + $scope.LoginData.singleImageQuality = zm.eventSingleImageQualityLowBW; + $scope.LoginData.montageHistoryQuality = zm.montageQualityLowBW; + + } + }); + + // -------------------------------------------------------- // Handling of back button in case modal is open should // close the modal @@ -257,15 +293,15 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', ' function loadAlarmStatus() { - if (NVRDataModel.versionCompare($rootScope.apiVersion, "1.30") == -1) { + if ((NVRDataModel.versionCompare($rootScope.apiVersion, "1.30") == -1) || + (NVRDataModel.getBandwidth() == 'lowbw') || + (NVRDataModel.getLogin().disableAlarmCheckMontage == true)) + { return; } + - if (NVRDataModel.getLogin().enableLowBandwidth) - { - return; - } for (var i = 0; i < $scope.MontageMonitors.length; i++) { if (($scope.MontageMonitors[i].Monitor.Function == 'None') || @@ -794,7 +830,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', ' $scope.toggleSizeButtons = function () { $scope.showSizeButtons = !$scope.showSizeButtons; - + NVRDataModel.debug("toggling size buttons:" + $scope.showSizeButtons); if ($scope.showSizeButtons) $ionicScrollDelegate.$getByHandle("montage-delegate").scrollTop(); }; @@ -818,18 +854,18 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', ' $scope.allImagesLoaded = false; $scope.gridScale = "grid-item-50"; $scope.LoginData = NVRDataModel.getLogin(); + //FIXME - if ($scope.LoginData.enableLowBandwidth) - { - NVRDataModel.debug ("Enabling low bandwidth parameters"); - $scope.LoginData.montageQuality = 50; - $scope.LoginData.singleImageQuality = 70; - $scope.LoginData.montageHistoryQuality = 50; - - + if (NVRDataModel.getBandwidth() == 'lowbw') { + NVRDataModel.debug("Enabling low bandwidth parameters"); + $scope.LoginData.montageQuality = zm.montageQualityLowBW; + $scope.LoginData.singleImageQuality = zm.eventSingleImageQualityLowBW; + $scope.LoginData.montageHistoryQuality = zm.montageQualityLowBW; + + } - - + + $scope.monLimit = $scope.LoginData.maxMontage; $scope.showSizeButtons = false; @@ -851,11 +887,11 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', ' //$scope.areImagesLoading = true; var ld = NVRDataModel.getLogin(); - - refreshSec = ld.enableLowBandwidth ? ld.refreshSecLowBW: ld.refreshSec; - - NVRDataModel.debug ("Enable Low bandwidth: " + ld.enableLowBandwidth+ " montage refresh set to: " + refreshSec); - + + refreshSec = (NVRDataModel.getBandwidth()=='lowbw') ? ld.refreshSecLowBW : ld.refreshSec; + + NVRDataModel.debug("bandwidth: " + NVRDataModel.getBandwidth() + " montage refresh set to: " + refreshSec); + //console.log("Setting Awake to " + NVRDataModel.getKeepAwake()); NVRDataModel.setAwake(NVRDataModel.getKeepAwake()); @@ -1141,4 +1177,4 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', ' }; -}]);
\ No newline at end of file +}]); diff --git a/www/js/MontageHistoryCtrl.js b/www/js/MontageHistoryCtrl.js index 8b049143..1fb1f09c 100644 --- a/www/js/MontageHistoryCtrl.js +++ b/www/js/MontageHistoryCtrl.js @@ -8,6 +8,19 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$scope', '$rootScope', 'NVRDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$translate', function ($scope, $rootScope, NVRDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $translate) { + + + //-------------------------------------------------------------------------------------- + // Handles bandwidth change, if required + // + //-------------------------------------------------------------------------------------- + + $rootScope.$on("bandwidth-change", function (e,data) { + // nothing to do for now + // eventUrl will use lower BW in next query cycle + }); + + //-------------------------------------- // formats events dates in a nice way @@ -146,7 +159,9 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc // console.log ("Old value of event url " + $scope.MontageMonitors[j].eventUrl); //console.log ("ldurl is " + ld.streamingurl); - $scope.MontageMonitors[j].Monitor.eventUrl = ld.streamingurl + "/nph-zms?source=event&mode=jpeg&event=" + eid + "&frame=1&replay=gapless&rate=" + $scope.sliderVal.realRate + "&connkey=" + $scope.MontageMonitors[j].Monitor.connKey + "&scale=" + ld.montageHistoryQuality + "&rand=" + $rootScope.rand; + + var bw = NVRDataModel.getBandwidth()=="lowbw"? zm.eventMontageQualityLowBW: ld.montageHistoryQuality ; + $scope.MontageMonitors[j].Monitor.eventUrl = ld.streamingurl + "/nph-zms?source=event&mode=jpeg&event=" + eid + "&frame=1&replay=gapless&rate=" + $scope.sliderVal.realRate + "&connkey=" + $scope.MontageMonitors[j].Monitor.connKey + "&scale=" + bw+ "&rand=" + $rootScope.rand; //console.log ("Setting event URL to " +$scope.MontageMonitors[j].Monitor.eventUrl); // console.log ("SWITCHING TO " + $scope.MontageMonitors[j].eventUrl); @@ -195,7 +210,9 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc if (!NVRDataModel.isBackground()) { - $scope.MontageMonitors[i].Monitor.eventUrl = ld.streamingurl + "/nph-zms?source=event&mode=jpeg&event=" + data.events[0].Event.Id + "&frame=1&replay=gapless&rate=" + $scope.sliderVal.realRate + "&connkey=" + $scope.MontageMonitors[i].Monitor.connKey + "&scale=" + ld.montageHistoryQuality + "&rand=" + $rootScope.rand; + var bw = NVRDataModel.getBandwidth()=="lowbw"? zm.eventMontageQualityLowBW: ld.montageHistoryQuality ; + + $scope.MontageMonitors[i].Monitor.eventUrl = ld.streamingurl + "/nph-zms?source=event&mode=jpeg&event=" + data.events[0].Event.Id + "&frame=1&replay=gapless&rate=" + $scope.sliderVal.realRate + "&connkey=" + $scope.MontageMonitors[i].Monitor.connKey + "&scale=" + bw + "&rand=" + $rootScope.rand; @@ -409,7 +426,8 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc element.addClass('animated flipInX'); $scope.MontageMonitors[ndx].Monitor.eventUrlTime = data.event.Event.StartTime; - $scope.MontageMonitors[ndx].Monitor.eventUrl = ld.streamingurl + "/nph-zms?source=event&mode=jpeg&event=" + data.event.Event.Id + "&frame=1&replay=gapless&rate=" + $scope.sliderVal.realRate + "&connkey=" + $scope.MontageMonitors[ndx].Monitor.connKey + "&scale=" + ld.montageHistoryQuality + "&rand=" + $rootScope.rand; + var bw = NVRDataModel.getBandwidth()=="lowbw"? zm.eventMontageQualityLowBW: ld.montageHistoryQuality ; + $scope.MontageMonitors[ndx].Monitor.eventUrl = ld.streamingurl + "/nph-zms?source=event&mode=jpeg&event=" + data.event.Event.Id + "&frame=1&replay=gapless&rate=" + $scope.sliderVal.realRate + "&connkey=" + $scope.MontageMonitors[ndx].Monitor.connKey + "&scale=" + bw + "&rand=" + $rootScope.rand; }, 700); } else if (currentEventTime.diff(maxTime) > 0) { diff --git a/www/js/TimelineModalCtrl.js b/www/js/TimelineModalCtrl.js index 87f26126..10aa2ce3 100644 --- a/www/js/TimelineModalCtrl.js +++ b/www/js/TimelineModalCtrl.js @@ -398,12 +398,12 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', ' var relativePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); relativePath = event.Event.MonitorId + "/" + yy + "/" + mm + "/" + @@ -423,12 +423,12 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', ' var basePath = ""; var loginData = NVRDataModel.getLogin(); var str = event.Event.StartTime; - var yy = moment(str).format('YY'); - var mm = moment(str).format('MM'); - var dd = moment(str).format('DD'); - var hh = moment(str).format('HH'); - var min = moment(str).format('mm'); - var sec = moment(str).format('ss'); + var yy = moment(str).locale('en').format('YY'); + var mm = moment(str).locale('en').format('MM'); + var dd = moment(str).locale('en').format('DD'); + var hh = moment(str).locale('en').format('HH'); + var min = moment(str).locale('en').format('mm'); + var sec = moment(str).locale('en').format('ss'); basePath = loginData.url + "/events/" + event.Event.MonitorId + "/" + diff --git a/www/js/app.js b/www/js/app.js index 367fc0af..eb254aa8 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -1,7 +1,13 @@ /* jshint -W041 */ /* jslint browser: true*/ -/* global cordova,StatusBar,angular,console,alert,PushNotification, moment ,ionic, URI,Packery, ConnectSDK, CryptoJS, localforage,$*/ +/* global cordova,StatusBar,angular,console,alert,PushNotification, moment ,ionic, URI,Packery, ConnectSDK, CryptoJS, ContactFindOptions, localforage,$, Connection*/ +// For desktop versions, this is replaced +// with actual app version from config.xml by the +// ./make_desktop.sh script + +// For mobile versions, I use cordova app version plugin +// to get it at run time var appVersion = "0.0.0"; @@ -46,7 +52,7 @@ angular.module('zmApp', [ authoremail: 'pliablepixels+zmNinja@gmail.com', logFileMaxSize: 20000, // after this limit log gets reset loginInterval: 300000, //5m*60s*1000 - ZM auto login after 5 mins - loginIntervalLowBW: 600000, //10m login + //loginInterval: 30000, updateCheckInterval: 86400000, // 24 hrs loadingTimeout: 15000, @@ -78,11 +84,18 @@ angular.module('zmApp', [ nphSwitchTimer: 3000, eventHistoryTimer: 10000, eventPlaybackQuery: 3000, - eventPlaybackQueryLowBW: 6000, + packeryTimer: 500, dbName: 'zmninja', cipherKey: 'sdf#@#%FSXSA_AR', minCycleTime: 5, + + eventPlaybackQueryLowBW: 6000, + loginIntervalLowBW: 600000, //10m login + eventSingleImageQualityLowBW:70, + monSingleImageQualityLowBW:70, + montageQualityLowBW:50, + eventMontageQualityLowBW:50 }) @@ -109,18 +122,6 @@ angular.module('zmApp', [ }) -// https://forum.ionicframework.com/t/ng-src-not-updated-in-video-tag/7540/6 -.directive('dynamicUrl', function () { - return { - restrict: 'A', - link: function postLink(scope, element, attr) { - element.attr('src', attr.dynamicUrlSrc); - } - }; -}) - - - // credit https://gist.github.com/Zren/beaafd64f395e23f4604 @@ -577,8 +578,8 @@ angular.module('zmApp', [ $rootScope.newBlogPost = "(new post)"; return; + } - var mLastDate = moment(lastDate); var mItemDate = moment(data[0].date); @@ -968,11 +969,35 @@ angular.module('zmApp', [ $rootScope.$apply(function () { $rootScope.online = false; NVRDataModel.log("Your network went offline"); + + //$rootScope.$emit('network-change', "offline"); + }); }, false); + $window.addEventListener("online", function () { $rootScope.$apply(function () { $rootScope.online = true; + + $timeout ( function () { + var networkState = navigator.connection.type; + NVRDataModel.debug ("Detected network type as: "+ networkState); + var strState = NVRDataModel.getBandwidth(); + NVRDataModel.debug ("getBandwidth() normalized it as: " + strState); + $rootScope.runMode = strState; + if ((NVRDataModel.getLogin().autoSwitchBandwidth == true) && + (NVRDataModel.getLogin().enableLowBandwidth == true)) + { + NVRDataModel.debug ("Setting app state to: "+ strState); + $rootScope.$emit('bandwidth-change', strState); + } + else + { + NVRDataModel.debug ("Not changing bandwidth state, as auto change is not on"); + } + + },1000); // need a time gap, seems network type registers late + NVRDataModel.log("Your network is online, re-authenticating"); zmAutoLogin.doLogin($translate.instant('kReAuthenticating')); @@ -1077,11 +1102,8 @@ angular.module('zmApp', [ - - - $rootScope.db = null; - $rootScope.runMode = "normal"; + $rootScope.runMode = NVRDataModel.getBandwidth(); $rootScope.platformOS = "desktop"; NVRDataModel.log("Device is ready"); @@ -1424,12 +1446,6 @@ angular.module('zmApp', [ } - - - - - - }); //platformReady }) //run @@ -1485,7 +1501,7 @@ angular.module('zmApp', [ //$translateProvider.useLocalStorage(); - $translateProvider.registerAvailableLanguageKeys(['en', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'zh', 'zh_CN', 'zh_TW', 'pt'], { + $translateProvider.registerAvailableLanguageKeys(['en', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'zh', 'zh_CN', 'zh_TW', 'pt', 'ar','hi'], { 'en_*': 'en', 'de_*': 'de', 'es_*': 'es', @@ -1494,6 +1510,8 @@ angular.module('zmApp', [ 'ja_*': 'ja', 'ko_*': 'ko', 'pt_*': 'pt', + 'ar_*': 'ar', + 'hi_*': 'hi', '*': 'en' // must be last }); |
