summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/css/style.css11
-rw-r--r--www/external/js/ion-pullup.min.js2
-rw-r--r--www/js/EventCtrl.js4
-rw-r--r--www/js/EventModalCtrl.js5
-rw-r--r--www/js/LoginCtrl.js3
-rw-r--r--www/js/MontageCtrl.js15
-rw-r--r--www/js/MontageHistoryCtrl.js6
-rw-r--r--www/templates/devoptions.html2
-rw-r--r--www/templates/events-date-time-filter.html2
-rw-r--r--www/templates/events-modal.html2
-rw-r--r--www/templates/events-modalgraph.html2
-rw-r--r--www/templates/events-popover.html2
-rw-r--r--www/templates/events.html2
-rw-r--r--www/templates/eventserversettings.html2
-rw-r--r--www/templates/help.html2
-rw-r--r--www/templates/image-modal.html2
-rw-r--r--www/templates/important_message.html2
-rw-r--r--www/templates/invalidapi.html2
-rw-r--r--www/templates/log.html2
-rw-r--r--www/templates/login.html2
-rw-r--r--www/templates/lowversion.html2
-rw-r--r--www/templates/menu.html2
-rw-r--r--www/templates/moment-mask.html2
-rw-r--r--www/templates/moment-popover.html2
-rw-r--r--www/templates/moment.html2
-rw-r--r--www/templates/monitors-modal.html2
-rw-r--r--www/templates/monitors.html2
-rw-r--r--www/templates/montage-history.html2
-rw-r--r--www/templates/montage.html2
-rw-r--r--www/templates/news.html2
-rw-r--r--www/templates/reorder-modal.html2
-rw-r--r--www/templates/state.html2
-rw-r--r--www/templates/timeline-modal.html2
-rw-r--r--www/templates/timeline-popover.html2
-rw-r--r--www/templates/timeline.html2
-rw-r--r--www/templates/wizard.html2
-rw-r--r--www/templates/zm-portal-login.html2
37 files changed, 70 insertions, 36 deletions
diff --git a/www/css/style.css b/www/css/style.css
index 3b9d8160..c7670e58 100644
--- a/www/css/style.css
+++ b/www/css/style.css
@@ -1946,9 +1946,18 @@ body {
font-family: sans-serif;
height:100%;
padding-top: constant(safe-area-inset-top);
-}
+ padding-top: env(safe-area-inset-top);
+
+}
+.notch-ready {
+ margin-left: constant(safe-area-inset-left);
+ margin-left: env(safe-area-inset-left);
+
+ margin-right: constant(safe-area-inset-right);
+ margin-right: env(safe-area-inset-right);
+}
* {
font-family: -apple-system, "Helvetica Neue", sans-serif;
diff --git a/www/external/js/ion-pullup.min.js b/www/external/js/ion-pullup.min.js
index efbcc552..5cd85289 100644
--- a/www/external/js/ion-pullup.min.js
+++ b/www/external/js/ion-pullup.min.js
@@ -1 +1 @@
-angular.module("ionic-pullup",[]).constant("ionPullUpFooterState",{COLLAPSED:"COLLAPSED",MINIMIZED:"MINIMIZED",EXPANDED:"EXPANDED"}).constant("ionPullUpFooterBehavior",{HIDE:"HIDE",EXPAND:"EXPAND"}).directive("ionPullUpFooter",[function(){return{restrict:"AE",scope:{state:"=?",onExpand:"&",onCollapse:"&",onMinimize:"&",allowMidRange:"="},controller:["$scope","$element","$attrs","$timeout","$rootScope","$window","$ionicPlatform","ionPullUpFooterState","ionPullUpFooterBehavior",function(t,e,o,n,i,a,s,r,l){function c(){var t=e[0];f=t.closest("ion-tabs"),g=f&&f.classList.contains("tabs-bottom"),E=document.querySelector("ion-nav-bar .nav-bar-block[nav-bar=entering] > .bar-header"),D=f?f.querySelector(".tabs").offsetHeight:0,I=E?E.offsetHeight:0}function u(){n(function(){m.height=m.maxHeight>0?m.maxHeight:a.innerHeight-I-P-D,m.height-=50,"ios"==i.platformOS&&(m.height-=30),e.css({height:m.height+"px"}),m.initialState==r.MINIMIZED?d():p()},300),e.css({transition:"none",padding:0})}function h(){c(),m.height=m.maxHeight>0?m.maxHeight:a.innerHeight-I-P-D,m.height-=50,"ios"==i.platformOS&&(m.height-=30),m.lastPosY=0,e.css({height:m.height+"px","-webkit-transform":"translate3d(0, 0, 0)",transform:"translate3d(0, 0, 0)"}),e.css({transition:"300ms ease-in-out",padding:0}),t.onExpand(),t.state=r.EXPANDED}function p(){m.lastPosY=f?m.height-D:m.height-m.defaultHeight,e.css({"-webkit-transform":"translate3d(0, "+m.lastPosY+"px, 0)",transform:"translate3d(0, "+m.lastPosY+"px, 0)"}),t.onCollapse(),t.state=r.COLLAPSED}function d(){m.lastPosY=m.height,e.css({"-webkit-transform":"translate3d(0, "+m.lastPosY+"px, 0)",transform:"translate3d(0, "+m.lastPosY+"px, 0)"}),t.onMinimize(),t.state=r.MINIMIZED}var f,g,E,D,I,P=0,m={height:0,posY:0,lastPosY:0,defaultHeight:e[0].offsetHeight,maxHeight:parseInt(o.maxHeight,10)||0,initialState:o.initialState?o.initialState.toUpperCase():r.COLLAPSED,defaultBehavior:o.defaultBehavior?o.defaultBehavior.toUpperCase():l.EXPAND};this.$onInit=function(){n(function(){c(),e.css({transition:"300ms ease-in-out",padding:0}),f&&g&&e.css("bottom",D+"px")}),u()},this.setHandleHeight=function(t){P=t},this.getHeight=function(){return e[0].offsetHeight},this.getBackground=function(){return a.getComputedStyle(e[0]).background},this.getInitialState=function(){return m.initialState},this.getDefaultBehavior=function(){return m.defaultBehavior},this.onTap=function(e){e.gesture.srcEvent.preventDefault(),e.gesture.preventDefault(),n(function(){t.state==r.COLLAPSED?m.defaultBehavior==l.HIDE?t.state=r.MINIMIZED:t.state=r.EXPANDED:t.state==r.MINIMIZED?m.defaultBehavior==l.HIDE?t.state=r.COLLAPSED:t.state=r.EXPANDED:t.state=m.initialState==r.MINIMIZED?r.MINIMIZED:r.COLLAPSED})},this.onDrag=function(o){switch(o.gesture.srcEvent.preventDefault(),o.gesture.preventDefault(),o.type){case"dragstart":e.css("transition","none");break;case"drag":if(m.posY=Math.round(o.gesture.deltaY)+m.lastPosY,m.posY<0||m.posY>m.height)return;e.css({"-webkit-transform":"translate3d(0, "+m.posY+"px, 0)",transform:"translate3d(0, "+m.posY+"px, 0)"});break;case"dragend":e.css({transition:"300ms ease-in-out"}),t.allowMidRange?m.lastPosY=m.posY:n(function(){m.lastPosY>m.posY?t.state=r.EXPANDED:m.lastPosY<m.posY&&(t.state=m.initialState==r.MINIMIZED?r.MINIMIZED:r.COLLAPSED)})}};var v=t.$watch("state",function(e,o){if(void 0!==o&&e!=o){switch(e){case r.COLLAPSED:p();break;case r.EXPANDED:h();break;case r.MINIMIZED:d()}i.$broadcast("ionPullUp:tap",t.state,m.defaultBehavior)}});t.$on("$destroy",v),s.ready(function(){a.addEventListener("orientationchange",u),s.on("resume",u)})}],compile:function(t,e){e.defaultHeight&&t.css("height",parseInt(e.defaultHeight,10)+"px"),t.addClass("bar bar-footer")}}}]).component("ionPullUpContent",{require:{FooterController:"^ionPullUpFooter"},controller:["$element","$attrs",function(t,e){this.$onInit=function(){var o=this.FooterController.getHeight();t.css({display:"block","margin-top":o+"px",width:"100%"}),e.scroll&&"TRUE"==e.scroll.toUpperCase()&&t.css({"overflow-y":"scroll","overflow-x":"hidden"})}}]}).component("ionPullUpBar",{require:{FooterController:"^ionPullUpFooter"},controller:["$element",function(t){this.$onInit=function(){var e=this.FooterController.getHeight();t.css({display:"flex",height:e+"px",position:"absolute",right:"0",left:"0"})}}]}).directive("ionPullUpTrigger",["$ionicGesture",function(t){return{restrict:"AE",require:"^ionPullUpFooter",link:function(e,o,n,i){t.on("tap",i.onTap,o),t.on("drag dragstart dragend",i.onDrag,o)}}}]).component("ionPullUpHandle",{require:{FooterController:"^ionPullUpFooter"},controller:["$scope","$element","$attrs","ionPullUpFooterState","ionPullUpFooterBehavior","$ionicGesture","$ionicPlatform","$timeout","$window",function(t,e,o,n,i,a,s,r,l){function c(t,o){d&&f&&(e.find("i").removeClass([d,f].join(" ")),t==n.COLLAPSED?o==i.HIDE?e.find("i").addClass(f):e.find("i").addClass(d):t==n.MINIMIZED?(i.HIDE,e.find("i").addClass(d)):e.find("i").addClass(f))}function u(){r(function(){e.css("left",(l.innerWidth-p)/2+"px")},300)}var h=parseInt(o.height,10)||25,p=parseInt(o.width,10)||100,d=o.iconExpand,f=o.iconCollapse;e.css({display:"block","background-color":"inherit",position:"absolute",top:1-h+"px",left:(l.innerWidth-p)/2+"px",height:h+"px",width:p+"px","text-align":"center"}).append("<i>"),this.$onInit=function(){var t=this.FooterController;a.on("tap",t.onTap,e),a.on("drag dragstart dragend",t.onDrag,e),t.setHandleHeight(h);c(t.getInitialState(),t.getDefaultBehavior()),u()},t.$on("ionPullUp:tap",function(t,e,o){c(e,o)}),s.ready(function(){l.addEventListener("orientationchange",u),s.on("resume",u)})}]});
+angular.module("ionic-pullup",[]).constant("ionPullUpFooterState",{COLLAPSED:"COLLAPSED",MINIMIZED:"MINIMIZED",EXPANDED:"EXPANDED"}).constant("ionPullUpFooterBehavior",{HIDE:"HIDE",EXPAND:"EXPAND"}).directive("ionPullUpFooter",[function(){return{restrict:"AE",scope:{state:"=?",onExpand:"&",onCollapse:"&",onMinimize:"&",allowMidRange:"="},controller:["$scope","$element","$attrs","$timeout","$rootScope","$window","$ionicPlatform","ionPullUpFooterState","ionPullUpFooterBehavior",function(t,e,n,o,i,a,r,s,l){var c,u,h,p,d,f=0,g={height:0,posY:0,lastPosY:0,defaultHeight:e[0].offsetHeight,maxHeight:parseInt(n.maxHeight,10)||0,initialState:n.initialState?n.initialState.toUpperCase():s.COLLAPSED,defaultBehavior:n.defaultBehavior?n.defaultBehavior.toUpperCase():l.EXPAND};function E(){var t=e[0];c=t.closest("ion-tabs"),u=c&&c.classList.contains("tabs-bottom"),h=document.querySelector("ion-nav-bar .nav-bar-block[nav-bar=entering] > .bar-header"),p=c?c.querySelector(".tabs").offsetHeight:0,d=h?h.offsetHeight:0}function D(){o((function(){g.height=g.maxHeight>0?g.maxHeight:a.innerHeight-d-f-p,g.height-=50,"ios"==i.platformOS&&(g.height-=30),e.css({height:g.height+"px"}),g.initialState==s.MINIMIZED?m():P()}),300),e.css({transition:"none",padding:0})}function I(){E(),g.height=g.maxHeight>0?g.maxHeight:a.innerHeight-d-f-p,g.height-=50,"ios"==i.platformOS&&(g.height-=30),g.lastPosY=0,e.css({height:g.height+"px","-webkit-transform":"translate3d(0, 0, 0)",transform:"translate3d(0, 0, 0)"}),e.css({transition:"300ms ease-in-out",padding:0}),t.onExpand(),t.state=s.EXPANDED}function P(){g.lastPosY=c?g.height-p:g.height-g.defaultHeight,e.css({"-webkit-transform":"translate3d(0, "+g.lastPosY+"px, 0)",transform:"translate3d(0, "+g.lastPosY+"px, 0)"}),t.onCollapse(),t.state=s.COLLAPSED}function m(){g.lastPosY=g.height,e.css({"-webkit-transform":"translate3d(0, "+g.lastPosY+"px, 0)",transform:"translate3d(0, "+g.lastPosY+"px, 0)"}),t.onMinimize(),t.state=s.MINIMIZED}this.$onInit=function(){o((function(){E(),e.css({transition:"300ms ease-in-out",padding:0}),c&&u&&e.css("bottom",p+"px")})),D()},this.setHandleHeight=function(t){f=t},this.getHeight=function(){return e[0].offsetHeight},this.getBackground=function(){return a.getComputedStyle(e[0]).background},this.getInitialState=function(){return g.initialState},this.getDefaultBehavior=function(){return g.defaultBehavior},this.onTap=function(e){e.gesture.srcEvent.preventDefault(),e.gesture.preventDefault(),o((function(){t.state==s.COLLAPSED?g.defaultBehavior==l.HIDE?t.state=s.MINIMIZED:t.state=s.EXPANDED:t.state==s.MINIMIZED?g.defaultBehavior==l.HIDE?t.state=s.COLLAPSED:t.state=s.EXPANDED:t.state=g.initialState==s.MINIMIZED?s.MINIMIZED:s.COLLAPSED}))},this.onDrag=function(n){switch(n.gesture.srcEvent.preventDefault(),n.gesture.preventDefault(),n.type){case"dragstart":e.css("transition","none");break;case"drag":if(g.posY=Math.round(n.gesture.deltaY)+g.lastPosY,g.posY<0||g.posY>g.height)return;e.css({"-webkit-transform":"translate3d(0, "+g.posY+"px, 0)",transform:"translate3d(0, "+g.posY+"px, 0)"});break;case"dragend":e.css({transition:"300ms ease-in-out"}),t.allowMidRange?g.lastPosY=g.posY:o((function(){g.lastPosY>g.posY?t.state=s.EXPANDED:g.lastPosY<g.posY&&(t.state=g.initialState==s.MINIMIZED?s.MINIMIZED:s.COLLAPSED)}))}};var v=t.$watch("state",(function(e,n){if(void 0!==n&&e!=n){switch(e){case s.COLLAPSED:P();break;case s.EXPANDED:I();break;case s.MINIMIZED:m()}i.$broadcast("ionPullUp:tap",t.state,g.defaultBehavior)}}));t.$on("$destroy",(function(){a.removeEventListener("orientationchange",D),v()})),r.ready((function(){a.addEventListener("orientationchange",D),r.on("resume",D)}))}],compile:function(t,e){e.defaultHeight&&t.css("height",parseInt(e.defaultHeight,10)+"px"),t.addClass("bar bar-footer")}}}]).component("ionPullUpContent",{require:{FooterController:"^ionPullUpFooter"},controller:["$element","$attrs",function(t,e){this.$onInit=function(){var n=this.FooterController.getHeight();t.css({display:"block","margin-top":n+"px",width:"100%"}),e.scroll&&"TRUE"==e.scroll.toUpperCase()&&t.css({"overflow-y":"scroll","overflow-x":"hidden"})}}]}).component("ionPullUpBar",{require:{FooterController:"^ionPullUpFooter"},controller:["$element",function(t){this.$onInit=function(){var e=this.FooterController.getHeight();t.css({display:"flex",height:e+"px",position:"absolute",right:"0",left:"0"})}}]}).directive("ionPullUpTrigger",["$ionicGesture",function(t){return{restrict:"AE",require:"^ionPullUpFooter",link:function(e,n,o,i){t.on("tap",i.onTap,n),t.on("drag dragstart dragend",i.onDrag,n)}}}]).component("ionPullUpHandle",{require:{FooterController:"^ionPullUpFooter"},controller:["$scope","$element","$attrs","ionPullUpFooterState","ionPullUpFooterBehavior","$ionicGesture","$ionicPlatform","$timeout","$window",function(t,e,n,o,i,a,r,s,l){var c=parseInt(n.height,10)||25,u=parseInt(n.width,10)||100,h=n.iconExpand,p=n.iconCollapse;function d(t,n){h&&p&&(e.find("i").removeClass([h,p].join(" ")),t==o.COLLAPSED?n==i.HIDE?e.find("i").addClass(p):e.find("i").addClass(h):t==o.MINIMIZED?(i.HIDE,e.find("i").addClass(h)):e.find("i").addClass(p))}function f(){s((function(){e.css("left",(l.innerWidth-u)/2+"px")}),300)}e.css({display:"block","background-color":"inherit",position:"absolute",top:1-c+"px",left:(l.innerWidth-u)/2+"px",height:c+"px",width:u+"px","text-align":"center"}).append("<i>"),this.$onInit=function(){var t=this.FooterController;a.on("tap",t.onTap,e),a.on("drag dragstart dragend",t.onDrag,e),t.setHandleHeight(c),d(t.getInitialState(),t.getDefaultBehavior()),f()},t.$on("ionPullUp:tap",(function(t,e,n){d(e,n)})),r.ready((function(){l.addEventListener("orientationchange",f),r.on("resume",f)}))}]});
diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js
index 75576a0f..502a568d 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', 'NVR', '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, NVR, 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) {
+ .controller('zmApp.EventCtrl', ['$scope', '$rootScope', 'zm', 'NVR', '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', '$window', function ($scope, $rootScope, zm, NVR, 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, $window) {
// events in last 5 minutes
// TODO https://server/zm/api/events/consoleEvents/5%20minute.json
@@ -182,6 +182,8 @@ angular.module('zmApp.controllers')
$scope.$on('$ionicView.beforeLeave', function () {
+ //$window.removeEventListener('orientationchange', updateUI);
+
if ($stateParams.lastCheckTime != undefined && $stateParams.lastCheckTime != '' && moment($stateParams.lastCheckTime).isValid()) {
NVR.debug ("removing montage temporary filter");
$rootScope.isEventFilterOn = false;
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js
index e91bea99..a6dd87e8 100644
--- a/www/js/EventModalCtrl.js
+++ b/www/js/EventModalCtrl.js
@@ -1125,6 +1125,11 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro
});
+ $scope.$on('$ionicView.beforeLeave', function () {
+ document.removeEventListener("pause", onPause, false);
+ ddocument.removeEventListener("resume", onResume, false);
+ });
+
$scope.showHideControls = function () {
if (videoPlaybarClicked) {
diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js
index e64d7a6f..9ba5e8bc 100644
--- a/www/js/LoginCtrl.js
+++ b/www/js/LoginCtrl.js
@@ -328,6 +328,9 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r
$scope.$on('$ionicView.beforeLeave', function () {
//console.log("**VIEW ** LoginCtrl Entered");
+ document.removeEventListener("pause", onPause, false);
+ document.removeEventListener("resume", onResume, false);
+
var newLoginData = JSON.stringify($scope.loginData);
if ($scope.loginData.serverName && newLoginData != oldLoginData) {
NVR.log("Login data changed, saving...");
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js
index 41b38e8c..8708970d 100644
--- a/www/js/MontageCtrl.js
+++ b/www/js/MontageCtrl.js
@@ -1734,7 +1734,11 @@ angular.module('zmApp.controllers')
NVR.debug("Deregistering handlers for multi-window");
window.MultiWindowPlugin.deregisterOnStop("montage-pause");
+ } else {
+ document.removeEventListener("pause", onPause, false);
+
}
+
if ($scope.modal) $scope.modal.remove();
});
@@ -2380,8 +2384,13 @@ angular.module('zmApp.controllers')
$state.go(s[0],s[1],s[2]);
});
- window.addEventListener("resize", jiggleMontage, false);
-
+ //window.addEventListener("resize", jiggleMontage, false);
+ $scope.$on('sizechanged', function() {
+ $timeout (function () {
+ jiggleMontage();
+ },10);
+
+ });
timeInMontage = new Date();
broadcastHandles = [];
@@ -2632,7 +2641,7 @@ angular.module('zmApp.controllers')
};
$scope.$on('$ionicView.beforeLeave', function () {
- window.removeEventListener("resize", jiggleMontage, false);
+ // window.removeEventListener("resize", jiggleMontage, false);
currentStreamState = streamState.STOPPED;
viewCleanup();
viewCleaned = true;
diff --git a/www/js/MontageHistoryCtrl.js b/www/js/MontageHistoryCtrl.js
index 53a27b3c..501c0f48 100644
--- a/www/js/MontageHistoryCtrl.js
+++ b/www/js/MontageHistoryCtrl.js
@@ -1116,6 +1116,12 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc
viewCleanup();
viewCleaned = true;
+ //$window.removeEventListener('orientationchange', updateUI);
+
+ document.removeEventListener("pause", onPause, false);
+ document.removeEventListener("resume", onResume, false);
+
+
// if ($scope.modal) $scope.modal.remove();
NVR.log("Cancelling event query timer");
diff --git a/www/templates/devoptions.html b/www/templates/devoptions.html
index 68f605cd..44825a20 100644
--- a/www/templates/devoptions.html
+++ b/www/templates/devoptions.html
@@ -8,7 +8,7 @@
<ion-nav-buttons side="right">
<button id="devoptions-move-2" class="button button-clear" ng-click="saveDevOptions()">{{'kSave' | translate}}</button>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<div class="list list-inset">
<span style="color:rgb(100,100,100)">
<i class="ion-android-settings" style="font-size:150%"></i> {{'kDeveloperOptionsFor'|translate}}
diff --git a/www/templates/events-date-time-filter.html b/www/templates/events-date-time-filter.html
index 9d7b765d..ad198746 100644
--- a/www/templates/events-date-time-filter.html
+++ b/www/templates/events-date-time-filter.html
@@ -1,5 +1,5 @@
<ion-view view-title="{{'kFilterEvents' | translate}}">
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<label class="item item-input">
<span class="input-label">{{'kFromDate'|translate}}:</span>
<input type="date" ng-model="$root.fromDate" max={{today}}>
diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html
index 36771e55..24df4b1e 100644
--- a/www/templates/events-modal.html
+++ b/www/templates/events-modal.html
@@ -1,7 +1,7 @@
<div ng-controller="EventModalCtrl">
<!-- style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;"-->
<ion-modal-view cache-view="false">
- <ion-content style="background-color:#000000" ng-cloak>
+ <ion-content style="background-color:#000000" ng-cloak class="notch-ready">
<!-- alarm frames in snapshot-->
diff --git a/www/templates/events-modalgraph.html b/www/templates/events-modalgraph.html
index 75f2ec15..dfc84bab 100644
--- a/www/templates/events-modalgraph.html
+++ b/www/templates/events-modalgraph.html
@@ -1,6 +1,6 @@
<div ng-controller="EventsModalGraphCtrl">
<ion-modal-view cache-view="false" style="width:80%;height:80%; top: 10%; left: 10%; right: 10%; bottom: 10%;">
- <ion-content ng-cloak on-double-tap="closeModal()" delegate-handle="eventgraph-modal-delegate">
+ <ion-content class="notch-ready" ng-cloak on-double-tap="closeModal()" delegate-handle="eventgraph-modal-delegate">
<div data-tap-disabled="true">
<canvas id="eventchart" width="auto" height="70%"></canvas>
</div>
diff --git a/www/templates/events-popover.html b/www/templates/events-popover.html
index 8ccc1c8f..923d693f 100644
--- a/www/templates/events-popover.html
+++ b/www/templates/events-popover.html
@@ -1,5 +1,5 @@
<ion-popover-view class="fit">
- <ion-content>
+ <ion-content class="notch-ready">
<div class="list" ng-click="popover.hide()">
<a class="item" ng-href="" ng-click="popover.hide();$state.go('app.events-date-time-filter');">{{'kFilterByDateTime'
| translate}}</a>
diff --git a/www/templates/events.html b/www/templates/events.html
index a2dec860..73b79fd0 100644
--- a/www/templates/events.html
+++ b/www/templates/events.html
@@ -24,7 +24,7 @@
</ion-header-bar>
</div>
<!-- collection repeat forces js scrolling, thing to remember -->
- <ion-content ng-cloak on-tap="tapped();" delegate-handle="mainScroll" mouse-wheel-scroll on-scroll="scrolling();">
+ <ion-content class="notch-ready" ng-cloak on-tap="tapped();" delegate-handle="mainScroll" mouse-wheel-scroll on-scroll="scrolling();" >
<ion-refresher pulling-text="Pull to refresh..." on-refresh="doRefresh()">
</ion-refresher>
<!-- needed for header-shrink so first item doesn't go below header-->
diff --git a/www/templates/eventserversettings.html b/www/templates/eventserversettings.html
index ea5080aa..13803b2a 100644
--- a/www/templates/eventserversettings.html
+++ b/www/templates/eventserversettings.html
@@ -8,7 +8,7 @@
<ion-nav-buttons side="right">
<button class="button button-clear" ng-click="saveItems()">{{'kSave'|translate}}</button>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<div class="list list-inset">
{{'kEventServerConfig1' | translate }}
</div>
diff --git a/www/templates/help.html b/www/templates/help.html
index 8a497c5e..1359dfa9 100644
--- a/www/templates/help.html
+++ b/www/templates/help.html
@@ -4,7 +4,7 @@
<button data-badge="{{$root.alarmCount}}" class="animated infinite tada button button-icon button-clear ion-ios-bell notification-badge"
ng-click="handleAlarms();" ng-if="$root.isAlarm"></button>
</ion-nav-buttons>
- <ion-content class="padding" delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content class="notch-ready" delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
<p>
<small>{{$root.appName}} v{{zmAppVersion}}</small>
</p>
diff --git a/www/templates/image-modal.html b/www/templates/image-modal.html
index c1e0e5e6..b5bdaf9b 100644
--- a/www/templates/image-modal.html
+++ b/www/templates/image-modal.html
@@ -1,5 +1,5 @@
<ion-modal-view cache-view="false" style="background-color:#444444">
- <ion-content ng-cloak on-double-tap="closeModal();" scroll="false">
+ <ion-content ng-cloak on-double-tap="closeModal();" scroll="false" class="notch-ready">
<div id="imagecontainer">
diff --git a/www/templates/important_message.html b/www/templates/important_message.html
index 35c449e8..835eb44c 100644
--- a/www/templates/important_message.html
+++ b/www/templates/important_message.html
@@ -2,7 +2,7 @@
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
</ion-nav-buttons>
- <ion-content class="pin-background">
+ <ion-content class="pin-background notch-ready">
<div style="margin-left:20px; margin-right:20px">
<center>
<br />
diff --git a/www/templates/invalidapi.html b/www/templates/invalidapi.html
index c73e8be7..1c5f8ddb 100644
--- a/www/templates/invalidapi.html
+++ b/www/templates/invalidapi.html
@@ -2,7 +2,7 @@
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
</ion-nav-buttons>
- <ion-content class="pin-background">
+ <ion-content class="pin-background notch-ready">
<div style="margin-left:20px; margin-right:20px">
<center>
<br />
diff --git a/www/templates/log.html b/www/templates/log.html
index 2884c4bb..ae534ab6 100644
--- a/www/templates/log.html
+++ b/www/templates/log.html
@@ -22,7 +22,7 @@
<a class="button button-icon icon ion-android-download" ng-href="" ng-click="downloadLogs()"> </a>
</div>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<!-- <h2> iCloud: </h2>
{{cloudString}}
diff --git a/www/templates/login.html b/www/templates/login.html
index 617b79f5..797fde37 100644
--- a/www/templates/login.html
+++ b/www/templates/login.html
@@ -8,7 +8,7 @@
<ion-nav-buttons side="right">
<button id = 'testaut_settings_save' class="button button-clear" ng-click="saveItems()">{{'kSave' | translate}}</button>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<div class="item item-text-wrap item-input-inset">
{{'kServerName' | translate }}:&nbsp;
<label class="item-input-wrapper">
diff --git a/www/templates/lowversion.html b/www/templates/lowversion.html
index 440406b7..3f6c72cc 100644
--- a/www/templates/lowversion.html
+++ b/www/templates/lowversion.html
@@ -1,5 +1,5 @@
<ion-view view-title="{{$root.appName}}" hide-nav-bar="true" hide-back-button="true" cache-view="false">
- <ion-content class="pin-background">
+ <ion-content class="pin-background notch-ready">
<div style="margin-left:20px; margin-right:20px">
<center>
<br />
diff --git a/www/templates/menu.html b/www/templates/menu.html
index 2a78bb6e..f71aba5c 100644
--- a/www/templates/menu.html
+++ b/www/templates/menu.html
@@ -14,7 +14,7 @@
<h1 class="title">{{'kMenuOptions'|translate}}</h1>
</button>
</ion-header-bar>
- <ion-content has-header="true" mouse-wheel-scroll>
+ <ion-content has-header="true" mouse-wheel-scroll class="notch-ready">
<!-- <ion-scroll scrollbar-y="false" style="height:100%" >-->
<ion-list>
<!--<ion-item ng-click="navigateView('app.montage')" menu-close>-->
diff --git a/www/templates/moment-mask.html b/www/templates/moment-mask.html
index 6493e4be..851be5ff 100644
--- a/www/templates/moment-mask.html
+++ b/www/templates/moment-mask.html
@@ -6,7 +6,7 @@
<button class="button button-icon icon ion-close" ng-click="cancelMask()"></button>
</div>
</ion-header-bar>
- <ion-content>
+ <ion-content class="notch-ready">
<div class="list">
<span ng-repeat="item in monitors">
diff --git a/www/templates/moment-popover.html b/www/templates/moment-popover.html
index 6d2485ca..5d6a87be 100644
--- a/www/templates/moment-popover.html
+++ b/www/templates/moment-popover.html
@@ -1,5 +1,5 @@
<ion-popover-view class="fit">
- <ion-content>
+ <ion-content class="notch-ready">
<div class="list" ng-click="popover.remove()">
<a class="item" ng-href="" ng-click="popover.remove();getMoments('StartTime');">
diff --git a/www/templates/moment.html b/www/templates/moment.html
index 9852b925..9a31a922 100644
--- a/www/templates/moment.html
+++ b/www/templates/moment.html
@@ -25,7 +25,7 @@
</div>
- <ion-content delegate-handle="moment-delegate" overflow-scroll="false" mouse-wheel-scroll style="background-color:#444444">
+ <ion-content delegate-handle="moment-delegate" overflow-scroll="false" mouse-wheel-scroll class="notch-ready" style="background-color:#444444">
<div ng-if="areImagesLoading" class="screen-note">&nbsp;{{ 'kArrangingImages' | translate }}...&nbsp;</div>
diff --git a/www/templates/monitors-modal.html b/www/templates/monitors-modal.html
index 0ead585c..84c9049a 100644
--- a/www/templates/monitors-modal.html
+++ b/www/templates/monitors-modal.html
@@ -1,6 +1,6 @@
<div ng-controller="MonitorModalCtrl" ng-cloak>
<ion-modal-view cache-view="false" style="background-color:#444444">
- <ion-content ng-cloak on-double-tap="closeModal();" scroll="false">
+ <ion-content ng-cloak on-double-tap="closeModal();" scroll="false" class="notch-ready">
<div id="imagecontainer">
<ion-scroll on-scroll="checkZoom()" delegate-handle="imgscroll" has-bouncing=false min-zoom=1
diff --git a/www/templates/monitors.html b/www/templates/monitors.html
index 4770b139..39674023 100644
--- a/www/templates/monitors.html
+++ b/www/templates/monitors.html
@@ -5,7 +5,7 @@
<button data-badge="{{$root.alarmCount}}" class="animated infinite tada button button-icon button-clear ion-ios-bell notification-badge"
ng-click="handleAlarms();" ng-if="$root.isAlarm"></button>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<ion-refresher pulling-text="Pull to reload Monitors..." spinner="bubbles" on-refresh="doRefresh()">
</ion-refresher>
<div style="float:right;margin-top:3px;margin-right:8px;">
diff --git a/www/templates/montage-history.html b/www/templates/montage-history.html
index 82fb70f3..62b7e2a6 100644
--- a/www/templates/montage-history.html
+++ b/www/templates/montage-history.html
@@ -13,7 +13,7 @@
ng-click="handleAlarms();" ng-if="$root.isAlarm"></button>
</ion-nav-buttons>
<ion-content has-bouncing="false" style="background-color:#444444" delegate-handle="none" overflow-scroll="false"
- mouse-wheel-scroll>
+ mouse-wheel-scroll class="notch-ready">
<div class="timeline_text"> {{'kFrom' | translate}}:{{prettifyDateTimeFirst(datetimeValueFrom.value)}}
({{humanizeTime(datetimeValueFrom.value)}})
<div ng-if="!isMultiPort">({{'kChromeMax' | translate}})</div>
diff --git a/www/templates/montage.html b/www/templates/montage.html
index 360e4a4a..62afc9f5 100644
--- a/www/templates/montage.html
+++ b/www/templates/montage.html
@@ -35,7 +35,7 @@
</button>
</ion-nav-buttons>
<ion-content ng-cloak has-bouncing="false" style="background-color:#444444" delegate-handle="montage-delegate"
- overflow-scroll="false" padding="false">
+ overflow-scroll="false" padding="false" class="notch-ready">
<div ng-if="areImagesLoading" class="screen-note">&nbsp;{{ 'kArrangingImages' | translate }}...&nbsp;</div>
diff --git a/www/templates/news.html b/www/templates/news.html
index 2512bb4c..4cb13bb9 100644
--- a/www/templates/news.html
+++ b/www/templates/news.html
@@ -4,7 +4,7 @@
<button data-badge="{{$root.alarmCount}}" class="animated infinite tada button button-icon button-clear ion-ios-bell notification-badge"
ng-click="handleAlarms();" ng-if="$root.isAlarm"></button>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<div class="list">
diff --git a/www/templates/reorder-modal.html b/www/templates/reorder-modal.html
index 8d31ce22..c5f599ff 100644
--- a/www/templates/reorder-modal.html
+++ b/www/templates/reorder-modal.html
@@ -8,7 +8,7 @@
<button class="button button-small" ng-click="cancelReorder()">{{'kButtonCancel'|translate}}</button>
</div>
</ion-header-bar>
- <ion-content>
+ <ion-content class="notch-ready">
<div class="list">
<span ng-repeat="item in copyMontage">
<a ng-class="{ 'item item-avatar item-icon-right' : item.Monitor.listDisplay == 'show', 'item item-avatar item-icon-right eye-background-red' : item.Monitor.listDisplay!='show' }"
diff --git a/www/templates/state.html b/www/templates/state.html
index bdad22d0..7954c7e1 100644
--- a/www/templates/state.html
+++ b/www/templates/state.html
@@ -4,7 +4,7 @@
<button data-badge="{{$root.alarmCount}}" class="animated infinite tada button button-icon button-clear ion-ios-bell notification-badge"
ng-click="handleAlarms();" ng-if="$root.isAlarm"></button>
</ion-nav-buttons>
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll >
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready" >
<ion-refresher pulling-text="{{'kPullToReload' | translate}}..." spinner="bubbles" on-refresh="doRefresh()"></ion-refresher>
<ion-item>
diff --git a/www/templates/timeline-modal.html b/www/templates/timeline-modal.html
index 5b6c8694..ddbef952 100644
--- a/www/templates/timeline-modal.html
+++ b/www/templates/timeline-modal.html
@@ -1,6 +1,6 @@
<!-- style="width: 90%; height: 90%; top: 5%; left: 5%; right: 5%; bottom: 5%;"-->
<ion-modal-view cache-view="false">
- <ion-content ng-cloak on-double-tap="closeModal()" delegate-handle="timeline-modal-delegate">
+ <ion-content ng-cloak on-double-tap="closeModal()" delegate-handle="timeline-modal-delegate" class="notch-ready">
<div ng-controller="TimelineModalCtrl">
<br />
<div class="item item-divider">{{mName}}&nbsp;
diff --git a/www/templates/timeline-popover.html b/www/templates/timeline-popover.html
index e43e0605..f1a19d9a 100644
--- a/www/templates/timeline-popover.html
+++ b/www/templates/timeline-popover.html
@@ -1,5 +1,5 @@
<ion-popover-view class="fit">
- <ion-content>
+ <ion-content class="notch-ready">
<div class="list" ng-click="popover.hide()">
diff --git a/www/templates/timeline.html b/www/templates/timeline.html
index 73a6c7c5..ca9f31f5 100644
--- a/www/templates/timeline.html
+++ b/www/templates/timeline.html
@@ -17,7 +17,7 @@
<button class="button button-icon button-clear ion-log-out" ng-click="zoom(0.2)"></button>&nbsp;-->
</ion-nav-buttons>
<!--<ion-content data-tap-disabled="true">-->
- <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll>
+ <ion-content delegate-handle="none" overflow-scroll="false" mouse-wheel-scroll class="notch-ready">
<div style="padding-left:15px; font-size:10px; color:grey">
{{prettify(fromDate)}} - {{prettify(toDate)}} &nbsp;{{tzAbbr}}&nbsp; ({{'kTimelineOnlyDisplaying1' |
translate:translationData}})
diff --git a/www/templates/wizard.html b/www/templates/wizard.html
index c929f877..c6dc957a 100644
--- a/www/templates/wizard.html
+++ b/www/templates/wizard.html
@@ -2,7 +2,7 @@
<ion-nav-buttons side="left">
<button class="button button-icon button-clear ion-navicon" ng-click="openMenu()"></button>
</ion-nav-buttons>
- <ion-content class="padding" overflow-scroll="false">
+ <ion-content class="notch-ready" overflow-scroll="false">
<wizard on-finish="finishedWizard()">
<!-- portal url -->
<wz-step wz-title="1" canexit="exitPortal">
diff --git a/www/templates/zm-portal-login.html b/www/templates/zm-portal-login.html
index c3431cd4..fdddd042 100644
--- a/www/templates/zm-portal-login.html
+++ b/www/templates/zm-portal-login.html
@@ -1,5 +1,5 @@
<ion-view view-title="{{$root.appName}}" hide-nav-bar="true" hide-back-button="true" cache-view="false">
- <ion-content class="pin-background" scroll="false">
+ <ion-content class="pin-background notch-ready" scroll="false">
<div style="margin-left:20px; margin-right:20px">
<center>
<br />