From 89211bbbd526bbc587361085b119a19d296f6a7f Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sat, 20 Oct 2018 19:17:21 -0400 Subject: #724 cleanup and making sure we take recordingURL for playback --- www/js/DataModel.js | 24 +++-- www/js/EventCtrl.js | 200 ++++++++++---------------------------- www/js/EventModalCtrl.js | 59 ++++------- www/js/LogCtrl.js | 3 +- www/js/MomentCtrl.js | 7 +- www/js/MonitorCtrl.js | 5 +- www/js/TimelineCtrl.js | 16 ++- www/js/TimelineModalCtrl.js | 76 ++------------- www/templates/events.html | 4 +- www/templates/moment.html | 2 +- www/templates/monitors.html | 2 + www/templates/timeline-modal.html | 2 +- 12 files changed, 114 insertions(+), 286 deletions(-) (limited to 'www') diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 2322fbdf..f1ea3689 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -2156,7 +2156,7 @@ angular.module('zmApp.controllers') var streamingurl = ""; - st += (s.scheme ? s.scheme : p.scheme) + "://"; // server scheme overrides + st += (s.scheme ? s.scheme : p.scheme) + "://"; // server scheme overrides @@ -2246,13 +2246,7 @@ angular.module('zmApp.controllers') monitors[i].Monitor.baseURL = loginData.url; monitors[i].Monitor.imageMode = (versionCompare($rootScope.apiVersion, "1.30") == -1) ? "path" : "fid"; - // but now check if forced path - if (loginData.forceImageModePath) { - debug("Overriding, setting image mode to true as you have requested force enable"); - monitors[i].Monitor.imageMode = 'path'; - } - - // debug("API " + $rootScope.apiVersion + ": Monitor " + monitors[i].Monitor.Id + " will use " + monitors[i].Monitor.imageMode + " for direct image access"); + } } // now get packery hide if applicable @@ -2849,6 +2843,20 @@ angular.module('zmApp.controllers') }, + + getRecordingURL: function (id) { + var idnum = parseInt(id); + for (var i = 0; i < monitors.length; i++) { + if (parseInt(monitors[i].Monitor.Id) == idnum) { + // console.log ("Matched, exiting getMonitorname"); + //console.log ("!!!"+monitors[i].Monitor.controlURL); + return monitors[i].Monitor.controlURL; + } + + } + return "(Unknown)"; + }, + getBaseURL: function (id) { var idnum = parseInt(id); for (var i = 0; i < monitors.length; i++) { diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index b2caf1d5..b2bbca87 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -32,7 +32,7 @@ angular.module('zmApp.controllers') }) - .controller('zmApp.EventCtrl', ['$scope', '$rootScope', 'zm', 'NVRDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', '$ionicSlideBoxDelegate', '$ionicPosition', '$ionicPopover', '$ionicPopup', 'EventServer', '$sce', '$cordovaBadge', '$cordovaLocalNotification', '$q', 'carouselUtils', '$translate', '$cordovaFileTransfer', '$cordovaFile', '$ionicListDelegate', 'ionPullUpFooterState', function ($scope, $rootScope, zm, NVRDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, $ionicSlideBoxDelegate, $ionicPosition, $ionicPopover, $ionicPopup, EventServer, $sce, $cordovaBadge, $cordovaLocalNotification, $q, carouselUtils, $translate, $cordovaFileTransfer, $cordovaFile, $ionicListDelegate, ionPullUpFooterState) { + .controller('zmApp.EventCtrl', ['$scope', '$rootScope', 'zm', 'NVRDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', '$ionicSlideBoxDelegate', '$ionicPosition', '$ionicPopover', '$ionicPopup', 'EventServer', '$sce', '$cordovaBadge', '$cordovaLocalNotification', '$q', 'carouselUtils', '$translate', '$cordovaFileTransfer', '$cordovaFile', '$ionicListDelegate', 'ionPullUpFooterState', 'SecuredPopups', function ($scope, $rootScope, zm, NVRDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, $ionicSlideBoxDelegate, $ionicPosition, $ionicPopover, $ionicPopup, EventServer, $sce, $cordovaBadge, $cordovaLocalNotification, $q, carouselUtils, $translate, $cordovaFileTransfer, $cordovaFile, $ionicListDelegate, ionPullUpFooterState,SecuredPopups) { // events in last 5 minutes // TODO https://server/zm/api/events/consoleEvents/5%20minute.json @@ -427,19 +427,18 @@ angular.module('zmApp.controllers') myevents[i].Event.humanizeTime = humanizeTime(myevents[i].Event.StartTime); myevents[i].Event.streamingURL = NVRDataModel.getStreamingURL(myevents[i].Event.MonitorId); - myevents[i].Event.baseURL = NVRDataModel.getBaseURL(myevents[i].Event.MonitorId); + myevents[i].Event.recordingURL = NVRDataModel.getRecordingURL(myevents[i].Event.MonitorId); myevents[i].Event.imageMode = NVRDataModel.getImageMode(myevents[i].Event.MonitorId); //console.log ("***** MULTISERVER STREAMING URL FOR EVENTS " + myevents[i].Event.streamingURL); - // console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.baseURL); + // console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.recordingURL); myevents[i].Event.MonitorName = NVRDataModel.getMonitorName(myevents[i].Event.MonitorId); myevents[i].Event.ShowScrub = false; myevents[i].Event.height = eventsListDetailsHeight; // now construct base path - myevents[i].Event.BasePath = computeBasePath(myevents[i]); - myevents[i].Event.relativePath = computeRelativePath(myevents[i]); + // get thumbW/H @@ -459,18 +458,11 @@ angular.module('zmApp.controllers') // in multiserver BasePath is login url for frames // http://login.url/index.php?view=frame&eid=19696772&fid=21 - // console.log ("COMPARING "+NVRDataModel.getLogin().url+ " TO " +myevents[i].Event.baseURL); - if (NVRDataModel.getLogin().url != myevents[i].Event.baseURL) { - //NVRDataModel.debug ("Multi server, changing base"); - myevents[i].Event.baseURL = NVRDataModel.getLogin().url; + // console.log ("COMPARING "+NVRDataModel.getLogin().url+ " TO " +myevents[i].Event.recordingURL); + - } - - if (myevents[i].Event.imageMode == 'path') - //if (1) - myevents[i].Event.videoPath = myevents[i].Event.baseURL + "/events/" + myevents[i].Event.relativePath + myevents[i].Event.DefaultVideo; - else - myevents[i].Event.videoPath = myevents[i].Event.baseURL + "/index.php?view=view_video&eid=" + myevents[i].Event.Id; + + myevents[i].Event.videoPath = myevents[i].Event.recordingURL + "/index.php?view=view_video&eid=" + myevents[i].Event.Id; // if (idfound) if (idfound) { @@ -525,7 +517,7 @@ angular.module('zmApp.controllers') } - function saveNow(imgsrc, r, f) { + function saveNow(imgsrc) { var fname = "zmninja.jpg"; var fn = "cordova.plugins.photoLibrary.saveImage"; @@ -874,9 +866,11 @@ angular.module('zmApp.controllers') }); }; - $scope.showImage = function (p, r, f, fid, e, imode, id, parray, ndx) { + $scope.showImage = function (p, f, fid, e, imode, id, parray, ndx) { var img; + console.log ("P="+p+" F="+f+" E="+e+" imode="+imode+" id="+id+" parray="+JSON.stringify(parray)+" ndx="+ndx); + //console.log ("HERE"); $scope.kFrame = $translate.instant('kFrame'); $scope.kEvent = $translate.instant('kEvent'); @@ -903,20 +897,11 @@ angular.module('zmApp.controllers') NVRDataModel.debug("No index adjustment necessary as we are using all frames"); } - // console.log ("Image Mode " + imode); - // console.log ("parray : " + JSON.stringify(parray)); - // console.log ("index: " + ndx); - if ($scope.imode == 'path') { - if ($scope.outlineMotion) - $scope.imgsrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].aname; - else - $scope.imgsrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].fname; - $scope.fallbackImgSrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].fname; - } else { + $scope.imgsrc = p + "/index.php?view=image&fid=" + $scope.parray[$scope.ndx].id + $scope.outlineMotionParam; $scope.fallbackImgSrc = p + "/index.php?view=image&fid=" + $scope.parray[$scope.ndx].id; - } + //$rootScope.zmPopup = $ionicPopup.alert({title: kFrame+':'+fid+'/'+kEvent+':'+e,template:img, cssClass:'popup80'}); @@ -944,7 +929,7 @@ angular.module('zmApp.controllers') type: 'button-assertive button-small ion-camera', onTap: function (e) { e.preventDefault(); - saveNow($scope.imgsrc, r, parray[$scope.ndx].fname); + saveNow($scope.imgsrc); } }, @@ -969,17 +954,11 @@ angular.module('zmApp.controllers') if (nndx == null) nndx = $scope.ndx; $scope.ndx = nndx; - if ($scope.imode == 'path') { - if ($scope.outlineMotion) - $scope.imgsrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].aname; - else - $scope.imgsrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].fname; - $scope.fallbackImgSrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].fname; - } else { + $scope.imgsrc = p + "/index.php?view=image&fid=" + $scope.parray[$scope.ndx].id + $scope.outlineMotionParam; $scope.fallbackImgSrc = p + "/index.php?view=image&fid=" + $scope.parray[$scope.ndx].id; - } + e.preventDefault(); @@ -1008,17 +987,11 @@ angular.module('zmApp.controllers') if (nndx == null) nndx = $scope.ndx; $scope.ndx = nndx; - if ($scope.imode == 'path') { - if ($scope.outlineMotion) - $scope.imgsrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].aname; - else - $scope.imgsrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].fname; - $scope.fallbackImgSrc = p + "/index.php?view=image&path=" + r + $scope.parray[$scope.ndx].fname; - } else { + $scope.imgsrc = p + "/index.php?view=image&fid=" + $scope.parray[$scope.ndx].id + $scope.outlineMotionParam; $scope.fallbackImgSrc = p + "/index.php?view=image&fid=" + $scope.parray[$scope.ndx].id; - } + e.preventDefault(); @@ -1193,14 +1166,9 @@ angular.module('zmApp.controllers') { var fname; //console.log ("PATH="+e.Event.imageMode); - if (e.Event.imageMode == 'path') - //if (1) - { - var rfp = padToN(data.event.Frame[i].FrameId, eventImageDigits) + "-capture.jpg"; - fname = e.Event.baseURL + "/index.php?view=image&width=" + zm.maxGifWidth + "&path=" + e.Event.relativePath + rfp; - } else { - fname = e.Event.baseURL + "/index.php?view=image&width=" + zm.maxGifWidth + "&fid=" + data.event.Frame[i].Id; - } + + fname = e.Event.recordingURL + "/index.php?view=image&width=" + zm.maxGifWidth + "&fid=" + data.event.Frame[i].Id; + if (data.event.Frame[i].TimeStamp != lastTime /*|| fps < 2*/ ) @@ -2119,7 +2087,17 @@ angular.module('zmApp.controllers') NVRDataModel.log("API for event details" + myurl); $http.get(myurl) .then(function (data) { + + data = data.data; + + + // var ndata = data.replace(/
/,'');
+
+           //    console.log ("NDATA:"+ndata);
+                //
+
+
                 $scope.FrameArray = data.event.Frame;
                 //  $scope.slider_options.scale=[];
 
