diff options
38 files changed, 76 insertions, 37 deletions
diff --git a/etc/js/ion-pullup.js b/etc/js/ion-pullup.js index 9c0b2470..723456f2 100644 --- a/etc/js/ion-pullup.js +++ b/etc/js/ion-pullup.js @@ -212,7 +212,12 @@ angular.module('ionic-pullup', []) } }; + function cleanup() { + $window.removeEventListener('orientationchange', updateUI); + deregisterWatch(); + } var deregisterWatch = $scope.$watch('state', function (newState, oldState) { + if (oldState === undefined || newState == oldState) return; switch (newState) { case FooterState.COLLAPSED: @@ -228,7 +233,7 @@ angular.module('ionic-pullup', []) $rootScope.$broadcast('ionPullUp:tap', $scope.state, footer.defaultBehavior); }); - $scope.$on('$destroy', deregisterWatch); + $scope.$on('$destroy', cleanup); $ionicPlatform.ready(function () { $window.addEventListener('orientationchange', updateUI); 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 }}: <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"> {{ 'kArrangingImages' | translate }}... </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"> {{ 'kArrangingImages' | translate }}... </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}} 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> --> </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)}} {{tzAbbr}} ({{'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 /> |
