summaryrefslogtreecommitdiff
path: root/www/js/EventModalCtrl.js
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2018-04-20 19:57:47 -0400
committerPliable Pixels <pliablepixels@gmail.com>2018-04-20 19:57:47 -0400
commit52d5e10e4c3d3728f85d8a9a40a975cef5ab9ddb (patch)
treeb52ec157a3d10173c8964bf1c6697f6b9bd64d9f /www/js/EventModalCtrl.js
parentf5c549df0adb14c880319d0e757698f0452ef58b (diff)
#606 allow event-modal to move from snapshot to play for better moment control
Diffstat (limited to 'www/js/EventModalCtrl.js')
-rw-r--r--www/js/EventModalCtrl.js94
1 files changed, 76 insertions, 18 deletions
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js
index d6a540ea..1b95c5f3 100644
--- a/www/js/EventModalCtrl.js
+++ b/www/js/EventModalCtrl.js
@@ -6,6 +6,12 @@
angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$rootScope', 'zm', 'NVRDataModel', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$q', '$sce', 'carouselUtils', '$ionicPopup', '$translate', '$filter', 'SecuredPopups', function($scope, $rootScope, zm, NVRDataModel, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, $q, $sce, carouselUtils, $ionicPopup, $translate, $filter, SecuredPopups)
{
+
+ const streamState = {
+ SNAPSHOT:1,
+ ACTIVE:2,
+ STOPPED:3
+ };
// from parent scope
var currentEvent = $scope.currentEvent;
var nphTimer;
@@ -17,8 +23,13 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
var gEvent;
var handle;
var showLive = true;
+ var maxAlarmFid = 0;
+
+
+
var broadcastHandles = [];
- var isStreamPaused = true;
+ var currentStreamState = streamState.STOPPED;
+
var framearray = {
@@ -66,16 +77,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
- $rootScope.authSession = "undefined";
- $ionicLoading.show(
- {
- template: $translate.instant('kNegotiatingStreamAuth'),
- animation: 'fade-in',
- showBackdrop: true,
- duration: zm.loadingTimeout,
- maxWidth: 300,
- showDelay: 0
- });
+
var ld = NVRDataModel.getLogin();
$scope.currentStreamMode = ld.gapless ? 'gapless' : 'single';
@@ -87,7 +89,8 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
NVRDataModel.debug("Setting playback to " + $scope.streamMode);
$rootScope.validMonitorId = $scope.monitors[0].Monitor.Id;
- NVRDataModel.getAuthKey($rootScope.validMonitorId, (Math.floor((Math.random() * 999999) + 1)).toString())
+
+ /* NVRDataModel.getAuthKey($rootScope.validMonitorId, (Math.floor((Math.random() * 999999) + 1)).toString())
.then(function(success)
{
$ionicLoading.hide();
@@ -102,7 +105,8 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
NVRDataModel.debug("ModalCtrl: Error details of stream auth:" + error);
//$rootScope.authSession="";
NVRDataModel.log("Modal: Error returned Stream authentication construction. Retaining old value of: " + $rootScope.authSession);
- });
+ });*/
+
//--------------------------------------------------------------------------------------
// Handles bandwidth change, if required
@@ -251,6 +255,8 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
function checkEvent()
{
+ if (currentStreamState == streamState.SNAPSHOT) return;
+
if ($scope.modalFromTimelineIsOpen == false)
{
NVRDataModel.log("Modal was closed in timeline, cancelling timer");
@@ -910,8 +916,48 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
$scope.constructStream = function (monitor) {
+
+
+ var stream="";
+ // eventId gets populated when prepareModal completes
+ // if maxAlarmFrame was not set and we don't have an eventID yet,
+ // we can't show a snapshot
+ if (currentStreamState == streamState.STOPPED || (maxAlarmFid == 0 && !$scope.eventId)) {
+ stream="";
+ }
+ else if (currentStreamState == streamState.SNAPSHOT) {
+ stream = $scope.loginData.url +
+ "/index.php?view=image" +
+
+ (maxAlarmFid? "&fid="+maxAlarmFid: "&eid="+$scope.eventId+"&fid=1") +
+ "&scale="+$scope.singleImageQuality +
+ $rootScope.authSession
+ }
+ else if (currentStreamState == streamState.ACTIVE) {
+ stream = $scope.loginData.streamingurl +
+ "/nph-zms?source=event&mode=jpeg" +
+ "&event="+$scope.eventId+"&frame=1" +
+ "&replay="+$scope.currentStreamMode +
+ "&rate=100" +
+ "&connkey="+$scope.connKey +
+ "&scale="+$scope.singleImageQuality +
+ $rootScope.authSession
+ }
+
+ // console.log ("STREAM="+stream);
+ return stream;
+
};
+ $scope.isSnapShot = function () {
+ // console.log (currentStreamState);
+ return currentStreamState == streamState.SNAPSHOT;
+ };
+
+ $scope.convertSnapShotToStream = function() {
+ currentStreamState = streamState.ACTIVE;
+ };
+
$scope.scaleImage = function()
{
@@ -921,23 +967,35 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
$scope.$on('$ionicView.beforeEnter', function()
{
- //console.log (">>>>>>>>>>>>>>>>>>>> MODAL VIEW ENTER");
- isStreamPaused = true;
+
+ currentStreamState = streamState.STOPPED;
});
- $scope.imageLoaded = function() {
- isStreamPaused = false;
- }
+ $scope.modalImageLoaded = function() {
+ console.log ("MODAL IMAGE LOADED");
+ if (m.snapshot != 'enabled') currentStreamState = streamState.ACTIVE;
+ };
$scope.$on('modal.shown', function(e, m)
{
+ console.log ("AUTH="+$rootScope.authSession);
if (m.id != 'footage')
return;
showLive = true;
+
+ if (m.snapshot == 'enabled') {
+ currentStreamState = streamState.SNAPSHOT;
+ maxAlarmFid = m.snapshotId;
+
+ }
+
+ else currentStreamState = streamState.ACTIVE;
+
+
if (m.showLive == 'disabled') {
showLive = false;
NVRDataModel.debug ("I was explictly asked not to show live, cross my fingers...");