summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2018-04-14 15:12:20 -0400
committerPliable Pixels <pliablepixels@gmail.com>2018-04-14 15:12:20 -0400
commit7e6d5602ad08bc7f0054de92ca82768208c48d6b (patch)
tree343d1b35dc3fdaa51742ae2203fc82398dc5fe4d
parent4daf69b94336ee8a89679f285d9e925cbaa43935 (diff)
#611 #606 - many re-auth leaks
-rwxr-xr-xwww/js/DataModel.js6
-rw-r--r--www/js/EventCtrl.js8
-rw-r--r--www/js/EventModalCtrl.js8
-rw-r--r--www/js/EventServer.js4
-rw-r--r--www/js/EventsModalGraphCtrl.js4
-rw-r--r--www/js/LoginCtrl.js2
-rw-r--r--www/js/MenuController.js2
-rw-r--r--www/js/MonitorModalCtrl.js92
-rw-r--r--www/js/MontageCtrl.js78
-rw-r--r--www/js/MontageHistoryCtrl.js4
-rw-r--r--www/js/PortalLoginCtrl.js4
-rw-r--r--www/js/TimelineCtrl.js4
-rwxr-xr-xwww/js/app.js27
-rw-r--r--www/templates/monitors-modal.html8
-rw-r--r--www/templates/montage.html2
15 files changed, 138 insertions, 115 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index 7f297f5f..f18b38ed 100755
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -1121,7 +1121,7 @@ angular.module('zmApp.controllers')
// FIXME: HACK: This is the latest entry point into dataModel init, so start portal login after this
// not the neatest way
- $rootScope.$emit('init-complete');
+ $rootScope.$broadcast('init-complete');
});
monitorsLoaded = 0;
@@ -1392,7 +1392,7 @@ angular.module('zmApp.controllers')
// Skipping monitor number as I only need an auth key
// so no need to generate an image
- var myurl = loginData.url + "/index.php?view=watch&mid=" + mid + "&connkey=" + ck;
+ var myurl = loginData.url + "/index.php?view=watch&mid=" + mid
debug("DataModel: Getting auth from " + myurl + " with mid=" + mid);
$http.get(myurl)
.then(function (success) {
@@ -2015,7 +2015,7 @@ angular.module('zmApp.controllers')
isTzSupported = true;
else
isTzSupported = false;
- $rootScope.$emit('tz-updated');
+ $rootScope.$broadcast('tz-updated');
return (d.promise);
},
diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js
index fb2916aa..423de0d2 100644
--- a/www/js/EventCtrl.js
+++ b/www/js/EventCtrl.js
@@ -77,14 +77,14 @@ angular.module('zmApp.controllers')
//---------------------------------------------------
//we come here is TZ is updated after the view loads
- var tzu = $rootScope.$on('tz-updated', function()
+ var tzu = $scope.$on('tz-updated', function()
{
$scope.tzAbbr = NVRDataModel.getTimeZoneNow();
NVRDataModel.debug("Timezone API updated timezone to " + NVRDataModel.getTimeZoneNow());
});
broadcastHandles.push(tzu);
- var lc = $rootScope.$on("language-changed", function()
+ var lc = $scope.$on("language-changed", function()
{
NVRDataModel.log(">>>>>>>>>>>>>>> language changed");
doRefresh();
@@ -160,7 +160,7 @@ angular.module('zmApp.controllers')
NVRDataModel.debug ("EventCtrl: Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
}
broadcastHandles = [];
});
@@ -2154,7 +2154,7 @@ angular.module('zmApp.controllers')
if ($scope.popover) $scope.popover.remove();
NVRDataModel.debug ("EventCtrl Pause:Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
}
broadcastHandles = [];
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js
index 7301c913..4f9a12ce 100644
--- a/www/js/EventModalCtrl.js
+++ b/www/js/EventModalCtrl.js
@@ -108,7 +108,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
//
//--------------------------------------------------------------------------------------
- var bc = $rootScope.$on("bandwidth-change", function(e, data)
+ var bc = $scope.$on("bandwidth-change", function(e, data)
{
// not called for offline, I'm only interested in BW switches
NVRDataModel.debug("Got network change:" + data);
@@ -133,7 +133,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
// we use this to reload the connkey if authkey changed
//------------------------------------------------------
- var as = $rootScope.$on("auth-success", function()
+ var as = $scope.$on("auth-success", function()
{
NVRDataModel.debug("EventModalCtrl: Re-login detected, resetting everything & re-generating connkey");
@@ -442,7 +442,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
{
NVRDataModel.debug ("EventModal Pause: Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
}
broadcastHandles = [];
@@ -1093,7 +1093,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
{
NVRDataModel.debug ("Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
}
broadcastHandles = [];
diff --git a/www/js/EventServer.js b/www/js/EventServer.js
index ee606a63..2d5831e9 100644
--- a/www/js/EventServer.js
+++ b/www/js/EventServer.js
@@ -292,7 +292,7 @@ angular.module('zmApp.controllers')
{
//emit alarm details - this is when received over websockets
- $rootScope.$emit('alarm',
+ $rootScope.$broadcast('alarm',
{
message: listOfMonitors
});
@@ -658,7 +658,7 @@ angular.module('zmApp.controllers')
$rootScope.tappedEid = 0;
$rootScope.tappedMid = 0;
}
- $rootScope.$emit('process-push');
+ $rootScope.$broadcast('process-push');
}
else // app is foreground
diff --git a/www/js/EventsModalGraphCtrl.js b/www/js/EventsModalGraphCtrl.js
index 65e42b12..3db8b31e 100644
--- a/www/js/EventsModalGraphCtrl.js
+++ b/www/js/EventsModalGraphCtrl.js
@@ -27,7 +27,7 @@ angular.module('zmApp.controllers').controller('EventsModalGraphCtrl', ['$scope'
{
NVRDataModel.debug ("Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
}
broadcastHandles = [];
});
@@ -115,7 +115,7 @@ angular.module('zmApp.controllers').controller('EventsModalGraphCtrl', ['$scope'
// we use this to reload the connkey if authkey changed
//------------------------------------------------------
- var as = $rootScope.$on("auth-success", function()
+ var as = $scope.$on("auth-success", function()
{
NVRDataModel.debug("EventModalCtrl: Re-login detected, resetting everything & re-generating connkey");
diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js
index d8b89d3b..56d6d4a7 100644
--- a/www/js/LoginCtrl.js
+++ b/www/js/LoginCtrl.js
@@ -358,7 +358,7 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r
}
});*/
- $rootScope.$on('$stateChangeSuccess', function () {
+ $scope.$on('$stateChangeSuccess', function () {
$scope.ignoreDirty = false;
});
diff --git a/www/js/MenuController.js b/www/js/MenuController.js
index 071db4df..c7e96604 100644
--- a/www/js/MenuController.js
+++ b/www/js/MenuController.js
@@ -42,7 +42,7 @@ angular.module('zmApp.controllers').controller('MenuController', ['$scope', '$io
{
NVRDataModel.log("Language selected:" + $scope.myopt.lang);
NVRDataModel.setDefaultLanguage($scope.myopt.lang, true);
- $rootScope.$emit('language-changed');
+ $rootScope.$broadcast('language-changed');
//return "OK";
diff --git a/www/js/MonitorModalCtrl.js b/www/js/MonitorModalCtrl.js
index ab59a147..9522ebee 100644
--- a/www/js/MonitorModalCtrl.js
+++ b/www/js/MonitorModalCtrl.js
@@ -34,14 +34,14 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
//$rootScope.authSession = "undefined";
- $ionicLoading.show({
+ /* $ionicLoading.show({
template: $translate.instant('kNegotiatingStreamAuth') + '...',
animation: 'fade-in',
showBackdrop: true,
duration: zm.loadingTimeout,
maxWidth: 300,
showDelay: 0
- });
+ });*/
$scope.currentStreamMode = 'single';
NVRDataModel.log("Using stream mode " + $scope.currentStreamMode);
@@ -73,7 +73,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
intervalModalHandle = $interval(function () {
loadModalNotifications();
// console.log ("Refreshing Image...");
- }.bind(this), 5000);
+ }.bind(this), zm.alarmStatusTime);
@@ -193,12 +193,20 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
// On re-auth, we need a new zms
//-------------------------------------------------------------
- $rootScope.$on("auth-success", function () {
+ var as = $scope.$on("auth-success", function () {
NVRDataModel.debug("MonitorModalCtrl: Re-login detected, resetting everything & re-generating connkey");
//NVRDataModel.stopNetwork("MonitorModal-auth success");
- NVRDataModel.killLiveStream($scope.connKey, $scope.controlURL);
+ $scope.isModalStreamPaused = false;
+
+ $timeout (function() {
+ NVRDataModel.killLiveStream($scope.connKey, $scope.controlURL);
+
+
$scope.connKey = (Math.floor((Math.random() * 999999) + 1)).toString();
+ });
+
+
});
@@ -283,7 +291,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
intervalModalHandle = $interval(function () {
loadModalNotifications();
- }.bind(this), 5000);
+ }.bind(this), zm.alarmStatusTime);
if (ld.cycleMonitors) {
NVRDataModel.debug("Cycling enabled at " + ld.cycleMonitorsInterval);
@@ -575,46 +583,38 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
// this is a good time to calculate scaled zone points
function imageLoaded() {
+ if ($scope.animationInProgress) return;
+ /*
var img = document.getElementById("singlemonitor");
-
- //$scope.cw = img.naturalWidth;
- //$scope.ch = img.naturalHeight;
-
$scope.cw = img.naturalWidth;
$scope.ch = img.naturalHeight;
- //console.log ("REPORTED DIM:" + $scope.cw+ "x"+$scope.ch );
- //console.log ("ORIGINAL DIM:" + img.naturalWidth+ "x"+img.naturalHeight);
- //https://server/zm/api/zones/forMonitor/7.json
- //
+
$scope.zoneArray = [];
$scope.circlePoints = [];
var ow = $scope.monitor.Monitor.Width;
- var oh = $scope.monitor.Monitor.Height;
+ var oh = $scope.monitor.Monitor.Height;*/
// console.log ("MONITOR IS: "+JSON.stringify($scope.monitor));
// console.log ("ORIGINAL WH="+ow+"x"+oh);
- for (var i = 0; i < originalZones.length; i++) {
+ /*for (var i = 0; i < originalZones.length; i++) {
var sx = $scope.cw / ow;
var sy = $scope.ch / oh;
- //$scope.zoneArray.push({
- // coords:scaleCoords(originalZones[i].coords,sx,sy),
- // type:originalZones[i].type});
$scope.zoneArray.push({
coords: originalZones[i].coords,
type: originalZones[i].type
});
- }
+ }*/
// now create a points array for circle handles
- for (i = 0; i < $scope.zoneArray.length; i++) {
- /*jshint loopfunc: true */
- // console.log ("ZONE ARRAY="+$scope.zoneArray[i].coords);
+
+ /* for (i = 0; i < $scope.zoneArray.length; i++) {
+ //jshint loopfunc: true
$scope.zoneArray[i].coords.split(' ')
.forEach(function (itm) {
var o = itm.split(',');
@@ -627,8 +627,10 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
// console.log ("CIRCLE X="+o[0]+"Y="+o[1]);
});
- }
+ }*/
+ $scope.isModalStreamPaused = false;
+ NVRDataModel.debug ("Modal image loaded, switching to streaming");
@@ -636,18 +638,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
}
- //-------------------------------------------------------------
- // this is checked to make sure we are not pulling images
- // when app is in background. This is a problem with Android,
- // for example
- //-------------------------------------------------------------
-
- $scope.isBackground = function () {
- // console.log ("Is background called from ModalCtrl and returned " +
- // NVRDataModel.isBackground());
- return NVRDataModel.isBackground();
- };
-
+
//-------------------------------------------------------------
// Send PTZ command to ZM
// Note: PTZ fails on desktop, don't bother about it
@@ -797,6 +788,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
function moveToMonitor(m, d) {
+ $scope.animationInProgress = true;
if ($scope.isZoneEdit) {
NVRDataModel.log("Not cycling, as you are editing zones");
}
@@ -847,9 +839,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
NVRDataModel.killLiveStream($scope.connKey, $scope.controlURL);
// we should now have a paused stream, time to animate out
-
-
- $scope.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); // get new key for new id
+
var dirn = d;
@@ -871,22 +861,24 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
function outWithOld() {
- NVRDataModel.log("ModalCtrl:Stopping network pull...");
- NVRDataModel.stopNetwork("MonitorModal-outwithOld");
+ NVRDataModel.log(">>>Old image out");
+ // NVRDataModel.log("ModalCtrl:Stopping network pull...");
+ //NVRDataModel.stopNetwork("MonitorModal-outwithOld");
$scope.rand = Math.floor((Math.random() * 100000) + 1);
- $scope.animationInProgress = true;
+
$timeout(function () {
element.removeClass(slideout);
element.addClass(slidein)
.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', inWithNew);
+
$scope.monitorId = mid;
$scope.monitorName = NVRDataModel.getMonitorName(mid);
$scope.monitor = NVRDataModel.getMonitorObject(mid);
$scope.controlURL = $scope.monitor.Monitor.controlURL;
$scope.zoneArray = [];
$scope.circlePoints = [];
- getZones();
+ // getZones();
configurePTZ($scope.monitorId);
}, 200);
}
@@ -894,13 +886,15 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
function inWithNew() {
element.removeClass(slidein);
- $scope.animationInProgress = false;
+
$scope.isModalStreamPaused = false;
- NVRDataModel.log("New image loaded in");
+
var ld = NVRDataModel.getLogin();
carouselUtils.setStop(false);
-
+ $scope.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); // get new key for new id
+ $scope.animationInProgress = false; // has to be AFTER new connkey
+ NVRDataModel.log("<<<New image loaded in with ck:"+$scope.connKey);
}
$ionicLoading.hide();
@@ -1122,6 +1116,8 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
$scope.constructSingleStream = function() {
+
+
var stream;
stream = $scope.monitor.Monitor.streamingURL +
"/nph-zms?mode="+getSingleStreamMode() +
@@ -1131,6 +1127,7 @@ angular.module('zmApp.controllers').controller('MonitorModalCtrl', ['$scope', '$
"&rand="+$rootScope.modalRand +
appendSingleStreamConnKey();
+ //console.log ("STREAM="+stream);
return stream;
@@ -1203,6 +1200,7 @@ function appendSingleStreamConnKey() {
$scope.$on('modal.removed', function () {
+ as(); // dregister auth success
$scope.isModalActive = false;
NVRDataModel.debug("Single monitor exited killing stream");
NVRDataModel.killLiveStream($scope.connKey, $scope.controlURL);
@@ -1621,7 +1619,7 @@ function appendSingleStreamConnKey() {
$scope.showZones = false;
- getZones();
+ //getZones();
var ld = NVRDataModel.getLogin();
//currentEvent = $scope.currentEvent;
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js
index eaca75ab..0bc0511a 100644
--- a/www/js/MontageCtrl.js
+++ b/www/js/MontageCtrl.js
@@ -29,8 +29,10 @@ angular.module('zmApp.controllers')
var refreshSec;
var reloadPage = zm.forceMontageReloadDelay;
var viewCleaned = false;
+ var randToAvoidCacheMem;
- var areStreamsStopped = false;
+
+ var areStreamsStopped = true; // first load snapshot
$scope.isModalStreamPaused = false; // used in Monitor Modal
//var reloadPage = 30;
@@ -39,22 +41,42 @@ angular.module('zmApp.controllers')
var broadcastHandles = [];
-
- var as = $rootScope.$on("auth-success", function () {
- NVRDataModel.debug("Montage Re-auth handler");
- //console.log ("RETAUTH");
- // NVRDataModel.stopNetwork();
+ var as = $scope.$on("auth-success", function () {
+
+ if ($scope.singleMonitorModalOpen) {
+ NVRDataModel.debug ("Montage: Not creating streams, as modal is open");
+ return;
+ }
- });
- broadcastHandles.push(as);
+
+ NVRDataModel.debug("Montage Re-auth handler");
+
+ areStreamsStopped = true;
+
+ $timeout (function () { // after render
+ if (simulStreaming) {
+ NVRDataModel.debug ("Re-creating all stream connkeys in montage ...");
+ NVRDataModel.regenConnKeys();
+ $scope.monitors = NVRDataModel.getMonitorsNow();
+ $scope.MontageMonitors = angular.copy($scope.monitors);
+ $timeout(function() // after render
+ {
+ initPackery();
+ }, zm.packeryTimer);
+
+ }
+ });
+ broadcastHandles.push(as);
+ //console.log (">>>>>>>>>>>>>>>>>>>>>>>>>>>AS="+as);
+ });
//--------------------------------------------------------------------------------------
// Handles bandwidth change, if required
//
//--------------------------------------------------------------------------------------
- var bc = $rootScope.$on("bandwidth-change", function(e, data)
+ var bc = $scope.$on("bandwidth-change", function(e, data)
{
// not called for offline, I'm only interested in BW switches
NVRDataModel.debug("Got network change:" + data);
@@ -89,7 +111,7 @@ angular.module('zmApp.controllers')
intervalHandleReloadPage = $interval(function()
{
forceReloadPage();
- }.bind(this), reloadPage * 1000);
+ }.bind(this), reloadPage);
if (NVRDataModel.getBandwidth() == 'lowbw')
{
@@ -152,7 +174,7 @@ angular.module('zmApp.controllers')
function forceReloadPage() {
if ($scope.isDragabillyOn)
{
- NVRDataModel.debug ("not cycling, edit in progress");
+ NVRDataModel.debug ("not reloading, edit in progress");
return;
}
@@ -216,6 +238,7 @@ angular.module('zmApp.controllers')
duration: zm.loadingTimeout
});*/
+ areStreamsStopped = true;
$scope.areImagesLoading = true;
var progressCalled = false;
@@ -303,9 +326,10 @@ angular.module('zmApp.controllers')
{
//console.log ("******** ALL IMAGES LOADED");
// $scope.$digest();
- NVRDataModel.debug("All images loaded");
+ NVRDataModel.debug("All images loaded, switching to streaming if applicable");
$scope.areImagesLoading = false;
+ areStreamsStopped = false;
$ionicLoading.hide();
@@ -600,7 +624,7 @@ angular.module('zmApp.controllers')
}
function randEachTime() {
- $scope.randToAvoidCacheMem = new Date().getTime();
+ randToAvoidCacheMem = new Date().getTime();
//$scope.randToAvoidCacheMem = "1";
//console.log ("Generating:"+$scope.randToAvoidCacheMem);
}
@@ -777,7 +801,7 @@ angular.module('zmApp.controllers')
//----------------------------------------------------------------
// Alarm emit handling
//----------------------------------------------------------------
- var al = $rootScope.$on("alarm", function(event, args)
+ var al = $scope.$on("alarm", function(event, args)
{
// FIXME: I should probably unregister this instead
if (typeof $scope.monitors === undefined)
@@ -1121,7 +1145,7 @@ angular.module('zmApp.controllers')
{
areStreamsStopped = true;
- $scope.isModalStreamPaused = false; // we stop montage and start modal stream
+ $scope.isModalStreamPaused = true; // we stop montage and start modal stream in snapshot first
$timeout (function () { // after render
if (simulStreaming) {
NVRDataModel.debug ("Killing all streams in montage to save memory/nw...");
@@ -1195,12 +1219,12 @@ angular.module('zmApp.controllers')
{
$scope.modal = modal;
- $ionicLoading.show(
+ /* $ionicLoading.show(
{
template: $translate.instant('kPleaseWait'),
noBackdrop: true,
duration: zm.loadingTimeout
- });
+ });*/
// we don't really need this as we have stopped the timer
// $scope.isModalActive = true;
@@ -1239,7 +1263,7 @@ angular.module('zmApp.controllers')
{
loadAlarmStatus();
// console.log ("Refreshing Image...");
- }.bind(this), zm.alarmStatusTime * 1000);
+ }.bind(this), zm.alarmStatusTime);
intervalHandleMontageCycle = $interval(function()
{
@@ -1250,7 +1274,7 @@ angular.module('zmApp.controllers')
intervalHandleReloadPage = $interval(function()
{
forceReloadPage();
- }.bind(this), reloadPage * 1000);
+ }.bind(this), reloadPage);
@@ -1268,7 +1292,7 @@ angular.module('zmApp.controllers')
$scope.monitors = NVRDataModel.getMonitorsNow();
$scope.MontageMonitors = angular.copy($scope.monitors);
- areStreamsStopped = false;
+ //areStreamsStopped = false;
$timeout(function() // after render
{
initPackery();
@@ -1326,7 +1350,8 @@ angular.module('zmApp.controllers')
NVRDataModel.debug ("Montage: Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
+ //console.log ("DEREGISTER "+broadcastHandles[i]);
}
broadcastHandles = [];
@@ -1766,10 +1791,10 @@ angular.module('zmApp.controllers')
"&monitor="+monitor.Monitor.Id +
"&scale="+$scope.LoginData.montageQuality +
$rootScope.authSession +
- "&rand="+monitor.Monitor.rndKey;
+ "&rand="+randToAvoidCacheMem;
//"&rand="+$scope.randToAvoidCacheMem +
appendConnKey (monitor.Monitor.connKey);
-
+ // console.log ("MODE="+getMode());
return stream;
};
@@ -1805,6 +1830,9 @@ angular.module('zmApp.controllers')
$scope.$on('$ionicView.beforeEnter', function()
{
+ broadcastHandles = [];
+ randToAvoidCacheMem = new Date().getTime();
+ areStreamsStopped = true;
// NVRDataModel.regenConnKeys();
$scope.monitors = NVRDataModel.getMonitorsNow();
$scope.MontageMonitors = angular.copy($scope.monitors);
@@ -1947,12 +1975,12 @@ angular.module('zmApp.controllers')
{
loadAlarmStatus();
// console.log ("Refreshing Image...");
- }.bind(this), zm.alarmStatusTime * 1000);
+ }.bind(this), zm.alarmStatusTime);
intervalHandleReloadPage = $interval(function()
{
forceReloadPage();
- }.bind(this), reloadPage * 1000);
+ }.bind(this), reloadPage);
loadNotifications();
diff --git a/www/js/MontageHistoryCtrl.js b/www/js/MontageHistoryCtrl.js
index 7c3c3d9c..0df27dce 100644
--- a/www/js/MontageHistoryCtrl.js
+++ b/www/js/MontageHistoryCtrl.js
@@ -10,7 +10,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc
// Handles bandwidth change, if required
//
//--------------------------------------------------------------------------------------
- var bc = $rootScope.$on("bandwidth-change", function(e, data)
+ var bc = $scope.$on("bandwidth-change", function(e, data)
{
// nothing to do for now
// eventUrl will use lower BW in next query cycle
@@ -917,7 +917,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc
NVRDataModel.debug ("Montage History: Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ //broadcastHandles[i]();
}
broadcastHandles = [];
diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js
index df674642..f7ade984 100644
--- a/www/js/PortalLoginCtrl.js
+++ b/www/js/PortalLoginCtrl.js
@@ -17,7 +17,7 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic
$scope.$on ('$ionicView.beforeLeave', function() {
NVRDataModel.debug ("Portal: Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ //broadcastHandles[i]();
}
broadcastHandles = [];
});
@@ -285,7 +285,7 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic
}
- var pp = $rootScope.$on("process-push", function () {
+ var pp = $scope.$on("process-push", function () {
NVRDataModel.debug("*** PROCESS PUSH HANDLER CALLED INSIDE PORTAL LOGIN, setting ProcessPush to true");
processPush = true;
evaluateTappedNotification();
diff --git a/www/js/TimelineCtrl.js b/www/js/TimelineCtrl.js
index 9e11fee7..d689ec4f 100644
--- a/www/js/TimelineCtrl.js
+++ b/www/js/TimelineCtrl.js
@@ -283,7 +283,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
}
- var tzu = $rootScope.$on('tz-updated', function()
+ var tzu = $scope.$on('tz-updated', function()
{
$scope.tzAbbr = NVRDataModel.getTimeZoneNow();
NVRDataModel.debug("Timezone API updated timezone to " + NVRDataModel.getTimeZoneNow());
@@ -300,7 +300,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
NVRDataModel.debug ("Timeline: Deregistering broadcast handles");
for (var i=0; i < broadcastHandles.length; i++) {
- broadcastHandles[i]();
+ // broadcastHandles[i]();
}
broadcastHandles = [];
diff --git a/www/js/app.js b/www/js/app.js
index eb2eeff5..01928d5e 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -52,10 +52,7 @@ angular.module('zmApp', [
logFile: 'zmNinjaLog.txt',
authoremail: 'pliablepixels+zmNinja@gmail.com',
logFileMaxSize: 20000, // after this limit log gets reset
- //loginInterval: 300000, //5m*60s*1000 - ZM auto login after 5 mins
- loginInterval: 1800000, //30m*60s*1000 - ZM auto login after 30 mins
-
- //loginInterval: 30000,
+
updateCheckInterval: 86400000, // 24 hrs
loadingTimeout: 15000,
slowLoadingTimeout: 60000,
@@ -93,6 +90,8 @@ angular.module('zmApp', [
cipherKey: 'sdf#@#%FSXSA_AR',
minCycleTime: 5,
+ loginInterval: 1800000, //30m*60s*1000 - ZM auto login after 30 mins
+ //loginInterval: 20000,
eventPlaybackQueryLowBW: 6000,
loginIntervalLowBW: 1800000, //30m login
eventSingleImageQualityLowBW: 70,
@@ -104,9 +103,9 @@ angular.module('zmApp', [
maxGifWidth: 800.0,
quantSample: 15,
hashSecret: 'unused at the moment',
- forceMontageReloadDelay: 3600, // 1 hr,
+ forceMontageReloadDelay: 4500000, // 1 hr 15m,
thumbWidth:200,
- alarmStatusTime: 10,
+ alarmStatusTime: 10000,
})
@@ -841,7 +840,7 @@ angular.module('zmApp', [
$rootScope.$on("auth-error", function () {
- NVRDataModel.debug("zmAutoLogin: Inside auth-error emit");
+ NVRDataModel.debug("zmAutoLogin: Inside auth-error broadcast");
NVRDataModel.displayBanner('error', ['ZoneMinder authentication failed', 'Please check settings']);
});
@@ -884,7 +883,7 @@ angular.module('zmApp', [
$timeout(function () {
contentBannerInstance();
}, 2000);
- NVRDataModel.debug("auth-success emit:Successful");
+ NVRDataModel.debug("auth-success broadcast:Successful");
});
$rootScope.getProfileName = function () {
@@ -930,7 +929,7 @@ angular.module('zmApp', [
// coming here means login not needed, old login is valid
.then(function (success) {
d.resolve("Login Success due to fast login");
- $rootScope.$emit('auth-success', "fast login mode");
+ $rootScope.$broadcast('auth-success', "fast login mode");
return d.promise;
},
@@ -1011,7 +1010,7 @@ angular.module('zmApp', [
NVRDataModel.log("Auth is disabled!");
d.resolve("Login Success");
- $rootScope.$emit('auth-success', 'no auth');
+ $rootScope.$broadcast('auth-success', 'no auth');
return (d.promise);
}
@@ -1103,14 +1102,14 @@ angular.module('zmApp', [
d.resolve("Login Success");
- $rootScope.$emit('auth-success', data);
+ $rootScope.$broadcast('auth-success', data);
} else // this means login error
{
$rootScope.loggedIntoZm = -1;
//console.log("**** ZM Login FAILED");
NVRDataModel.log("zmAutologin Error: Bad Credentials ", "error");
- $rootScope.$emit('auth-error', "incorrect credentials");
+ $rootScope.$broadcast('auth-error', "incorrect credentials");
d.reject("Login Error");
return (d.promise);
@@ -1151,7 +1150,7 @@ angular.module('zmApp', [
NVRDataModel.log("zmAutologin Error " + JSON.stringify(error) + " and status " + status);
// bad urls etc come here
$rootScope.loggedIntoZm = -1;
- $rootScope.$emit('auth-error', error);
+ $rootScope.$broadcast('auth-error', error);
d.reject("Login Error");
return d.promise;
@@ -1338,7 +1337,7 @@ angular.module('zmApp', [
if ((NVRDataModel.getLogin().autoSwitchBandwidth == true) &&
(NVRDataModel.getLogin().enableLowBandwidth == true)) {
NVRDataModel.debug("Setting app state to: " + strState);
- $rootScope.$emit('bandwidth-change', strState);
+ $rootScope.$broadcast('bandwidth-change', strState);
} else {
NVRDataModel.debug("Not changing bandwidth state, as auto change is not on");
}
diff --git a/www/templates/monitors-modal.html b/www/templates/monitors-modal.html
index 12d3708c..02b46a37 100644
--- a/www/templates/monitors-modal.html
+++ b/www/templates/monitors-modal.html
@@ -2,9 +2,6 @@
<ion-modal-view cache-view="false" style="background-color:#444444">
<ion-content ng-cloak on-double-tap="closeModal();" scroll="false">
-
-
-
<div id="imagecontainer">
<ion-scroll ng-if="!isZoneEdit" on-scroll="checkZoom()" delegate-handle="imgscroll" has-bouncing=false min-zoom=1 zooming="true"
direction="xy" style="width: 100%;" overflow-scroll="false">
@@ -12,14 +9,15 @@
<!-- -->
<div id="monitorimage" style="height: 100vh;" class="main">
<div ng-if="$root.authSession!='undefined'">
- <div ng-if="!animationInProgress && !isBackground() && connKey">
+ <div ng-if="!animationInProgress">
+
<!--<span style="color:white">{{currentStreamMode}}</span>-->
<img id="singlemonitor" style="width:100vw; height:100vh;" image-spinner-loader="lines" image-spinner-src="{{constructSingleStream()}}"
ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" on-swipe-left="onSwipe(monitorId,1)"
on-swipe-right="onSwipe(monitorId,-1)" on-double-tap="closeModal();" imageonload="imageLoaded()" />
</div>
- <div ng-if="animationInProgress || isBackground()">
+ <div ng-if="animationInProgress">
<img style="width:100vw; height:100vh" ng-src="img/pausevideo.png" class="object-fit_contain" />
</div>
</div>
diff --git a/www/templates/montage.html b/www/templates/montage.html
index eba049bf..77580f5e 100644
--- a/www/templates/montage.html
+++ b/www/templates/montage.html
@@ -116,7 +116,7 @@
<figcaption id="slowpulse" ng-class="monitor.Monitor.isAlarmed==true?'alarmed-figcaption animated infinite flash':'normal-figcaption'" >&nbsp;
- {{monitor.Monitor.connKey}}&nbsp;
+
<span ng-if="monitor.Monitor.isStamp && isDragabillyOn"><i class="animated infinite flash ion-pin"></i>&nbsp;</span><i class="ion-ios-videocam"></i>&nbsp;
{{monitor.Monitor.Name}}&nbsp;<i ng-if="$root.runMode!='lowbw'" style="{{monitor.Monitor.alarmState}}" class="ion-record"></i>&nbsp;