diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2018-01-05 17:30:18 -0500 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2018-01-05 17:30:18 -0500 |
| commit | a1bfb41aefe682ad1d955baa448df2769eef390c (patch) | |
| tree | 5013ebb5380656a17f80ac8568e87fd68748df82 /www | |
| parent | 55c5be3821cdbb58f90547bf85406f01efdf12c9 (diff) | |
#563 if you tap on an event which is being recorded, show live instead
Diffstat (limited to 'www')
| -rw-r--r-- | www/js/EventModalCtrl.js | 5 | ||||
| -rw-r--r-- | www/lang/locale-en.json | 2 | ||||
| -rw-r--r-- | www/templates/events-modal.html | 82 |
3 files changed, 54 insertions, 35 deletions
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js index 73f45474..871051ad 100644 --- a/www/js/EventModalCtrl.js +++ b/www/js/EventModalCtrl.js @@ -1276,6 +1276,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro $scope.onSwipeEvent = function(eid, dirn) { + if ($scope.liveFeedMid) return; //console.log("HERE"); var ld = NVRDataModel.getLogin(); if (!ld.canSwipeMonitors) return; @@ -1583,6 +1584,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro NVRDataModel.log("*** Constructed API for detailed events: " + myurl); $scope.humanizeTime = "..."; $scope.mName = "..."; + $scope.liveFeedMid = ''; $http.get(myurl) .then(function(success) { @@ -1595,6 +1597,9 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro if (!event.Event.EndTime) { $scope.eventWarning = $translate.instant('kEventStillRecording'); + // if this happens we get to live feed + $scope.liveFeedMid = event.Event.MonitorId; + NVRDataModel.log ("Event not ready, setting live view, with MID="+$scope.liveFeedMid); } event.Event.BasePath = computeBasePath(event); diff --git a/www/lang/locale-en.json b/www/lang/locale-en.json index 1e3df83b..229250b1 100644 --- a/www/lang/locale-en.json +++ b/www/lang/locale-en.json @@ -93,7 +93,7 @@ "kErrorRetrievingState" :"error retrieving state", "kErrorSave" :"Error - could not save", "kEvent" :"event", - "kEventStillRecording" :"still recording - display will start after recording is complete", + "kEventStillRecording" :"event is still recording - showing live feed", "kEventHistFaster" :"faster", "kEventHistHrs" :"hours ago", "kEventHistPause" :"pause", diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html index 2c0b0f8a..bc0a33e5 100644 --- a/www/templates/events-modal.html +++ b/www/templates/events-modal.html @@ -9,9 +9,20 @@ <div ng-if="( (defaultVideo=='') || (loginData.enableh264==false)) && (loginData.useNphZmsForEvents==true)"> <!--<div style="color:white">connkey:{{connKey}}</div>--> <div style="width:100vw; height:100vh;"> - <img image-spinner-src="{{loginData.streamingurl}}/nph-zms?source=event&mode=jpeg&event={{eventId}}&frame=1&replay={{currentStreamMode}}&rate=100&connkey={{connKey}}&scale={{singleImageQuality}}{{$root.authSession}}" ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" on-double-tap="closeModal();" + <img ng-if="!liveFeedMid" image-spinner-src="{{loginData.streamingurl}}/nph-zms?source=event&mode=jpeg&event={{eventId}}&frame=1&replay={{currentStreamMode}}&rate=100&connkey={{connKey}}&scale={{singleImageQuality}}{{$root.authSession}}" ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" on-double-tap="closeModal();" img-spinner-w="1024" img-spinner-h="768" /> + + + <div ng-if="liveFeedMid"> + <img image-spinner-src="{{loginData.streamingurl}}/nph-zms?mode=jpeg&monitor={{liveFeedMid}}&connkey={{connKey}}{{$root.authSession}}" ng-class="{'object-fit_cover':imageFit==false, 'object-fit_contain':imageFit==true}" on-double-tap="closeModal();" + img-spinner-w="1024" img-spinner-h="768" + /> + <div class="events-range-modal-text"><span class="events-range-modal-warning-text">{{eventWarning}}</span> </div> + </div> + + + <div ng-if="isPaused" style="position:absolute; top:50%; left:50%;white-space:nowrap;overflow:hidden;z-index:999" class="header-paused"> <i class="ion-pause"></i> {{'kPaused' | translate}} </div> @@ -69,7 +80,7 @@ </div> <!-- 100vh --> </ion-scroll> - <div ng-if="( (defaultVideo=='') || (loginData.enableh264==false)) && (loginData.useNphZmsForEvents==true)"> + <div ng-if="( (defaultVideo=='') || (loginData.enableh264==false)) && (loginData.useNphZmsForEvents==true) && !liveFeedMid"> <div id="event_canvas"> <canvas style="padding-left:23px; padding-right:23px;" id="eventchart" width="auto" height="20"></canvas> @@ -87,36 +98,39 @@ </ion-content> </ion-modal-view> - <nav mfb-menu position="tr" effect="zoomin" label="{{'kCollapse'|translate}}" active-icon="ion-chevron-up" resting-icon="ion-chevron-down" toggling-method="click"> - <a mfb-button icon="ion-arrow-right-c" label="{{'kNextEvent'|translate}}" ng-click="jumpToEvent(nextId,1);"></a> - <a mfb-button icon="ion-arrow-left-c" label="{{'kPrevEvent'|translate}}" ng-click="jumpToEvent(prevId,-1);"></a> - <a mfb-button icon="ion-arrow-resize" label="{{imageFit? ('kFillScreen' | translate):('kFitScreen' | translate)}}" ng-click="scaleImage();"></a> - <a mfb-button icon="ion-close" label="{{'kExitEventView' | translate}}" ng-click="closeModal()"> </a> - </nav> - <nav ng-if="loginData.useNphZmsForEvents && defaultVideo==''" mfb-menu position="br" effect="zoomin" label="{{'kCollapse' | translate}}" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click"> - <a mfb-button icon="ion-skip-backward" label="{{'kFastRewind'|translate}}" ng-click="adjustSpeed('fr');"></a> - <a mfb-button icon="ion-skip-forward" label="{{'kFastForward'|translate}}" ng-click="adjustSpeed('ff');"></a> - <a mfb-button icon="ion-play" label="{{'kNormalPlay'|translate}}" ng-click="adjustSpeed('np');"></a> - <a mfb-button icon="ion-pause" label="{{'kPause'|translate}}" ng-click="adjustSpeed('p');"> </a> - </nav> - <div class="events-range-modal-text">{{mName}} <i class="ion-arrow-right-b"></i> {{videoDynamicTime}} ({{humanizeTime}}) [{{d_eventId}}] <span class="events-range-modal-warning-text">{{eventWarning}}</span> </div> - <div id="flyoutmenu" style="position:absolute;bottom:100px;left:10px"> - <ul> - <li> - <a href="" ng-click="toggleListMenu()"> <i ng-class="(isToggleListMenu) ? 'icon ion-chevron-left': 'icon ion-chevron-right'"></i></a> - </li> - <li ng-if="defaultVideo=='' && isToggleListMenu"> - <a href="" ng-click="toggleGapless()"> <i class="ion-ios-loop-strong"></i>-{{loginData.gapless? ('kOn' | translate): ('kOff' | translate)}}</a> - </li> - <li ng-if="defaultVideo=='' && isToggleListMenu"> - <a href="" ng-click="saveEventImageToPhoneWithPerms(false)"> <i class="ion-ios-camera"></i></a> - </li> - <li ng-if="defaultVideo=='' && isToggleListMenu"> - <a href="" ng-click="saveEventImageToPhoneWithPerms(true)"> <i class="ion-android-notifications"></i></a> - </li> - <li ng-if="$root.isAlarm"> - <a data-badge="{{$root.alarmCount}}" class="notification-badge animated infinite tada" href="" ng-click="handleAlarms()"><i class="ion-ios-bell"></i></a> - </li> - </ul> - </div> + + <div ng-if="!liveFeedMid"> + <nav mfb-menu position="tr" effect="zoomin" label="{{'kCollapse'|translate}}" active-icon="ion-chevron-up" resting-icon="ion-chevron-down" toggling-method="click"> + <a mfb-button icon="ion-arrow-right-c" label="{{'kNextEvent'|translate}}" ng-click="jumpToEvent(nextId,1);"></a> + <a mfb-button icon="ion-arrow-left-c" label="{{'kPrevEvent'|translate}}" ng-click="jumpToEvent(prevId,-1);"></a> + <a mfb-button icon="ion-arrow-resize" label="{{imageFit? ('kFillScreen' | translate):('kFitScreen' | translate)}}" ng-click="scaleImage();"></a> + <a mfb-button icon="ion-close" label="{{'kExitEventView' | translate}}" ng-click="closeModal()"> </a> + </nav> + <nav ng-if="loginData.useNphZmsForEvents && defaultVideo==''" mfb-menu position="br" effect="zoomin" label="{{'kCollapse' | translate}}" active-icon="ion-chevron-down" resting-icon="ion-chevron-up" toggling-method="click"> + <a mfb-button icon="ion-skip-backward" label="{{'kFastRewind'|translate}}" ng-click="adjustSpeed('fr');"></a> + <a mfb-button icon="ion-skip-forward" label="{{'kFastForward'|translate}}" ng-click="adjustSpeed('ff');"></a> + <a mfb-button icon="ion-play" label="{{'kNormalPlay'|translate}}" ng-click="adjustSpeed('np');"></a> + <a mfb-button icon="ion-pause" label="{{'kPause'|translate}}" ng-click="adjustSpeed('p');"> </a> + </nav> + <div class="events-range-modal-text">{{mName}} <i class="ion-arrow-right-b"></i> {{videoDynamicTime}} ({{humanizeTime}}) [{{d_eventId}}] <span class="events-range-modal-warning-text">{{eventWarning}}</span> </div> + <div id="flyoutmenu" style="position:absolute;bottom:100px;left:10px"> + <ul> + <li> + <a href="" ng-click="toggleListMenu()"> <i ng-class="(isToggleListMenu) ? 'icon ion-chevron-left': 'icon ion-chevron-right'"></i></a> + </li> + <li ng-if="defaultVideo=='' && isToggleListMenu"> + <a href="" ng-click="toggleGapless()"> <i class="ion-ios-loop-strong"></i>-{{loginData.gapless? ('kOn' | translate): ('kOff' | translate)}}</a> + </li> + <li ng-if="defaultVideo=='' && isToggleListMenu"> + <a href="" ng-click="saveEventImageToPhoneWithPerms(false)"> <i class="ion-ios-camera"></i></a> + </li> + <li ng-if="defaultVideo=='' && isToggleListMenu"> + <a href="" ng-click="saveEventImageToPhoneWithPerms(true)"> <i class="ion-android-notifications"></i></a> + </li> + <li ng-if="$root.isAlarm"> + <a data-badge="{{$root.alarmCount}}" class="notification-badge animated infinite tada" href="" ng-click="handleAlarms()"><i class="ion-ios-bell"></i></a> + </li> + </ul> + </div> + </div> <!-- not live feed --> </div> |
