diff options
Diffstat (limited to 'www')
| -rw-r--r-- | www/js/DataModel.js | 98 | ||||
| -rw-r--r-- | www/js/MonitorCtrl.js | 1 | ||||
| -rw-r--r-- | www/js/MontageCtrl.js | 3 | ||||
| -rw-r--r-- | www/templates/monitors-modal.html | 2 | ||||
| -rw-r--r-- | www/templates/montage.html | 4 |
5 files changed, 90 insertions, 18 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 6fb94989..e5d366c4 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -2,7 +2,7 @@ /* jslint browser: true*/ -/* global cordova,StatusBar,angular,console */ +/* global cordova,StatusBar,angular,console, URI */ // This is my central data respository and common functions // that many other controllers use @@ -23,6 +23,7 @@ angular.module('zmApp.controllers') var monitorsLoaded = 0; //var montageSize = 3; var monitors = []; + var multiservers = []; var oldevents = []; var serverGroupList={}; @@ -986,22 +987,91 @@ angular.module('zmApp.controllers') {return parseInt(a.Monitor.Sequence)-parseInt(b.Monitor.Sequence);}); //console.log("promise resolved inside HTTP success"); monitorsLoaded = 1; - $ionicLoading.hide(); - zmLog ("Monitor load was successful, loaded " + monitors.length + " monitors"); + console.log ("*********************** HOOOO"); + $http.get (apiurl+"/servers.json") + .success (function(data){ + // We found a server list API, so lets make sure + // we get the hostname as it will be needed for playback + zmLog ("multi server list loaded"+ JSON.stringify(data)); + multiservers = data.servers; + + for ( var i = 0; i< monitors.length; i++) + { + monitors[i].Monitor.listDisplay='show'; + monitors[i].Monitor.isAlarmed = false; + monitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); + + var serverFound = false; + for (var j = 0; j < multiservers.length; j++) + { + //console.log ("Comparing " + multiservers[j].Server.Id + " AND " + monitors[i].Monitor.ServerId); + if (multiservers[j].Server.Id == monitors[i].Monitor.ServerId) + { + //console.log ("Found match"); + serverFound = true; + break; + } + + } + if (serverFound) + { + + zmDebug ("Monitor " +i + " has a server hostname of " + multiservers[j].Server.Hostname); + + // Now here is the logic, I need to retrieve serverhostname, + // and slap on the host protocol and path. Meh. + + var p= URI.parse (loginData.streamingurl); + var s = URI.parse (multiservers[j].Server.Hostname); + + zmDebug ("server parsed is " + JSON.stringify(s)); + zmDebug ("portal parsed is " + JSON.stringify(p)); + + var st = ""; + st+= (s.scheme? s.scheme: p.scheme)+"://"; // server scheme overrides + + // if server doesn't have a protocol, what we want is in path + if (!s.host) + { + s.host = s.path; + s.path = undefined; + } + + st+=s.host; + if (p.port || s.port) + { + st+= (s.port ? ":"+s.port: ":"+p.port); + } + st+= (s.path? s.path: p.path); + monitors[i].Monitor.streamingURL = st; + zmDebug ("Streaming URL for Monitor " + i + " is " + monitors[i].Monitor.streamingURL ); + + } + } + d.resolve(monitors); + }) + .error (function (err) { + zmLog ("multi server list loading error"); + multiservers = []; + + for ( var i = 0; i< monitors.length; i++) + { + monitors[i].Monitor.listDisplay='show'; + monitors[i].Monitor.isAlarmed = false; + monitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); + monitors[i].Monitor.streamingURL = loginData.streamingurl; - // FIXME: This really should not be here. - var i; - for ( i = 0; i< monitors.length; i++) - { - monitors[i].Monitor.listDisplay='show'; - monitors[i].Monitor.isAlarmed = false; - monitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); - + } + d.resolve(monitors); - // monitors[i].Monitor.sortOrder=i; - } - d.resolve(monitors); + }); + + $ionicLoading.hide(); + zmLog ("Monitor load was successful, loaded " + monitors.length + " monitors"); + + + }) .error(function (err) { //console.log("HTTP Error " + err); diff --git a/www/js/MonitorCtrl.js b/www/js/MonitorCtrl.js index 2fe04cd3..7501ab5a 100644 --- a/www/js/MonitorCtrl.js +++ b/www/js/MonitorCtrl.js @@ -300,6 +300,7 @@ angular.module('zmApp.controllers') ZMDataModel.zmLog("Monitor Orientation is: " + $scope.orientation); $rootScope.rand = Math.floor(Math.random() * (999999 - 111111 + 1)) + 111111; + $scope.monitor = monitor; $scope.showPTZ = false; $scope.monitorId = mid; diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index 69b435f8..0b522eed 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -711,7 +711,8 @@ function initPackery() // modalLoadNotifications(); // console.log ("Refreshing Image..."); // }.bind(this), 1000); - + + $scope.monitor = monitor; $scope.showPTZ = false; $scope.monitorId = mid; $scope.monitorName = ZMDataModel.getMonitorName(mid); diff --git a/www/templates/monitors-modal.html b/www/templates/monitors-modal.html index 09014d60..6408ce6a 100644 --- a/www/templates/monitors-modal.html +++ b/www/templates/monitors-modal.html @@ -17,7 +17,7 @@ <div ng-if="!animationInProgress && !isBackground() && connKey"> - <img id="singlemonitor" style="width:100vw; height:100vh;-webkit-transform:rotate({{orientation}}deg);" image-spinner-loader="lines" image-spinner-src="{{LoginData.streamingurl}}/nph-zms?mode={{currentStreamMode}}&monitor={{monitorId}}{{$root.authSession}}&rand={{$root.modalRand}}&connkey={{connKey}}" 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();" /> + <img id="singlemonitor" style="width:100vw; height:100vh;-webkit-transform:rotate({{orientation}}deg);" image-spinner-loader="lines" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode={{currentStreamMode}}&monitor={{monitorId}}{{$root.authSession}}&rand={{$root.modalRand}}&connkey={{connKey}}" 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();" /> diff --git a/www/templates/montage.html b/www/templates/montage.html index cd2bce55..53e87f46 100644 --- a/www/templates/montage.html +++ b/www/templates/montage.html @@ -60,12 +60,12 @@ - <img class="{{monitor.Monitor.selectStyle}}" id="img-{{$index}}" image-spinner-src="{{LoginData.streamingurl}}/nph-zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor.Monitor.Orientation):toggleSelectItem($index);" image-spinner-loader="lines" /> + <img class="{{monitor.Monitor.selectStyle}}" id="img-{{$index}}" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor):toggleSelectItem($index);" image-spinner-loader="lines" /> </div> <div ng-if = "minimal"> - <img id="{{img-$index}}" image-spinner-src="{{LoginData.streamingurl}}/nph-zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor.Monitor.Orientation):toggleSelectItem($index);" image-spinner-loader="lines" /> + <img id="{{img-$index}}" image-spinner-src="{{monitor.Monitor.streamingURL}}/nph-zms?mode=single&monitor={{monitor.Monitor.Id}}&scale={{LoginData.montageQuality}}{{$root.authSession}}&rand={{$root.rand}}" ng-click="!isDragabillyOn?openModal(monitor.Monitor.Id, monitor.Monitor.Controllable, monitor.Monitor.ControlId, monitor.Monitor.connKey,monitor):toggleSelectItem($index);" image-spinner-loader="lines" /> </div> </div> |
