diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2018-01-10 14:34:56 -0500 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2018-01-10 14:34:56 -0500 |
| commit | 8623646c266eb9e99103c9696c09456a42ac0060 (patch) | |
| tree | bd08963c93a1b9822fe3df11220a3bb116218485 /www | |
| parent | d288da87ccc65e2ef21dd9189ac14452077cf53e (diff) | |
#499 iOS related changes, also handled case where push broadcast can be called before PortalLogin is done - needs to be handled _after_ auth
Diffstat (limited to 'www')
| -rw-r--r-- | www/js/EventModalCtrl.js | 12 | ||||
| -rw-r--r-- | www/js/EventServer.js | 23 | ||||
| -rw-r--r-- | www/js/PortalLoginCtrl.js | 116 | ||||
| -rwxr-xr-x | www/js/app.js | 3 | ||||
| -rw-r--r-- | www/templates/events-modal.html | 1 |
5 files changed, 147 insertions, 8 deletions
diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js index 6f014de2..86f2b233 100644 --- a/www/js/EventModalCtrl.js +++ b/www/js/EventModalCtrl.js @@ -134,7 +134,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro { NVRDataModel.debug("EventModalCtrl: Re-login detected, resetting everything & re-generating connkey"); - NVRDataModel.stopNetwork("Auth-Success inside EventModalCtrl"); + // NVRDataModel.stopNetwork("Auth-Success inside EventModalCtrl"); $scope.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); //console.log ("********* OFFSET FROM AUTH SUCC"); $timeout(function() @@ -981,7 +981,15 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro { var cv = document.getElementById("eventchart"); - var ctx = cv.getContext("2d"); + var ctx; + try { + ctx = cv.getContext("2d"); + } + catch (e) { + NVRDataModel.debug ("2D Context ERROR, maybe live play"); + + } + frameoptions = { responsive: true, diff --git a/www/js/EventServer.js b/www/js/EventServer.js index c09ad7ee..a63ff176 100644 --- a/www/js/EventServer.js +++ b/www/js/EventServer.js @@ -112,6 +112,8 @@ angular.module('zmApp.controllers') //if (!$rootScope.apnsToken) if (!pushInited) pushInit(); + console.log ("WS TYPEOF="+ typeof ws); + // console.log ("WS="+JSON.stringify(ws)); if (typeof ws !== 'undefined') { NVRDataModel.debug("websocket already initialized ?!?"); @@ -583,14 +585,29 @@ angular.module('zmApp.controllers') // set tappedMid to monitor //*** PUSH DATA>>>>{"sound":"blop","message":"Alarms: Basement (2854) ","additionalData":{"mid":"2","coldstart":false,"collapse_key":"do_not_collapse","foreground":false}} - if (data.additionalData.dismissed != undefined || data.additionalData.coldstart == true) // user tapped on notification + if (data.additionalData.dismissed != undefined || data.additionalData.coldstart == true || $rootScope.platformOS == 'ios') // user tapped on notification + // in iOS case, since content-av is not there this notification won't be called unless you tap { NVRDataModel.debug("Notification Tapped"); $rootScope.alarmCount = "0"; $rootScope.isAlarm = 0; $rootScope.tappedNotification = 1; - var mid = data.additionalData.mid; - var eid = data.additionalData.eid; + + var mid; + var eid; + + // we are using FCM on IOS too + /* if ($rootScope.platformOS == 'ios') { + mid = data.additionalData.gcm.notification.mid; + eid = data.additionalData.gcm.notification.eid; + + } + else {*/ + + mid = data.additionalData.mid; + eid = data.additionalData.eid; + // } + // if Multiple mids, take the first one diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js index 838d107e..5138fcd6 100644 --- a/www/js/PortalLoginCtrl.js +++ b/www/js/PortalLoginCtrl.js @@ -6,10 +6,18 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionicPlatform', '$scope', 'zm', 'NVRDataModel', '$ionicSideMenuDelegate', '$rootScope', '$http', '$q', '$state', '$ionicLoading', '$ionicPopover', '$ionicScrollDelegate', '$ionicModal', '$timeout', 'zmAutoLogin', '$ionicHistory', 'EventServer', '$translate', function($ionicPlatform, $scope, zm, NVRDataModel, $ionicSideMenuDelegate, $rootScope, $http, $q, $state, $ionicLoading, $ionicPopover, $ionicScrollDelegate, $ionicModal, $timeout, zmAutoLogin, $ionicHistory, EventServer, $translate) { + var processPush = false; + + $scope.$on ('$ionicView.beforeEnter', function() { + processPush = false; + NVRDataModel.debug ("BeforeEnter in Portal: setting ProcessPush to false"); + }); + $scope.$on('$ionicView.enter', function() { + NVRDataModel.debug("Inside Portal login Enter handler"); loginData = NVRDataModel.getLogin(); @@ -267,6 +275,108 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic return (d.promise); } + + $rootScope.$on("process-push", function () { + NVRDataModel.debug("*** PROCESS PUSH HANDLER CALLED INSIDE PORTAL LOGIN, setting ProcessPush to true"); + processPush = true; + + + }); + + function evaluateTappedNotification() + { + var ld = NVRDataModel.getLogin(); + processPush = false; + + if ($rootScope.tappedNotification == 2) { // url launch + NVRDataModel.debug("Came via app url launch with mid="+$rootScope.tappedMid); + NVRDataModel.debug("Came via app url launch with eid="+$rootScope.tappedEid); + $rootScope.tappedNotification = 0; + $ionicHistory.nextViewOptions( + { + disableBack: true + }); + + if (parseInt($rootScope.tappedMid) > 0) + { + NVRDataModel.debug("Going to live view "); + $state.go("app.monitors", + {}, + { + reload: true + }); + return; + + } + + else if (parseInt($rootScope.tappedEid) > 0) { + NVRDataModel.debug("Going to events with EID=" + $rootScope.tappedEid); + $state.go("app.events", + { + //"id": $rootScope.tappedEid, + "id": 0, + "playEvent": true + }, + { + reload: true + }); + return; + } + // go with monitor first, then event - just because I feel like ;) + + + } + else if ($rootScope.tappedNotification == 1) // push + { + + + NVRDataModel.log("Came via push tap. onTapScreen=" + ld.onTapScreen); + $rootScope.pushOverride = true; + //console.log ("***** NOTIFICATION TAPPED "); + $rootScope.tappedNotification = 0; + $ionicHistory.nextViewOptions( + { + disableBack: true + }); + + if (ld.onTapScreen == $translate.instant('kTapMontage')) + { + NVRDataModel.debug("Going to montage"); + $state.go("app.montage", + {}, + { + reload: true + }); + + return; + } + else if (ld.onTapScreen == $translate.instant('kTapEvents')) + { + NVRDataModel.debug("Going to events"); + $state.go("app.events", + { + "id": 0, + "playEvent": false + }, + { + reload: true + }); + return; + } + else // we go to live + { + NVRDataModel.debug("Going to live view "); + $state.go("app.monitors", + {}, + { + reload: true + }); + return; + } + } + + } + function unlock(idVerified) @@ -339,7 +449,7 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic NVRDataModel.getKeyConfigParams(1); NVRDataModel.getTimeZone(); EventServer.refresh(); - if ($rootScope.tappedNotification == 0) + if (!processPush) { //console.log ("NOTIFICATION TAPPED INSIDE CHECK IS "+$rootScope.tappedNotification); var statetoGo = $rootScope.lastState ? $rootScope.lastState : 'app.montage'; @@ -351,8 +461,8 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic return; } - //else - // evaluateTappedNotification(); + else + evaluateTappedNotification(); }, diff --git a/www/js/app.js b/www/js/app.js index 765b765e..469c1db6 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -915,6 +915,7 @@ angular.module('zmApp', [ NVRDataModel.log("Came via push tap. onTapScreen=" + ld.onTapScreen); + $rootScope.pushOverride = true; //console.log ("***** NOTIFICATION TAPPED "); $rootScope.tappedNotification = 0; $ionicHistory.nextViewOptions( @@ -1984,6 +1985,8 @@ angular.module('zmApp', [ NVRDataModel.setBackground(true); NVRDataModel.setJustResumed(true); // used for window stop + EventServer.disconnect(); + NVRDataModel.log("ROOT APP:App is going into background"); $interval.cancel($rootScope.eventQueryInterval); diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html index bc0a33e5..c838f128 100644 --- a/www/templates/events-modal.html +++ b/www/templates/events-modal.html @@ -99,6 +99,7 @@ </ion-content> </ion-modal-view> + <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> |
