From 304ec3a2ed6ec5de921894aa1bc853548b0fcfb3 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Mon, 22 Oct 2018 09:12:18 -0400 Subject: #725 also added push handler in portal if broadcast before view is ready. Removed from login as it may come here due to auth fail --- www/js/EventServer.js | 8 ++++++-- www/js/LoginCtrl.js | 6 +++--- www/js/PortalLoginCtrl.js | 33 +++++++++++++++++++++++++++++++-- 3 files changed, 40 insertions(+), 7 deletions(-) (limited to 'www/js') diff --git a/www/js/EventServer.js b/www/js/EventServer.js index da1e07a3..a67d5426 100644 --- a/www/js/EventServer.js +++ b/www/js/EventServer.js @@ -617,8 +617,12 @@ angular.module('zmApp.controllers') // keep this emit not broadcast // see Portal latch for reason - NVRDataModel.debug ("EventServer: broadvasting process-push"); - $rootScope.$broadcast('process-push'); + //https://stackoverflow.com/a/22651128/1361529 + $timeout ( function () { + NVRDataModel.debug ("EventServer: broadcasting process-push"); + $rootScope.$broadcast('process-push'); + },100); + } else // app is foreground { diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js index 568b67ed..0585f3c3 100644 --- a/www/js/LoginCtrl.js +++ b/www/js/LoginCtrl.js @@ -34,14 +34,14 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r } $scope.$on ( "process-push", function () { - NVRDataModel.debug (">> LoginCtrl: push handler"); - var s = NVRDataModel.evaluateTappedNotification(); + NVRDataModel.debug (">> LoginCtrl: push handler. Not processing push, because you might be here due to login failure"); + /*var s = NVRDataModel.evaluateTappedNotification(); NVRDataModel.debug("tapped Notification evaluation:"+ JSON.stringify(s)); $ionicHistory.nextViewOptions({ disableAnimate:true, disableBack: true }); - $state.go(s[0],s[1],s[2]); + $state.go(s[0],s[1],s[2]);*/ }); //---------------------------------------------------------------- diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js index 9789ed56..1b2032b2 100644 --- a/www/js/PortalLoginCtrl.js +++ b/www/js/PortalLoginCtrl.js @@ -7,12 +7,25 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic var broadcastHandles = []; + var processPush = false; $scope.$on('$ionicView.beforeLeave', function () { - //processPush = false; + processPush = false; // NVRDataModel.debug ("BeforeEnter in Portal: setting ProcessPush to false"); }); + + + + + $scope.$on ( "process-push", function () { + processPush = true; + + NVRDataModel.debug (">> PortalLogin: push handler, marking to resolve later"); + + }); + + $scope.$on('$ionicView.beforeLeave', function () { NVRDataModel.debug("Portal: Deregistering broadcast handles"); for (var i = 0; i < broadcastHandles.length; i++) { @@ -372,11 +385,27 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic //console.log ("NOTIFICATION TAPPED INSIDE CHECK IS "+$rootScope.tappedNotification); var statetoGo = $rootScope.lastState ? $rootScope.lastState : 'app.montage'; // NVRDataModel.debug("logging state transition"); - NVRDataModel.debug("Transitioning state to: " + + + if (!processPush) { + NVRDataModel.debug("Transitioning state to: " + statetoGo + " with param " + JSON.stringify($rootScope.lastStateParam)); $state.go(statetoGo, $rootScope.lastStateParam); return; + } + else { + NVRDataModel.debug ("Deferred handling of push:"); + processPush = false; + var s = NVRDataModel.evaluateTappedNotification(); + NVRDataModel.debug("tapped Notification evaluation:"+ JSON.stringify(s)); + $ionicHistory.nextViewOptions({ + disableAnimate:true, + disableBack: true + }); + $state.go(s[0],s[1],s[2]); + return; + } + }, -- cgit v1.2.3