diff options
Diffstat (limited to 'www/js/MontageHistoryCtrl.js')
| -rw-r--r-- | www/js/MontageHistoryCtrl.js | 1179 |
1 files changed, 567 insertions, 612 deletions
diff --git a/www/js/MontageHistoryCtrl.js b/www/js/MontageHistoryCtrl.js index ad5d6af1..71a37c63 100644 --- a/www/js/MontageHistoryCtrl.js +++ b/www/js/MontageHistoryCtrl.js @@ -9,12 +9,12 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$scope', '$rootScope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$translate', function ($scope, $rootScope, ZMDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $translate) { - //-------------------------------------- + //-------------------------------------- // formats events dates in a nice way //--------------------------------------- $scope.prettifyDate = function (str) { - return moment(str).format('MMM Do, YYYY '+ZMDataModel.getTimeFormat()); + return moment(str).format('MMM Do, YYYY ' + ZMDataModel.getTimeFormat()); }; function prettifyDate(str) { @@ -28,451 +28,410 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc $scope.prettify = function (str) { - return moment(str).format(ZMDataModel.getTimeFormat()+' on MMMM Do YYYY'); + return moment(str).format(ZMDataModel.getTimeFormat() + ' on MMMM Do YYYY'); }; - - - - //-------------------------------------- + + + + //-------------------------------------- // pause/unpause nph-zms //--------------------------------------- - $scope.togglePause = function (mid) - { + $scope.togglePause = function (mid) { //console.log ("TOGGLE PAUSE " + mid); var m = -1; - for (var i=0; i < $scope.MontageMonitors.length; i++) - { - - if ($scope.MontageMonitors[i].Monitor.Id == mid) - { + for (var i = 0; i < $scope.MontageMonitors.length; i++) { + + if ($scope.MontageMonitors[i].Monitor.Id == mid) { m = i; break; } } - if (m != -1) - { + if (m != -1) { $scope.MontageMonitors[m].Monitor.isPaused = !$scope.MontageMonitors[m].Monitor.isPaused; - - var cmd = $scope.MontageMonitors[m].Monitor.isPaused? 1:2; - - ZMDataModel.zmDebug ("Sending CMD:"+cmd+" for monitor "+$scope.MontageMonitors[m].Monitor.Name); - controlEventStream(cmd,"",$scope.MontageMonitors[m].Monitor.connKey,-1); + + var cmd = $scope.MontageMonitors[m].Monitor.isPaused ? 1 : 2; + + ZMDataModel.zmDebug("Sending CMD:" + cmd + " for monitor " + $scope.MontageMonitors[m].Monitor.Name); + controlEventStream(cmd, "", $scope.MontageMonitors[m].Monitor.connKey, -1); } }; - - - + + + //-------------------------------------- // Called when ion-footer collapses // note that on init it is also called //--------------------------------------- - - $scope.footerExpand = function() - { - // console.log ("**************** EXPAND CALLED ***************"); + + $scope.footerExpand = function () { + // console.log ("**************** EXPAND CALLED ***************"); $ionicSideMenuDelegate.canDragContent(false); }; - - $scope.footerCollapse = function() - { - - + + $scope.footerCollapse = function () { + + footerCollapse(); - - + + }; - - + + /* Note this is also called when the view is first loaded */ - function footerCollapse() - { - // console.log ("**************** COLLAPSE CALLED ***************"); - if (readyToRun == false) - { - ZMDataModel.zmDebug ("fake call to footerCollapse - ignoring"); + function footerCollapse() { + // console.log ("**************** COLLAPSE CALLED ***************"); + if (readyToRun == false) { + ZMDataModel.zmDebug("fake call to footerCollapse - ignoring"); return; } - + $ionicSideMenuDelegate.canDragContent(true); - - ZMDataModel.stopNetwork("MontageHistory-footerCollapse"); + + ZMDataModel.stopNetwork("MontageHistory-footerCollapse"); var ld = ZMDataModel.getLogin(); - - $scope.sliderVal.realRate = $scope.sliderVal.rate *100; + + $scope.sliderVal.realRate = $scope.sliderVal.rate * 100; //ZMDataModel.zmDebug ("Playback rate is:" + $scope.sliderVal.realRate); - + var TimeObjectFrom = moment($scope.datetimeValueFrom.value).format("YYYY-MM-DD HH:mm"); var TimeObjectTo = moment($scope.datetimeValueTo.value).format('YYYY-MM-DD HH:mm'); - - // console.log ("TIME START: " + TimeObjectFrom + " " + TimeObjectTo); + + // console.log ("TIME START: " + TimeObjectFrom + " " + TimeObjectTo); //console.log ("TIME START: " + TimeObjectFrom + " " + TimeObjectTo); - - - var apiurl; - + + + var apiurl; + // release all active streams - for (var i=0; i< $scope.MontageMonitors.length; i++) - { + for (var i = 0; i < $scope.MontageMonitors.length; i++) { // generate new connKeys if timeline changes - if ($scope.MontageMonitors[i].Monitor.eventUrl !='img/noevent.png') - { - ZMDataModel.zmLog ("footerCollapse: Calling kill with " + $scope.MontageMonitors[i].Monitor.connKey + " because url is " +$scope.MontageMonitors[i].Monitor.eventUrl ) ; + if ($scope.MontageMonitors[i].Monitor.eventUrl != 'img/noevent.png') { + ZMDataModel.zmLog("footerCollapse: Calling kill with " + $scope.MontageMonitors[i].Monitor.connKey + " because url is " + $scope.MontageMonitors[i].Monitor.eventUrl); var tmpCK = angular.copy($scope.MontageMonitors[i].Monitor.connKey); - timedControlEventStream(2500,17,"",tmpCK,-1); - $scope.MontageMonitors[i].Monitor.eventUrl = "img/noevent.png"; - $scope.MontageMonitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); + timedControlEventStream(2500, 17, "", tmpCK, -1); + $scope.MontageMonitors[i].Monitor.eventUrl = "img/noevent.png"; + $scope.MontageMonitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); //console.log ("Generating connkey: " +$scope.MontageMonitors[i].Monitor.connKey); - } - - else - { + } else { //console.log ("footerCollapse: Skipped kill: connkey:"+$scope.MontageMonitors[i].Monitor.connKey + " function " + $scope.MontageMonitors[i].Monitor.Function + " listDisplay " + $scope.MontageMonitors[i].Monitor.lisDisplay + " enabled " + $scope.MontageMonitors[i].Monitor.Enabled + " eventURL " + $scope.MontageMonitors[i].Monitor.eventUrl); } - - - - + + + + } - // grab events that start on or before the time and end on or after the time - // this should only bring up events that span that time - apiurl= ld.apiurl + "/events/index/StartTime >=:"+TimeObjectFrom+"/EndTime <=:"+TimeObjectTo+".json"; - - ZMDataModel.zmLog ("Event timeline API is " + apiurl); - - $http.get(apiurl) - .success( function(data) { - + // grab events that start on or before the time and end on or after the time + // this should only bring up events that span that time + apiurl = ld.apiurl + "/events/index/StartTime >=:" + TimeObjectFrom + "/EndTime <=:" + TimeObjectTo + ".json"; + + ZMDataModel.zmLog("Event timeline API is " + apiurl); + + $http.get(apiurl) + .success(function (data) { + var ld = ZMDataModel.getLogin(); - ZMDataModel.zmDebug ("Got "+data.events.length+"new history events..."); + ZMDataModel.zmDebug("Got " + data.events.length + "new history events..."); var eid, mid, stime; - for (i=0; i<data.events.length; i++) - { + for (i = 0; i < data.events.length; i++) { mid = data.events[i].Event.MonitorId; eid = data.events[i].Event.Id; stime = data.events[i].Event.StartTime; - - // only take the first one for each monitor - for (var j=0; j < $scope.MontageMonitors.length; j++) - { - // that's the earliest match and play gapless from there - if ($scope.MontageMonitors[j].Monitor.Id == mid) - { - - if ($scope.MontageMonitors[j].Monitor.eventUrl == 'img/noevent.png') - { - - // 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; - //console.log ("Setting event URL to " +$scope.MontageMonitors[j].Monitor.eventUrl); - - // console.log ("SWITCHING TO " + $scope.MontageMonitors[j].eventUrl); - - - $scope.MontageMonitors[j].Monitor.eventUrlTime = stime; - } - } + + // only take the first one for each monitor + for (var j = 0; j < $scope.MontageMonitors.length; j++) { + // that's the earliest match and play gapless from there + if ($scope.MontageMonitors[j].Monitor.Id == mid) { + + if ($scope.MontageMonitors[j].Monitor.eventUrl == 'img/noevent.png') { + + // 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; + //console.log ("Setting event URL to " +$scope.MontageMonitors[j].Monitor.eventUrl); + + // console.log ("SWITCHING TO " + $scope.MontageMonitors[j].eventUrl); + + + $scope.MontageMonitors[j].Monitor.eventUrlTime = stime; + } + } } } - + // make sure we do our best to get that duration for all monitors // in the above call, is possible some did not make the cut in the first page - - ZMDataModel.zmLog ("Making sure all monitors have a fair chance..."); - for (i=0; i<$scope.MontageMonitors.length; i++) - { - if ($scope.MontageMonitors[i].Monitor.eventUrl=='img/noevent.png') - { + ZMDataModel.zmLog("Making sure all monitors have a fair chance..."); + for (i = 0; i < $scope.MontageMonitors.length; i++) { + if ($scope.MontageMonitors[i].Monitor.eventUrl == 'img/noevent.png') { - var indivGrab = ld.apiurl + "/events/index/MonitorId:"+$scope.MontageMonitors[i].Monitor.Id+"/StartTime >=:"+TimeObjectFrom+"/EndTime <=:"+TimeObjectTo+".json"; - ZMDataModel.zmDebug("Monitor " + $scope.MontageMonitors[i].Monitor.Id+":"+$scope.MontageMonitors[i].Monitor.Name + " does not have events, trying "+indivGrab); + var indivGrab = ld.apiurl + "/events/index/MonitorId:" + $scope.MontageMonitors[i].Monitor.Id + "/StartTime >=:" + TimeObjectFrom + "/EndTime <=:" + TimeObjectTo + ".json"; - getExpandedEvents(i,indivGrab); + ZMDataModel.zmDebug("Monitor " + $scope.MontageMonitors[i].Monitor.Id + ":" + $scope.MontageMonitors[i].Monitor.Name + " does not have events, trying " + indivGrab); + + getExpandedEvents(i, indivGrab); - } } - - - - + } + + + + }) - .error (function (data) { - ZMDataModel.zmDebug ("history ERROR:"+ JSON.stringify(data)); - + .error(function (data) { + ZMDataModel.zmDebug("history ERROR:" + JSON.stringify(data)); + }); - - - function getExpandedEvents(i,indivGrab) - { + + + function getExpandedEvents(i, indivGrab) { var ld = ZMDataModel.getLogin(); - // console.log ("EXPANDED EVENT " + i + " " + indivGrab); + // console.log ("EXPANDED EVENT " + i + " " + indivGrab); $http.get(indivGrab) - .success(function(data) - { - // console.log ("EXPANDED DATA FOR MONITOR " + i + JSON.stringify(data)); - if (data.events.length > 0 ) - { - - if (!ZMDataModel.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; - - - - //console.log ("SWITCHING TO " + $scope.MontageMonitors[i].eventUrl); - - $scope.MontageMonitors[i].Monitor.eventUrlTime = data.events[0].Event.StartTime; - - ZMDataModel.zmLog ("Found expanded event "+data.events[0].Event.Id+" for monitor " + $scope.MontageMonitors[i].Monitor.Id); - } - else - { - // $scope.MontageMonitors[i].eventUrl="img/noevent.png"; - // $scope.MontageMonitors[i].eventUrlTime = ""; - // ZMDataModel.zmLog ("Setting img src to null as data received in background"); + .success(function (data) { + // console.log ("EXPANDED DATA FOR MONITOR " + i + JSON.stringify(data)); + if (data.events.length > 0) { + + if (!ZMDataModel.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; + + + + //console.log ("SWITCHING TO " + $scope.MontageMonitors[i].eventUrl); + + $scope.MontageMonitors[i].Monitor.eventUrlTime = data.events[0].Event.StartTime; + + ZMDataModel.zmLog("Found expanded event " + data.events[0].Event.Id + " for monitor " + $scope.MontageMonitors[i].Monitor.Id); + } else { + // $scope.MontageMonitors[i].eventUrl="img/noevent.png"; + // $scope.MontageMonitors[i].eventUrlTime = ""; + // ZMDataModel.zmLog ("Setting img src to null as data received in background"); + } } - } - - }) - .error (function(data) - { - }); + + }) + .error(function (data) {}); } } - + //--------------------------------------------------------- // This is periodically called to get the current playing // event by zms. I use this to display a timestamp // Its a 2 step process - get event Id then go a Event // API call to get time stamp. Sucks //--------------------------------------------------------- - - function checkAllEvents() - { - + + function checkAllEvents() { + //console.log ("Events are checked...."); - - for (var i=0; i<$scope.MontageMonitors.length; i++) - { + + for (var i = 0; i < $scope.MontageMonitors.length; i++) { // don't check for monitors that are not shown // because nph connkey won't exist and the response // will fail - if ($scope.MontageMonitors[i].Monitor.eventUrl !="" && $scope.MontageMonitors[i].Monitor.eventUrl !='img/noevent.png' && $scope.MontageMonitors[i].Monitor.connKey !='' && - $scope.MontageMonitors[i].Monitor.Function !='None' && - $scope.MontageMonitors[i].Monitor.listDisplay!='noshow' && - $scope.MontageMonitors[i].Monitor.Enabled !='0') - { - ZMDataModel.zmDebug ("Checking event status for " + $scope.MontageMonitors[i].Monitor.Name + ":"+$scope.MontageMonitors[i].Monitor.eventUrl+":"+$scope.MontageMonitors[i].Monitor.Function+":"+$scope.MontageMonitors[i].Monitor.listDisplay); - controlEventStream('99','',$scope.MontageMonitors[i].Monitor.connKey, i); - + if ($scope.MontageMonitors[i].Monitor.eventUrl != "" && $scope.MontageMonitors[i].Monitor.eventUrl != 'img/noevent.png' && $scope.MontageMonitors[i].Monitor.connKey != '' && + $scope.MontageMonitors[i].Monitor.Function != 'None' && + $scope.MontageMonitors[i].Monitor.listDisplay != 'noshow' && + $scope.MontageMonitors[i].Monitor.Enabled != '0') { + ZMDataModel.zmDebug("Checking event status for " + $scope.MontageMonitors[i].Monitor.Name + ":" + $scope.MontageMonitors[i].Monitor.eventUrl + ":" + $scope.MontageMonitors[i].Monitor.Function + ":" + $scope.MontageMonitors[i].Monitor.listDisplay); + controlEventStream('99', '', $scope.MontageMonitors[i].Monitor.connKey, i); + } } } - - - $scope.dateChanged = function() - { - // window.stop(); - // console.log (">>>>>>>>>>>>>>>>>>>>>>>>>>>>> BAD BAD"); + + + $scope.dateChanged = function () { + // window.stop(); + // console.log (">>>>>>>>>>>>>>>>>>>>>>>>>>>>> BAD BAD"); footerCollapse(); }; - + //-------------------------------------------------------------- // Used to control zms for a connkey. If ndx is not -1, // then it also calls an event API for the returned eid // and stores its time in the montage monitors array //-------------------------------------------------------------- - $scope.controlEventStream = function (cmd,disp,connkey,ndx) - { - controlEventStream(cmd,disp,connkey,ndx); + $scope.controlEventStream = function (cmd, disp, connkey, ndx) { + controlEventStream(cmd, disp, connkey, ndx); }; - - function timedControlEventStream (mTime, cmd, disp, connkey, ndx) - { + + function timedControlEventStream(mTime, cmd, disp, connkey, ndx) { var mMtime = mTime || 2000; - ZMDataModel.zmDebug ("Deferring control " + cmd + " by " + mMtime); - $timeout ( function() - { - subControlStream(cmd,connkey); - - },mMtime); + ZMDataModel.zmDebug("Deferring control " + cmd + " by " + mMtime); + $timeout(function () { + subControlStream(cmd, connkey); + + }, mMtime); } - - function subControlStream(cmd,connkey) - { + + function subControlStream(cmd, connkey) { var loginData = ZMDataModel.getLogin(); - var myauthtoken = $rootScope.authSession.replace("&auth=",""); + var myauthtoken = $rootScope.authSession.replace("&auth=", ""); //&auth= - var req = $http({ - method: 'POST', - /*timeout: 15000,*/ - url: loginData.url + '/index.php', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - //'Accept': '*/*', - }, - transformRequest: function (obj) { - var str = []; - for (var p in obj) - str.push(encodeURIComponent(p) + "=" + - encodeURIComponent(obj[p])); - var foo = str.join("&"); - //console.log("****SUB RETURNING " + foo); - return foo; - }, - - data: { - view: "request", - request: "stream", - connkey: connkey, - command: cmd, - auth: myauthtoken, - // user: loginData.username, - // pass: loginData.password - } - }); - - req.success (function (resp) { - ZMDataModel.zmDebug ("subControl success:"+JSON.stringify(resp)); - }); - - - req.error (function (resp) { - ZMDataModel.zmDebug ("subControl error:"+JSON.stringify(resp)); - }); + var req = $http({ + method: 'POST', + /*timeout: 15000,*/ + url: loginData.url + '/index.php', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + //'Accept': '*/*', + }, + transformRequest: function (obj) { + var str = []; + for (var p in obj) + str.push(encodeURIComponent(p) + "=" + + encodeURIComponent(obj[p])); + var foo = str.join("&"); + //console.log("****SUB RETURNING " + foo); + return foo; + }, + + data: { + view: "request", + request: "stream", + connkey: connkey, + command: cmd, + auth: myauthtoken, + // user: loginData.username, + // pass: loginData.password + } + }); + + req.success(function (resp) { + ZMDataModel.zmDebug("subControl success:" + JSON.stringify(resp)); + }); + + + req.error(function (resp) { + ZMDataModel.zmDebug("subControl error:" + JSON.stringify(resp)); + }); } - - + + function controlEventStream(cmd, disp, connkey, ndx) { - // console.log("Command value " + cmd); - - if (disp) { - $ionicLoading.hide(); - $ionicLoading.show({ - template: $translate.instant('kPleaseWait')+"...", - noBackdrop: true, - duration: zm.loadingTimeout, - }); - } - var loginData = ZMDataModel.getLogin(); - - /* - var CMD_NONE = 0; - var CMD_PAUSE = 1; - var CMD_PLAY = 2; - var CMD_STOP = 3; - var CMD_FASTFWD = 4; - var CMD_SLOWFWD = 5; - var CMD_SLOWREV = 6; - var CMD_FASTREV = 7; - var CMD_ZOOMIN = 8; - var CMD_ZOOMOUT = 9; - var CMD_PAN = 10; - var CMD_SCALE = 11; - var CMD_PREV = 12; - var CMD_NEXT = 13; - var CMD_SEEK = 14; - var CMD_QUERY = 99; - */ - - - - // You need to POST commands to control zms - // Note that I am url encoding the parameters into the URL - // If I leave it as JSON, it gets converted to OPTONS due - // to CORS behaviour and ZM/Apache don't seem to handle it - - //console.log("POST: " + loginData.url + '/index.php'); - - //console.log ("AUTH IS " + $rootScope.authSession); - - var myauthtoken = $rootScope.authSession.replace("&auth=",""); - //&auth= - var req = $http({ - method: 'POST', - /*timeout: 15000,*/ - url: loginData.url + '/index.php', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - //'Accept': '*/*', - }, - transformRequest: function (obj) { - var str = []; - for (var p in obj) - str.push(encodeURIComponent(p) + "=" + - encodeURIComponent(obj[p])); - var foo = str.join("&"); - // console.log("****RETURNING " + foo); - return foo; - }, - - data: { - view: "request", - request: "stream", - connkey: connkey, - command: cmd, - auth: myauthtoken, - // user: loginData.username, - // pass: loginData.password - } + // console.log("Command value " + cmd); + + if (disp) { + $ionicLoading.hide(); + $ionicLoading.show({ + template: $translate.instant('kPleaseWait') + "...", + noBackdrop: true, + duration: zm.loadingTimeout, }); - req.success(function (resp) { - - // console.log("SUCCESS FOR: " + JSON.stringify(resp)); - - if (resp.result=="Ok" && ndx != -1) - { - var ld = ZMDataModel.getLogin(); - var apiurl= ld.apiurl + "/events/"+resp.status.event+".json"; - //console.log ("API " + apiurl); - $http.get (apiurl) - .success (function (data) - { + } + var loginData = ZMDataModel.getLogin(); + + /* + var CMD_NONE = 0; + var CMD_PAUSE = 1; + var CMD_PLAY = 2; + var CMD_STOP = 3; + var CMD_FASTFWD = 4; + var CMD_SLOWFWD = 5; + var CMD_SLOWREV = 6; + var CMD_FASTREV = 7; + var CMD_ZOOMIN = 8; + var CMD_ZOOMOUT = 9; + var CMD_PAN = 10; + var CMD_SCALE = 11; + var CMD_PREV = 12; + var CMD_NEXT = 13; + var CMD_SEEK = 14; + var CMD_QUERY = 99; + */ + + + + // You need to POST commands to control zms + // Note that I am url encoding the parameters into the URL + // If I leave it as JSON, it gets converted to OPTONS due + // to CORS behaviour and ZM/Apache don't seem to handle it + + //console.log("POST: " + loginData.url + '/index.php'); + + //console.log ("AUTH IS " + $rootScope.authSession); + + var myauthtoken = $rootScope.authSession.replace("&auth=", ""); + //&auth= + var req = $http({ + method: 'POST', + /*timeout: 15000,*/ + url: loginData.url + '/index.php', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + //'Accept': '*/*', + }, + transformRequest: function (obj) { + var str = []; + for (var p in obj) + str.push(encodeURIComponent(p) + "=" + + encodeURIComponent(obj[p])); + var foo = str.join("&"); + // console.log("****RETURNING " + foo); + return foo; + }, + + data: { + view: "request", + request: "stream", + connkey: connkey, + command: cmd, + auth: myauthtoken, + // user: loginData.username, + // pass: loginData.password + } + }); + req.success(function (resp) { + + // console.log("SUCCESS FOR: " + JSON.stringify(resp)); + + if (resp.result == "Ok" && ndx != -1) { + var ld = ZMDataModel.getLogin(); + var apiurl = ld.apiurl + "/events/" + resp.status.event + ".json"; + //console.log ("API " + apiurl); + $http.get(apiurl) + .success(function (data) { var currentEventTime = moment(data.event.Event.StartTime); var maxTime = moment($scope.datetimeValueTo.value); //ZMDataModel.zmDebug ("Monitor: " + $scope.MontageMonitors[ndx].Monitor.Id + " max time="+maxTime + "("+$scope.datetimeValueTo.value+")"+ " current="+currentEventTime + "("+data.event.Event.StartTime+")"); - if ($scope.MontageMonitors[ndx].Monitor.eventUrlTime!=data.event.Event.StartTime && currentEventTime.diff(maxTime) <= 0 ) - { - + if ($scope.MontageMonitors[ndx].Monitor.eventUrlTime != data.event.Event.StartTime && currentEventTime.diff(maxTime) <= 0) { + var ld = ZMDataModel.getLogin(); - var element = angular.element(document.getElementById($scope.MontageMonitors[ndx].Monitor.Id+"-timeline")); - element.removeClass ('animated flipInX'); - element.addClass('animated flipOutX'); - $timeout (function() { - element.removeClass ('animated flipOutX'); - 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; - },700); - - } - else if ( currentEventTime.diff(maxTime)>0) - { - ZMDataModel.zmDebug (">>>>>>>>Monitor " + $scope.MontageMonitors[ndx].Monitor.Id + " event time of " + data.event.Event.StartTime + " exceeds " + $scope.datetimeValueTo.value +" stopping..."); - subControlStream(17,connkey); - - + var element = angular.element(document.getElementById($scope.MontageMonitors[ndx].Monitor.Id + "-timeline")); + element.removeClass('animated flipInX'); + element.addClass('animated flipOutX'); + $timeout(function () { + element.removeClass('animated flipOutX'); + 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; + }, 700); + + } else if (currentEventTime.diff(maxTime) > 0) { + ZMDataModel.zmDebug(">>>>>>>>Monitor " + $scope.MontageMonitors[ndx].Monitor.Id + " event time of " + data.event.Event.StartTime + " exceeds " + $scope.datetimeValueTo.value + " stopping..."); + subControlStream(17, connkey); + + } - + }) - .error (function (data) - { - $scope.MontageMonitors[ndx].Monitor.eventUrlTime="-"; + .error(function (data) { + $scope.MontageMonitors[ndx].Monitor.eventUrlTime = "-"; }); - - } - }); - req.error(function (resp) { - //console.log("ERROR: " + JSON.stringify(resp)); - ZMDataModel.zmLog("Error sending event command " + JSON.stringify(resp), "error"); - }); - } + } + }); + + req.error(function (resp) { + //console.log("ERROR: " + JSON.stringify(resp)); + ZMDataModel.zmLog("Error sending event command " + JSON.stringify(resp), "error"); + }); + } //--------------------------------------------------------------------- // Controller main @@ -480,104 +439,107 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc document.addEventListener("pause", onPause, false); document.addEventListener("resume", onResume, false); - - $scope.timeFormat = "yyyy-MM-dd "+ZMDataModel.getTimeFormat(); + + $scope.timeFormat = "yyyy-MM-dd " + ZMDataModel.getTimeFormat(); $scope.displayDateTimeSliders = true; $scope.showtimers = true; $scope.loginData = ZMDataModel.getLogin(); - - + + var curYear = new Date().getFullYear(); - + var readyToRun = false; var i; - + $scope.sliderVal = { - - rate:1, - realRate:100, - hideNoEvents:false, - enableGapless:true, - exactMatch:false, - showTimeline:true - + + rate: 1, + realRate: 100, + hideNoEvents: false, + enableGapless: true, + exactMatch: false, + showTimeline: true + }; - - - + + + // default = start of day var timeto = moment(); var timefrom = moment().startOf('day'); - + $scope.sliderVal.rate = 1; - $scope.sliderVal.realRate = $scope.sliderVal.rate *100; - - - + $scope.sliderVal.realRate = $scope.sliderVal.rate * 100; + + + //var tdatetimeValueFrom = new Date(); //tdatetimeValueFrom.setDate(tdatetimeValueFrom.getDate()-1); - - $scope.datetimeValueFrom = {value:""}; - $scope.datetimeValueTo = {value:""}; - - $scope.datetimeValueFrom.value = timefrom.toDate(); - $scope.datetimeValueTo.value = timeto.toDate(); - - $rootScope.eventQueryInterval=""; - - - var commonCss = - { - - background: { - "background-color": "silver" - }, - before: { - "background-color": "purple" - }, - default: { - "background-color": "white" - }, // default value: 1px - after: { - "background-color": "green" - }, // zone after default value - pointer: { - "background-color": "red" - }, // circle pointer - range: { - "background-color": "red" - } // use it if double value - }; - - - $scope.slider_modal_options_rate = { - from: 1, - to: 10, - realtime: true, - step: 1, - className: "mySliderClass", - //modelLabels:function(val) {return "";}, - smooth: false, - css: commonCss, - dimension:'X' - - }; - - - + + $scope.datetimeValueFrom = { + value: "" + }; + $scope.datetimeValueTo = { + value: "" + }; + + $scope.datetimeValueFrom.value = timefrom.toDate(); + $scope.datetimeValueTo.value = timeto.toDate(); + + $rootScope.eventQueryInterval = ""; + + + var commonCss = { + + background: { + "background-color": "silver" + }, + before: { + "background-color": "purple" + }, + default: { + "background-color": "white" + }, // default value: 1px + after: { + "background-color": "green" + }, // zone after default value + pointer: { + "background-color": "red" + }, // circle pointer + range: { + "background-color": "red" + } // use it if double value + }; + + + $scope.slider_modal_options_rate = { + from: 1, + to: 10, + realtime: true, + step: 1, + className: "mySliderClass", + //modelLabels:function(val) {return "";}, + smooth: false, + css: commonCss, + dimension: 'X' + + }; + + + var isLongPressActive = false; $scope.isReorder = false; var intervalHandleMontage; // will hold image resize timer on long press var montageIndex = 0; // will hold monitor ID to scale in timer - + var gridcontainer; $scope.monitorSize = []; // array with montage sizes per monitor $scope.scaleDirection = []; // 1 = increase -1 = decrease $scope.slider = {}; - + //console.log ("************ HISTORY " + ZMDataModel.getMontageSize()); $scope.slider.monsize = ZMDataModel.getMontageSize(); $scope.revMonSize = 11 - parseInt($scope.slider.monsize); @@ -595,86 +557,78 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc var montageOrder = []; // This array will keep the ordering in montage view var hiddenOrder = []; // 1 = hide, 0 = don't hide - + var tempMonitors = message; - if (tempMonitors.length == 0) - { - $rootScope.zmPopup= $ionicPopup.alert({ - title: $translate.instant('kNoMonitors'), - template:$translate.instant('kPleaseCheckCredentials') + if (tempMonitors.length == 0) { + $rootScope.zmPopup = $ionicPopup.alert({ + title: $translate.instant('kNoMonitors'), + template: $translate.instant('kPleaseCheckCredentials') }); $ionicHistory.nextViewOptions({ - disableBack: true + disableBack: true }); $state.go("login"); return; } - - // console.log ("TEMP MONITORS IS " + JSON.stringify(tempMonitors)); + + // console.log ("TEMP MONITORS IS " + JSON.stringify(tempMonitors)); var tempResponse = ZMDataModel.applyMontageMonitorPrefs(message, 0); $scope.monitors = tempResponse[0]; montageOrder = tempResponse[1]; hiddenOrder = tempResponse[2]; - + ZMDataModel.zmLog("Inside MontageHistoryCtrl:We found " + $scope.monitors.length + " monitors"); - $scope.MontageMonitors = ZMDataModel.applyMontageMonitorPrefs (message, 1)[0]; - + $scope.MontageMonitors = ZMDataModel.applyMontageMonitorPrefs(message, 1)[0]; + var loginData = ZMDataModel.getLogin(); - + $scope.packMontage = loginData.packMontage; - - + + // init monitors ZMDataModel.zmDebug(">>Initializing connkeys and images..."); - for ( i=0; i< $scope.MontageMonitors.length; i++) - { - //$scope.MontageMonitors[i].Monitor.connKey=''; - - - - $scope.MontageMonitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); - $scope.MontageMonitors[i].Monitor.eventUrl ='img/noevent.png'; - $scope.MontageMonitors[i].Monitor.eventUrlTime=""; - $scope.MontageMonitors[i].Monitor.isPaused=false; - - - } + for (i = 0; i < $scope.MontageMonitors.length; i++) { + //$scope.MontageMonitors[i].Monitor.connKey=''; + + + + $scope.MontageMonitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); + $scope.MontageMonitors[i].Monitor.eventUrl = 'img/noevent.png'; + $scope.MontageMonitors[i].Monitor.eventUrlTime = ""; + $scope.MontageMonitors[i].Monitor.isPaused = false; + + + } readyToRun = true; - - - + + + // -------------------------------------------------------- // Handling of back button in case modal is open should // close the modal // -------------------------------------------------------- - + $ionicPlatform.registerBackButtonAction(function (e) { - e.preventDefault(); - if ($scope.modal && $scope.modal.isShown()) - { - // switch off awake, as liveview is finished - ZMDataModel.zmDebug("Modal is open, closing it"); - ZMDataModel.setAwake(false); - $scope.modal.remove(); - $scope.isModalActive = false; - } - else - { - ZMDataModel.zmDebug("Modal is closed, so toggling or exiting"); - if (!$ionicSideMenuDelegate.isOpenLeft()) - { - $ionicSideMenuDelegate.toggleLeft(); - - } - else - { - navigator.app.exitApp(); - } - + e.preventDefault(); + if ($scope.modal && $scope.modal.isShown()) { + // switch off awake, as liveview is finished + ZMDataModel.zmDebug("Modal is open, closing it"); + ZMDataModel.setAwake(false); + $scope.modal.remove(); + $scope.isModalActive = false; + } else { + ZMDataModel.zmDebug("Modal is closed, so toggling or exiting"); + if (!$ionicSideMenuDelegate.isOpenLeft()) { + $ionicSideMenuDelegate.toggleLeft(); + + } else { + navigator.app.exitApp(); } - - }, zm.eventHistoryTimer); + + } + + }, zm.eventHistoryTimer); @@ -688,22 +642,22 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc var timestamp = new Date().getUTCMilliseconds(); $scope.minimal = $stateParams.minimal; - $scope.zmMarginTop = $scope.minimal ? 0:15; + $scope.zmMarginTop = $scope.minimal ? 0 : 15; //console.log ("********* MARGIN IS " + $scope.zmMarginTop); - + $scope.isRefresh = $stateParams.isRefresh; var sizeInProgress = false; $scope.imageStyle = true; $ionicSideMenuDelegate.canDragContent(true); - + // Do we have a saved montage array size? No? - // if (window.localStorage.getItem("montageArraySize") == undefined) { + // if (window.localStorage.getItem("montageArraySize") == undefined) { if (loginData.montageArraySize == '0') { - for ( i = 0; i < $scope.monitors.length; i++) { + for (i = 0; i < $scope.monitors.length; i++) { $scope.monitorSize.push(ZMDataModel.getMontageSize()); $scope.scaleDirection.push(1); } @@ -728,13 +682,12 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc $scope.LoginData = ZMDataModel.getLogin(); $scope.monLimit = $scope.LoginData.maxMontage; - - if ($rootScope.platformOS!='ios') - { - ZMDataModel.zmLog ("Limiting montage to 5, thanks to Chrome's stupid connection limit"); + + if ($rootScope.platformOS != 'ios') { + ZMDataModel.zmLog("Limiting montage to 5, thanks to Chrome's stupid connection limit"); $scope.monLimit = 5; } - + //console.log("********* Inside MontageHistoryCtrl, MAX LIMIT=" + $scope.monLimit); @@ -750,7 +703,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc var ld = ZMDataModel.getLogin(); - + //console.log ("MONITORS " + JSON.stringify($scope.monitors)); $rootScope.validMonitorId = $scope.monitors[0].Monitor.Id; ZMDataModel.getAuthKey($rootScope.validMonitorId) @@ -801,10 +754,9 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc $scope.modal.remove(); }; - - - $scope.isBackground = function() - { + + + $scope.isBackground = function () { return ZMDataModel.isBackground(); }; @@ -812,44 +764,51 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc //---------------------------------------------------------------- // Alarm notification handling //---------------------------------------------------------------- - $scope.handleAlarms = function() - { - $rootScope.isAlarm=!$rootScope.isAlarm; - if (!$rootScope.isAlarm) - { - $rootScope.alarmCount="0"; - $ionicHistory.nextViewOptions({disableBack: true}); - $state.go("events", {"id": 0}, { reload: true }); + $scope.handleAlarms = function () { + $rootScope.isAlarm = !$rootScope.isAlarm; + if (!$rootScope.isAlarm) { + $rootScope.alarmCount = "0"; + $ionicHistory.nextViewOptions({ + disableBack: true + }); + $state.go("events", { + "id": 0 + }, { + reload: true + }); } }; - - $scope.handleAlarmsWhileMinimized = function() - { - $rootScope.isAlarm=!$rootScope.isAlarm; - - $scope.minimal = !$scope.minimal; + + $scope.handleAlarmsWhileMinimized = function () { + $rootScope.isAlarm = !$rootScope.isAlarm; + + $scope.minimal = !$scope.minimal; ZMDataModel.zmDebug("MontageHistoryCtrl: switch minimal is " + $scope.minimal); ionic.Platform.fullScreen($scope.minimal, !$scope.minimal); $interval.cancel(intervalHandle); $interval.cancel($rootScope.eventQueryInterval); - - if (!$rootScope.isAlarm) - { - $rootScope.alarmCount="0"; - $ionicHistory.nextViewOptions({disableBack: true}); - $state.go("events", {"id": 0}, { reload: true }); + + if (!$rootScope.isAlarm) { + $rootScope.alarmCount = "0"; + $ionicHistory.nextViewOptions({ + disableBack: true + }); + $state.go("events", { + "id": 0 + }, { + reload: true + }); } }; - - + + //------------------------------------------------------------- // 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() - { + $scope.isBackground = function () { //console.log ("Is background called from Montage and returned " + //ZMDataModel.isBackground()); return ZMDataModel.isBackground(); @@ -873,7 +832,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc $scope.reloadReorder = function () { var refresh = ZMDataModel.getMonitors(1); - + refresh.then(function (data) { $scope.monitors = data; $scope.MontageMonitors = data; @@ -884,7 +843,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc montageOrder[i] = i; hiddenOrder[i] = 0; } - + loginData.montageOrder = montageOrder.toString(); loginData.montageHiddenOrder = hiddenOrder.toString(); ZMDataModel.setLogin(loginData); @@ -900,7 +859,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc loginData.montageHiddenOrder = hiddenOrder.toString(); ZMDataModel.setLogin(loginData); //window.localStorage.setItem("montageOrder", montageOrder.toString()); - // window.localStorage.setItem("montageHiddenOrder", + // window.localStorage.setItem("montageHiddenOrder", // hiddenOrder.toString()); //console.log("Saved " + montageOrder.toString()); ZMDataModel.zmLog("User press OK. Saved Monitor Order as: " + @@ -913,7 +872,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc // user tapped cancel var i, myhiddenorder; if (loginData.montageOrder == '') { - //if (window.localStorage.getItem("montageOrder") == undefined) { + //if (window.localStorage.getItem("montageOrder") == undefined) { for (i = 0; i < $scope.MontageMonitors.length; i++) { montageOrder[i] = i; hiddenOrder[i] = 0; @@ -924,7 +883,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc { var myorder = loginData.montageOrder; - if (loginData.montageHiddenOrder=='') { + if (loginData.montageHiddenOrder == '') { for (i = 0; i < $scope.MontageMonitors.length; i++) { hiddenOrder[i] = 0; } @@ -1082,7 +1041,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc }; $scope.callback = function () { - // console.log("dragging"); + // console.log("dragging"); }; @@ -1095,21 +1054,20 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc }; - + //--------------------------------------------------------------------- // changes order of montage display //--------------------------------------------------------------------- - - $scope.toggleMontageDisplayOrder = function() - { + + $scope.toggleMontageDisplayOrder = function () { $scope.packMontage = !$scope.packMontage; loginData.packMontage = $scope.packMontage; ZMDataModel.setLogin(loginData); //console.log ("Switching orientation"); }; - + //--------------------------------------------------------------------- // In Android, the app runs full steam while in background mode // while in iOS it gets suspended unless you ask for specific resources @@ -1121,7 +1079,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc ZMDataModel.zmDebug("MontageHistoryCtrl: onpause called"); $interval.cancel($rootScope.eventQueryInterval); $interval.cancel(intervalHandle); - + // $interval.cancel(modalIntervalHandle); // FIXME: Do I need to setAwake(false) here? @@ -1129,28 +1087,28 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc function onResume() { - + // FIXME: Do we need to resume timers? when you resume, you go to portal and then here - /* - if (!$scope.isModalActive) { - var ld = ZMDataModel.getLogin(); - - - ZMDataModel.zmDebug("MontageHistoryCtrl: onresume called"); - ZMDataModel.zmLog("Restarting eventQuery timer on resume"); - - console.log ("************** TIMER STARTED INSIDE RESUME ***************"); - - //$rootScope.rand = Math.floor((Math.random() * 100000) + 1); - $interval.cancel($rootScope.eventQueryInterval); - $rootScope.eventQueryInterval = $interval(function () { - checkAllEvents(); - // console.log ("Refreshing Image..."); - }.bind(this),zm.eventHistoryTimer); - } else // modal is active - { - // $rootScope.modalRand = Math.floor((Math.random() * 100000) + 1); - }*/ + /* + if (!$scope.isModalActive) { + var ld = ZMDataModel.getLogin(); + + + ZMDataModel.zmDebug("MontageHistoryCtrl: onresume called"); + ZMDataModel.zmLog("Restarting eventQuery timer on resume"); + + console.log ("************** TIMER STARTED INSIDE RESUME ***************"); + + //$rootScope.rand = Math.floor((Math.random() * 100000) + 1); + $interval.cancel($rootScope.eventQueryInterval); + $rootScope.eventQueryInterval = $interval(function () { + checkAllEvents(); + // console.log ("Refreshing Image..."); + }.bind(this),zm.eventHistoryTimer); + } else // modal is active + { + // $rootScope.modalRand = Math.floor((Math.random() * 100000) + 1); + }*/ @@ -1166,12 +1124,12 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc }; $scope.$on('$destroy', function () { - ZMDataModel.zmDebug("Cancelling eventQueryInterval"); + ZMDataModel.zmDebug("Cancelling eventQueryInterval"); $interval.cancel($rootScope.eventQueryInterval); - - - - + + + + }); @@ -1184,46 +1142,45 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc var ld = ZMDataModel.getLogin(); //console.log("Setting Awake to " + ZMDataModel.getKeepAwake()); ZMDataModel.setAwake(ZMDataModel.getKeepAwake()); - + $interval.cancel($rootScope.eventQueryInterval); //console.log ("****************** TIMER STARTED INSIDE ENTER"); $rootScope.eventQueryInterval = $interval(function () { checkAllEvents(); // console.log ("Refreshing Image..."); - }.bind(this), zm.eventHistoryTimer); - - - + }.bind(this), zm.eventHistoryTimer); + + + + - }); - + /*$scope.$on ('$ionicView.unloaded', function() { console.log ("******** HISTORY UNLOADED KILLING WINDOW ************"); window.stop(); });*/ - - $scope.$on('$ionicView.beforeEnter', function () { - - // ZMDataModel.zmLog ("Before Enter History: initing connkeys"); - - - - - - }); - + + $scope.$on('$ionicView.beforeEnter', function () { + + // ZMDataModel.zmLog ("Before Enter History: initing connkeys"); + + + + + + }); + $scope.$on('$ionicView.beforeLeave', function () { //console.log("**VIEW ** Event History Ctrl Left, force removing modal"); if ($scope.modal) $scope.modal.remove(); - - - ZMDataModel.zmLog ("BeforeLeave: Nullifying the streams..."); - - for (i=0; i< $scope.MontageMonitors.length; i++) - { - var element = document.getElementById("img-"+i); + + + ZMDataModel.zmLog("BeforeLeave: Nullifying the streams..."); + + for (i = 0; i < $scope.MontageMonitors.length; i++) { + var element = document.getElementById("img-" + i); /*if (element) { ZMDataModel.zmDebug("BeforeLeave: Nullifying " + element.src); @@ -1233,42 +1190,40 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc //$scope.$apply(nullify(element)); //element.src=""; }*/ - + } - - - + + + ZMDataModel.zmLog("Cancelling event query timer"); $interval.cancel($rootScope.eventQueryInterval); - - ZMDataModel.zmLog ("MontageHistory:Stopping network pull..."); + + ZMDataModel.zmLog("MontageHistory:Stopping network pull..."); // make sure this is applied in scope digest to stop network pull // thats why we are doing it beforeLeave - - for ( i=0; i<$scope.MontageMonitors.length; i++) - { - if ($scope.MontageMonitors[i].Monitor.connKey !='' && - $scope.MontageMonitors[i].Monitor.eventUrl !='img/noevent.png' && - $scope.MontageMonitors[i].Monitor.Function !='None' && - $scope.MontageMonitors[i].Monitor.lisDisplay!='noshow' && - $scope.MontageMonitors[i].Monitor.Enabled !='0') - { - ZMDataModel.zmLog ("Before leave: Calling kill with " + $scope.MontageMonitors[i].Monitor.connKey); + + for (i = 0; i < $scope.MontageMonitors.length; i++) { + if ($scope.MontageMonitors[i].Monitor.connKey != '' && + $scope.MontageMonitors[i].Monitor.eventUrl != 'img/noevent.png' && + $scope.MontageMonitors[i].Monitor.Function != 'None' && + $scope.MontageMonitors[i].Monitor.lisDisplay != 'noshow' && + $scope.MontageMonitors[i].Monitor.Enabled != '0') { + ZMDataModel.zmLog("Before leave: Calling kill with " + $scope.MontageMonitors[i].Monitor.connKey); var tmpCK = angular.copy($scope.MontageMonitors[i].Monitor.connKey); - timedControlEventStream(2500,17,"",tmpCK,-1); + timedControlEventStream(2500, 17, "", tmpCK, -1); } - } - - ZMDataModel.zmLog ("Forcing a window.stop() here"); + } + + ZMDataModel.zmLog("Forcing a window.stop() here"); ZMDataModel.stopNetwork("MontageHistory-beforeLeave"); - - - - + + + + }); $scope.$on('$ionicView.unloaded', function () { - + }); //--------------------------------------------------------- @@ -1283,7 +1238,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc //console.log('Size has changed'); ZMDataModel.setMontageSize(val); //console.log("ZMData Montage is " + ZMDataModel.getMontageSize() + - // " and slider montage is " + $scope.slider.monsize); + // " and slider montage is " + $scope.slider.monsize); // Now go ahead and reset sizes of entire monitor array var monsizestring = ""; var i; @@ -1301,10 +1256,10 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc //window.localStorage.setItem("montageArraySize", monsizestring); sizeInProgress = false; } - - - + + + $scope.$on('$ionicView.afterEnter', function () { // This rand is really used to reload the monitor image in img-src so it is not cached |
