summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/DataModel.js78
-rw-r--r--www/js/EventCtrl.js24
-rw-r--r--www/js/EventModalCtrl.js61
-rw-r--r--www/js/EventsModalGraphCtrl.js24
-rw-r--r--www/js/LoginCtrl.js4
-rw-r--r--www/js/MonitorModalCtrl.js2
-rw-r--r--www/js/MontageCtrl.js82
-rw-r--r--www/js/MontageHistoryCtrl.js24
-rw-r--r--www/js/TimelineModalCtrl.js24
-rw-r--r--www/js/app.js72
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
});