@@ -2214,20 +2192,7 @@ angular.module('zmApp.controllers')
           $scope.slides = [];
           var i;
 
-          if (event.Event.imageMode == 'path') {
-            NVRDataModel.debug("EventCtrl: found " + frames + " frames to scrub");
-
-            for (i = 1; i <= frames; i++) {
-              var fname = padToN(i, eventImageDigits) + "-capture.jpg";
-
-              $scope.slides.push({
-                id: i,
-                img: fname
-              });
-
-            }
-          } else // we need fids
-          {
+          
             var myurl_frames = loginData.apiurl + '/events/' + event.Event.Id + ".json";
             NVRDataModel.log("API for event details" + myurl_frames);
             $http.get(myurl_frames)
@@ -2257,7 +2222,7 @@ angular.module('zmApp.controllers')
                   NVRDataModel.displayBanner('error', [$translate.instant('kErrorFrameBanner'), $translate.instant('kErrorPleaseTryAgain')]);
                 });
 
-          }
+          
 
           // now get event details to show alarm frames
           loginData = NVRDataModel.getLogin();
@@ -2268,10 +2233,8 @@ angular.module('zmApp.controllers')
           event.Event.video = {};
           var videoURL;
 
-          //if (event.Event.imageMode == 'path')
-
-          /* videoURL = event.Event.baseURL + "/events/" + event.Event.relativePath + event.Event.DefaultVideo;*/
-          videoURL = event.Event.baseURL + "/index.php?view=view_video&eid=" + event.Event.Id;
+        
+          videoURL = event.Event.recordingURL + "/index.php?view=view_video&eid=" + event.Event.Id;
           if ($rootScope.authSession != 'undefined') videoURL += $rootScope.authSession;
           videoURL += NVRDataModel.insertBasicAuthToken();
 
@@ -2494,56 +2457,8 @@ angular.module('zmApp.controllers')
       }
     };
 
-    //--------------------------------------------------------
-    // utility function
-    //--------------------------------------------------------
-
-    function computeRelativePath(event) {
-      var relativePath = "";
-      var loginData = NVRDataModel.getLogin();
-      var str = event.Event.StartTime;
-      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 + "/" +
-        dd + "/" +
-        hh + "/" +
-        min + "/" +
-        sec + "/";
-      return relativePath;
-
-    }
-
-    //--------------------------------------------------------
-    // utility function
-    //--------------------------------------------------------
-
-    function computeBasePath(event) {
-      var basePath = "";
-      var loginData = NVRDataModel.getLogin();
-      var str = event.Event.StartTime;
-      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 + "/" +
-        yy + "/" +
-        mm + "/" +
-        dd + "/" +
-        hh + "/" +
-        min + "/" +
-        sec + "/";
-      return basePath;
-    }
+    
+   
 
     $scope.modalGraph = function () {
       $ionicModal.fromTemplateUrl('templates/events-modalgraph.html', {
@@ -2826,15 +2741,13 @@ angular.module('zmApp.controllers')
               // now construct base path
 
               myevents[i].Event.streamingURL = NVRDataModel.getStreamingURL(myevents[i].Event.MonitorId);
-              myevents[i].Event.baseURL = NVRDataModel.getBaseURL(myevents[i].Event.MonitorId);
+              myevents[i].Event.recordingURL = NVRDataModel.getRecordingURL(myevents[i].Event.MonitorId);
               myevents[i].Event.imageMode = NVRDataModel.getImageMode(myevents[i].Event.MonitorId);
               // console.log ("***** MULTISERVER STREAMING URL FOR EVENTS " + myevents[i].Event.streamingURL);
 
-              //  console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.baseURL);
+              //  console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.recordingURL);
 
               myevents[i].Event.ShowScrub = false;
-              myevents[i].Event.BasePath = computeBasePath(myevents[i]);
-              myevents[i].Event.relativePath = computeRelativePath(myevents[i]);
               myevents[i].Event.height = eventsListDetailsHeight;
 
               // get thumbW/H
@@ -2857,11 +2770,8 @@ angular.module('zmApp.controllers')
               }
 
 
-              if (myevents[i].Event.imageMode == 'path')
-                //if (1)
-                myevents[i].Event.videoPath = myevents[i].Event.baseURL + "/events/" + myevents[i].Event.relativePath + myevents[i].Event.DefaultVideo;
-              else
-                myevents[i].Event.videoPath = myevents[i].Event.baseURL + "/index.php?view=view_video&eid=" + myevents[i].Event.Id;
+            
+                myevents[i].Event.videoPath = myevents[i].Event.recordingURL + "/index.php?view=view_video&eid=" + myevents[i].Event.Id;
 
               if (idfound) $scope.events.push(myevents[i]);
             }
@@ -2951,7 +2861,7 @@ angular.module('zmApp.controllers')
 
     $scope.constructThumbnail = function (event) {
       var stream = "";
-      stream = event.Event.baseURL +
+      stream = event.Event.recordingURL +
         "/index.php?view=image&show=capture&fid=" +
         (event.Event.MaxScoreFrameId ? event.Event.MaxScoreFrameId : "1&eid=" + event.Event.Id) +
         "&width=" + event.Event.thumbWidth * 2 +
@@ -2966,14 +2876,10 @@ angular.module('zmApp.controllers')
     $scope.constructScrubFrame = function (event, slide) {
 
       var stream = "";
-      if (event.Event.imageMode == 'path') {
-        stream = event.Event.baseURL + "/index.php?view=image" +
-          "&path=" + event.Event.relativePath + slide.img + "&height=380";
-
-      } else if (event.Event.imageMode == 'fid') {
-        stream = event.Event.baseURL + "/index.php?view=image" +
+     
+        stream = event.Event.recordingURL + "/index.php?view=image" +
           "&fid=" + slide.id + $scope.outlineMotionParam;
-      }
+      
       if ($rootScope.authSession != 'undefined') stream += $rootScope.authSession;
 
       stream += NVRDataModel.insertBasicAuthToken();
@@ -2985,22 +2891,14 @@ angular.module('zmApp.controllers')
     $scope.constructAlarmFrame = function (event, alarm, motion) {
       var stream = "";
 
-      if (event.Event.imageMode == 'fid') {
-        stream = event.Event.baseURL +
+     
+        stream = event.Event.recordingURL +
           "/index.php?view=image&fid=" + alarm.id;
         if (motion) stream += $scope.outlineMotionParam;
-
-      } else if (event.Event.imageMode == 'path') {
-        stream = event.Event.baseURL +
-          "/index.php?view=image&path=" + event.Event.relativePath +
-          motion ? alarm.aname : alarm.fname +
-          "&height=380";
-
-
-      }
       if ($rootScope.authSession != 'undefined') stream += $rootScope.authSession;
       stream += NVRDataModel.insertBasicAuthToken();
 
+//      console.log ("alarm:"+stream);
       return stream;
 
     };
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js
index b992017c..6c98c167 100644
--- a/www/js/EventModalCtrl.js
+++ b/www/js/EventModalCtrl.js
@@ -762,9 +762,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
       $scope.mycarousel.index = 1;
 
 
-    if ($scope.event.Event.imageMode == 'path') {
-      url = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&path=" + $scope.relativePath + $scope.slides[$scope.mycarousel.index].img;
-    } else {
+    
 
       console.log("SLIDES " + JSON.stringify($scope.slides));
       console.log("CAROUSEL " + JSON.stringify($scope.mycarousel));
@@ -772,7 +770,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
       url = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand +
         "&eid=" + $scope.eventId +
         "&fid=" + $scope.slides[$scope.mycarousel.index - 1].id;
-    }
+    
 
     if ($rootScope.authSession != 'undefined') {
       url += $rootScope.authSession;
@@ -803,11 +801,9 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
           onTap: function (e) {
             if ($scope.slideIndex > 0) $scope.slideIndex--;
 
-            if ($scope.event.Event.imageMode == 'path') {
-              $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&path=" + $scope.relativePath + $scope.slides[$scope.slideIndex].img;
-            } else {
+       
               $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&eid=" + $scope.eventId + "&fid=" + $scope.slides[$scope.slideIndex].id;
-            }
+            
             if ($rootScope.authSession != 'undefined') {
               $scope.selectEventUrl += $rootScope.authSession;
 
@@ -831,11 +827,9 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
           onTap: function (e) {
             if ($scope.slideIndex < $scope.slideLastIndex) $scope.slideIndex++;
 
-            if ($scope.event.Event.imageMode == 'path') {
-              $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&path=" + $scope.relativePath + $scope.slides[$scope.slideIndex].img;
-            } else {
+       
               $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&eid=" + $scope.eventId + "&fid=" + $scope.slides[$scope.slideIndex].id;
-            }
+            
             if ($rootScope.authSession != 'undefined') {
               $scope.selectEventUrl += $rootScope.authSession;
 
@@ -860,11 +854,9 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
             if (tempVar < 0) tempVar = 0;
             $scope.slideIndex = tempVar;
 
-            if ($scope.event.Event.imageMode == 'path') {
-              $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&path=" + $scope.relativePath + $scope.slides[$scope.slideIndex].img;
-            } else {
+       
               $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&eid=" + $scope.eventId + "&fid=" + $scope.slides[$scope.slideIndex].id;
-            }
+            
             if ($rootScope.authSession != 'undefined') {
               $scope.selectEventUrl += $rootScope.authSession;
 
@@ -889,11 +881,9 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
             $scope.slideIndex = tempVar;
             if ($scope.slideIndex < $scope.slideLastIndex) $scope.slideIndex++;
 
-            if ($scope.event.Event.imageMode == 'path') {
-              $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&path=" + $scope.relativePath + $scope.slides[$scope.slideIndex].img;
-            } else {
+          
               $scope.selectEventUrl = $scope.playbackURL + '/index.php?view=image&rand=' + $rootScope.rand + "&eid=" + $scope.eventId + "&fid=" + $scope.slides[$scope.slideIndex].id;
-            }
+            
             if ($rootScope.authSession != 'undefined') {
               $scope.selectEventUrl += $rootScope.authSession;
 
@@ -1170,10 +1160,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
     $scope.singleImageQuality = (NVRDataModel.getBandwidth() == "lowbw") ? zm.eventSingleImageQualityLowBW : ld.singleImageQuality;
     $scope.blockSlider = false;
     $scope.checkEventOn = false;
-    //$scope.singleImageQuality = 100;
-
-    //$scope.commandURL = $scope.currentEvent.Event.baseURL+"/index.php";
-    // NVRDataModel.log (">>>>>>>>>>>>>>>>>>ZMS url command is " + $scope.commandURL);
+    
 
     currentEvent = $scope.currentEvent;
 
@@ -1924,7 +1911,10 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
   function computeAlarmFrames(data) {
     $scope.alarm_images = [];
     tempAlarms = [];
-    $scope.FrameArray = data.event.Frame;
+    $scope.FrameArray = [];
+
+    console.log ("FRAME ARRAY: "+JSON.stringify(data));
+    if (data.event && data.event.Frame) $scope.FrameArray = data.event.Frame;
     var ts = 0;
 
     for (i = 0; i < data.event.Frame.length; i++) {
@@ -1953,7 +1943,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
   $scope.constructFrame = function (fid) {
 
     var frame = "";
-    frame = currentEvent.Event.baseURL + "/index.php?view=image" +
+    frame = currentEvent.Event.recordingURL + "/index.php?view=image" +
       "&eid=" + currentEvent.Event.Id +
       "&fid=" + fid +
       "&height=" + 200;
@@ -1985,7 +1975,6 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
     $scope.mName = "...";
     $scope.liveFeedMid = '';
 
-
     $http.get(myurl)
       .then(function (success) {
 
@@ -1993,7 +1982,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
           currentEvent = event;
           $scope.event = event;
 
-
+          console.log ("prepareModal DATA:"+JSON.stringify(success.data));
           computeAlarmFrames(success.data);
           $scope.eventWarning = '';
 
@@ -2008,8 +1997,8 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
           event.Event.relativePath = computeRelativePath(event);
 
           event.Event.streamingURL = NVRDataModel.getStreamingURL(event.Event.MonitorId);
-          //  event.Event.baseURL = NVRDataModel.getBaseURL (event.Event.MonitorId);
-          event.Event.baseURL = loginData.url;
+          
+          event.Event.recordingURL = loginData.url;
           event.Event.imageMode = NVRDataModel.getImageMode(event.Event.MonitorId);
 
           //console.log (JSON.stringify( success));
@@ -2056,10 +2045,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
           event.Event.video = {};
           var videoURL;
 
-          if ((event.Event.imageMode == 'path') || NVRDataModel.getLogin().forceImageModePath)
-            videoURL = event.Event.baseURL + "/events/" + event.Event.relativePath + event.Event.DefaultVideo;
-          else
-            videoURL = event.Event.baseURL + "/index.php?view=view_video&eid=" + event.Event.Id;
+            videoURL = event.Event.recordingURL + "/index.php?view=view_video&eid=" + event.Event.Id;
 
           if ($rootScope.authSession != 'undefined') videoURL += $rootScope.authSession;
           if ($rootScope.basicAuthToken) videoURL = videoURL + "&basicauth=" + $rootScope.basicAuthToken;
@@ -2073,10 +2059,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
 
           NVRDataModel.debug("Video url passed to player is: " + videoURL);
 
-          // console.log (">>>>>>>>>>>>>"+loginData.url+"-VS-"+event.Event.baseURL);
-
-          //console.log("************** VIDEO IS " + videoURL);
-
+         
           $scope.videoObject = {
             config: {
               autoPlay: true,
diff --git a/www/js/LogCtrl.js b/www/js/LogCtrl.js
index 78a02992..46db4304 100644
--- a/www/js/LogCtrl.js
+++ b/www/js/LogCtrl.js
@@ -122,8 +122,7 @@ angular.module('zmApp.controllers').controller('zmApp.LogCtrl', ['$scope', '$roo
       var urlNoProtocol = loginData.url.replace(/.*?:\/\//, "");
       if (urlNoProtocol != "") {
         var re2 = new RegExp(urlNoProtocol, "g");
-        // just replacing baseurl - that will take care of
-        // masking api but may not be cgi
+       
         logstring = logstring.replace(re2, "");
       }
       urlNoProtocol = loginData.streamingurl.replace(/.*?:\/\//, "");
diff --git a/www/js/MomentCtrl.js b/www/js/MomentCtrl.js
index 6a56158e..ace5d218 100644
--- a/www/js/MomentCtrl.js
+++ b/www/js/MomentCtrl.js
@@ -134,9 +134,8 @@ angular.module('zmApp.controllers').controller('zmApp.MomentCtrl', ['$scope', '$
 
       data.events[i].Event.hide = false;
       data.events[i].Event.icon = "ion-code-working";
-      //data.events[i].Event.baseURL = NVRDataModel.getBaseURL(data.events[i].Event.MonitorId);
-      // huh? why did I need the above? eventCtrl reverses it with below...
-      data.events[i].Event.baseURL = NVRDataModel.getLogin().url;
+    
+      data.events[i].Event.recordingURL = NVRDataModel.getLogin().url;
 
       data.events[i].Event.monitorName = NVRDataModel.getMonitorName(data.events[i].Event.MonitorId);
       data.events[i].Event.dateObject = new Date(data.events[i].Event.StartTime);
@@ -267,7 +266,7 @@ angular.module('zmApp.controllers').controller('zmApp.MomentCtrl', ['$scope', '$
   $scope.constructFrame = function (moment) {
     var stream = "";
     // console.log ($scope.isMaxScoreFramePresent);
-    stream = moment.Event.baseURL + "/index.php?view=image" +
+    stream = moment.Event.recordingURL + "/index.php?view=image" +
       ($scope.isMaxScoreFramePresent ? "&fid=" + moment.Event.MaxScoreFrameId : "&eid=" + moment.Event.Id + "&fid=1") +
       "&width=" + moment.Event.thumbWidth * 2 +
       "&height=" + moment.Event.thumbHeight * 2;
diff --git a/www/js/MonitorCtrl.js b/www/js/MonitorCtrl.js
index 9edb1e36..dbc4a7f3 100644
--- a/www/js/MonitorCtrl.js
+++ b/www/js/MonitorCtrl.js
@@ -412,10 +412,7 @@ angular.module('zmApp.controllers')
             $scope.monitors[j].Monitor.char = "ion-checkmark-circled";
             apiMonCheck = loginData.apiurl + "/monitors/daemonStatus/id:" + $scope.monitors[j].Monitor.Id + "/daemon:zmc.json";
 
-            //apiMonCheck = apiMonCheck.replace(loginData.url, $scope.monitors[j].Monitor.baseURL);
-
-            // in multiserver replace apiurl with baseurl
-
+           
             NVRDataModel.debug("MonitorCtrl:monitorStateCheck: " + apiMonCheck);
             //console.log("**** ZMC CHECK " + apiMonCheck);
             $http.get(apiMonCheck)
diff --git a/www/js/TimelineCtrl.js b/www/js/TimelineCtrl.js
index e1fbc4ef..4a144092 100644
--- a/www/js/TimelineCtrl.js
+++ b/www/js/TimelineCtrl.js
@@ -864,11 +864,11 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
                 myevents[j].Event.MonitorName = NVRDataModel.getMonitorName(myevents[j].Event.MonitorId);
 
                 myevents[j].Event.streamingURL = NVRDataModel.getStreamingURL(myevents[j].Event.MonitorId);
-                myevents[j].Event.baseURL = NVRDataModel.getBaseURL(myevents[j].Event.MonitorId);
+                myevents[j].Event.recordingURL = NVRDataModel.getRecordingURL(myevents[j].Event.MonitorId);
                 myevents[j].Event.imageMode = NVRDataModel.getImageMode(myevents[j].Event.MonitorId);
-                if (NVRDataModel.getLogin().url != myevents[j].Event.baseURL) {
+                if (NVRDataModel.getLogin().url != myevents[j].Event.recordingURL) {
 
-                  myevents[j].Event.baseURL = NVRDataModel.getLogin().url;
+                  myevents[j].Event.recordingURL = NVRDataModel.getLogin().url;
                 }
 
                 if (typeof myevents[j].Event.DefaultVideo === 'undefined')
@@ -1168,16 +1168,14 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
                   // now construct base path
 
                   myevents[i].Event.streamingURL = NVRDataModel.getStreamingURL(myevents[i].Event.MonitorId);
-                  myevents[i].Event.baseURL = NVRDataModel.getBaseURL(myevents[i].Event.MonitorId);
+                  myevents[i].Event.recordingURL = NVRDataModel.getRecordingURL(myevents[i].Event.MonitorId);
                   myevents[i].Event.imageMode = NVRDataModel.getImageMode(myevents[i].Event.MonitorId);
-                  if (NVRDataModel.getLogin().url != myevents[i].Event.baseURL) {
+                  if (NVRDataModel.getLogin().url != myevents[i].Event.recordingURL) {
                     //NVRDataModel.debug ("Multi server, changing base");
-                    myevents[i].Event.baseURL = NVRDataModel.getLogin().url;
+                    myevents[i].Event.recordingURL = NVRDataModel.getLogin().url;
 
                   }
-                  // console.log ("***** MULTISERVER STREAMING URL FOR EVENTS " + myevents[i].Event.streamingURL);
-
-                  //  console.log ("***** MULTISERVER BASE URL FOR EVENTS " + myevents[i].Event.baseURL);
+               
 
                   if (idfound) {
 
diff --git a/www/js/TimelineModalCtrl.js b/www/js/TimelineModalCtrl.js
index 238d271a..11c604f1 100644
--- a/www/js/TimelineModalCtrl.js
+++ b/www/js/TimelineModalCtrl.js
@@ -47,15 +47,11 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', '
   $scope.constructFrames = function (event, alarm) {
 
     var stream = "";
-    if (event.Event.imageMode == 'path') {
-      stream = event.Event.baseURL + "/index.php?view=image" +
-        "&path=" + event.Event.relativePath + alarm.fname +
-        "&height=380";
-    } else if (event.Event.imageMode == 'fid') {
-      stream = event.Event.baseURL + "/index.php?view=image" +
+  
+      stream = event.Event.recordingURL + "/index.php?view=image" +
         "&fid=" + alarm.id;
 
-    }
+    
     if ($rootScope.authSession != 'undefined') stream += $rootScope.authSession;
 
     stream += NVRDataModel.insertBasicAuthToken();
@@ -125,13 +121,10 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', '
   $scope.showImage = function (p, r, f, fid, e, imode, id) {
     var img;
     //console.log("Image Mode " + imode);
-    if (imode == 'path')
-
-      img = "";
-    else {
+ 
       img = "";
       // console.log ("IS MULTISERVER SO IMAGE IS " + img);
-    }
+    
     $rootScope.zmPopup = $ionicPopup.alert({
       title: 'frame:' + fid + '/Event:' + e,
       template: img,
@@ -300,7 +293,7 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', '
         fid: event.event.Frame[i].FrameId,
         id: event.event.Frame[i].Id,
         //group:i,
-        relativePath: computeRelativePath(event.event),
+        
         score: event.event.Frame[i].Score,
         fname: padToN(event.event.Frame[i].FrameId, eventImageDigits) + "-capture.jpg",
 
@@ -317,7 +310,7 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', '
           eid: event.event.Event.Id,
           fid: event.event.Frame[i].FrameId,
           //group:i,
-          relativePath: computeRelativePath(event.event),
+         
           score: event.event.Frame[i].Score,
           fname: padToN(event.event.Frame[i].FrameId, eventImageDigits) + "-capture.jpg",
           id: event.event.Frame[i].Id,
@@ -361,10 +354,10 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', '
 
       //console.log ("You tapped " + ndx);
       $scope.alarm_images = [];
-      $scope.playbackURL = $scope.event.Event.baseURL;
+      $scope.playbackURL = $scope.event.Event.recordingURL;
       var items = current_data.datasets[0].frames[ndx];
       $scope.alarm_images.push({
-        relativePath: items.relativePath,
+  
         fid: items.fid,
         id: items.id,
         fname: items.fname,
@@ -376,56 +369,7 @@ angular.module('zmApp.controllers').controller('TimelineModalCtrl', ['$scope', '
 
   }
 
-  //--------------------------------------------------------
-  // utility function
-  //--------------------------------------------------------
-
-  function computeRelativePath(event) {
-    var relativePath = "";
-    var loginData = NVRDataModel.getLogin();
-    var str = event.Event.StartTime;
-    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 + "/" +
-      dd + "/" +
-      hh + "/" +
-      min + "/" +
-      sec + "/";
-    return relativePath;
-
-  }
-
-  //--------------------------------------------------------
-  // utility function
-  //--------------------------------------------------------
-
-  function computeBasePath(event) {
-    var basePath = "";
-    var loginData = NVRDataModel.getLogin();
-    var str = event.Event.StartTime;
-    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 + "/" +
-      yy + "/" +
-      mm + "/" +
-      dd + "/" +
-      hh + "/" +
-      min + "/" +
-      sec + "/";
-    return basePath;
-  }
+  
 
   function humanizeTime(str) {
     return moment.tz(str, NVRDataModel.getTimeZoneNow()).fromNow();
diff --git a/www/templates/events.html b/www/templates/events.html
index b312a79c..71522fa0 100644
--- a/www/templates/events.html
+++ b/www/templates/events.html
@@ -152,13 +152,13 @@
                   
 
                     
- +
:{{alarm.frameid}}, :{{alarm.score}}, : {{prettifyTimeSec(alarm.time)}}
+ style="width: auto; height: auto;max-width: 100%;max-height: 170px" on-tap="showImage(event.Event.recordingURL, alarm.fname, alarm.frameid, event.Event.Id, event.Event.imageMode, alarm.id, alarm_images, $index)" />
diff --git a/www/templates/moment.html b/www/templates/moment.html index 45cdbd13..0f0f55c4 100644 --- a/www/templates/moment.html +++ b/www/templates/moment.html @@ -113,7 +113,7 @@ ng-click="togglePin(moment.Event.Id)"> - +
 {{moment.Event.humanizeTime}} {{hourmin(moment.Event.StartTime)}} 
diff --git a/www/templates/monitors.html b/www/templates/monitors.html index fbd1ce26..8daf6fa8 100644 --- a/www/templates/monitors.html +++ b/www/templates/monitors.html @@ -48,6 +48,8 @@
{{'kStatus' | translate}}: {{monitor.Monitor.isRunningText}}
{{'kId' | translate}}: {{monitor.Monitor.Id}}
{{'kEventRecording' | translate}}: {{(monitor.Monitor.VideoWriter>0?'kVideo':'kImages') | translate}} +
Streaming URL: {{monitor.Monitor.streamingURL}} +
Portal URL: {{monitor.Monitor.baseURL}}

diff --git a/www/templates/timeline-modal.html b/www/templates/timeline-modal.html index 3ae0aba7..5b6c8694 100644 --- a/www/templates/timeline-modal.html +++ b/www/templates/timeline-modal.html @@ -27,7 +27,7 @@
f:{{alarm.fid}} scr:{{alarm.score}} @ {{alarm.time}}
-- cgit v1.2.3