diff options
Diffstat (limited to 'www/js')
| -rw-r--r-- | www/js/ImportantMessageCtrl.js | 3 | ||||
| -rw-r--r-- | www/js/LoginCtrl.js | 68 | ||||
| -rw-r--r-- | www/js/MenuController.js | 49 | ||||
| -rw-r--r-- | www/js/NVR.js | 24 | ||||
| -rw-r--r-- | www/js/PortalLoginCtrl.js | 86 | ||||
| -rwxr-xr-x | www/js/app.js | 6 |
6 files changed, 171 insertions, 65 deletions
diff --git a/www/js/ImportantMessageCtrl.js b/www/js/ImportantMessageCtrl.js index 218ec417..a496860e 100644 --- a/www/js/ImportantMessageCtrl.js +++ b/www/js/ImportantMessageCtrl.js @@ -13,9 +13,6 @@ angular.module('zmApp.controllers').controller('zmApp.ImportantMessageCtrl', ['$ $scope.$on('$ionicView.enter', function () { // console.log("**VIEW ** LowVersion Ctrl Entered"); $ionicSideMenuDelegate.canDragContent(true); - $scope.requiredVersion = zm.minAppVersion; - $scope.currentVersion = $stateParams.ver; - $scope.recommendedVersion = zm.recommendedAppVersion; }); diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js index 9e369f02..ba782bb2 100644 --- a/www/js/LoginCtrl.js +++ b/www/js/LoginCtrl.js @@ -235,7 +235,19 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r //------------------------------------------------------------------------ $scope.$on('$ionicView.beforeEnter', function () { - + var ld = NVR.getLogin(); + if (ld.isKiosk) { + NVR.log ("You are in kiosk mode, cannot show login screen"); + $ionicHistory.nextViewOptions({ + disableAnimate:true, + disableBack: true + }); + $rootScope.importantMessageHeader = $translate.instant('kKioskErrorHeader'); + $rootScope.importantMessageSummary = $translate.instant('kKioskErrorMessage'); + $state.go('app.importantmessage'); + return; + } + $scope.$on ( "process-push", function () { NVR.debug (">> LoginCtrl: push handler. Not processing push, because you might be here due to login failure"); /*var s = NVR.evaluateTappedNotification(); @@ -256,7 +268,7 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r //console.log("**VIEW ** LoginCtrl Entered"); NVR.setAwake(false); //$scope.basicAuthUsed = false; - var ld = NVR.getLogin(); + oldName = ld.serverName; availableServers = Object.keys(NVR.getServerGroups()); @@ -388,6 +400,58 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r }; + $scope.kioskPinConfig = function () { + + $scope.data = {}; + // An elaborate, custom popup + var myPopup = $ionicPopup.show({ + template: '<small>'+$translate.instant('kKioskPassword')+'</small><input type="password" ng-model="data.p1"><br/><small>'+$translate.instant('kKioskPasswordConfirm')+'</small><input type="password" ng-model="data.p2">', + title: $translate.instant('kPassword'), + scope: $scope, + buttons: [ + { text: $translate.instant('kButtonCancel'), + type: 'button-assertive', + onTap: function (e) { + $scope.loginData.isKiosk = false; + } + }, + { + text: '<b>'+$translate.instant('kButtonSave')+'</b>', + type: 'button-positive', + onTap: function(e) { + if (!$scope.data.p1) { + //don't allow the user to close unless he enters wifi password + e.preventDefault(); + } else { + if ($scope.data.p1 == $scope.data.p2) { + NVR.log ("Kiosk code match"); + $scope.loginData.kioskPassword = $scope.data.p1; + $scope.loginData.isKiosk = true; + NVR.setLogin($scope.loginData); + $ionicHistory.nextViewOptions({ + disableBack: true + }); + $state.go('app.montage'); + return; + } + else { + $ionicLoading.show({ + template: $translate.instant('kBannerPinMismatch') + "...", + noBackdrop: true, + duration: 1500 + }); + NVR.log ("Kiosk code mistmatch"); + $scope.loginData.isKiosk = false; + e.preventDefault(); + } + + } + } + } + ] + }); + }; + function desktopPinConfig() { $scope.data = {}; diff --git a/www/js/MenuController.js b/www/js/MenuController.js index 48ee5d0d..590b927d 100644 --- a/www/js/MenuController.js +++ b/www/js/MenuController.js @@ -45,6 +45,55 @@ angular.module('zmApp.controllers').controller('MenuController', ['$scope', '$io }; + $scope.exitKiosk = function() { + $scope.data = {}; + // An elaborate, custom popup + var myPopup = $ionicPopup.show({ + template: '<small>'+$translate.instant('kKioskPassword')+'</small><input type="password" ng-model="data.p1"><br/><small>', + title: $translate.instant('kPassword'), + scope: $scope, + buttons: [ + { text: 'Cancel', + type: 'button-assertive', + onTap: function (e) { + $scope.loginData.isKiosk = false; + } + }, + { + text: '<b>'+$translate.instant('kButtonSave')+'</b>', + type: 'button-positive', + onTap: function(e) { + if (!$scope.data.p1) { + //don't allow the user to close unless he enters wifi password + e.preventDefault(); + } else { + var ld = NVR.getLogin(); + if ($scope.data.p1 == ld.kioskPassword) { + ld.isKiosk = false; + NVR.setLogin(ld); + } + else { + $ionicLoading.show({ + template: $translate.instant('kBannerPinMismatch') + "...", + noBackdrop: true, + duration: 1500 + }); + NVR.log ("Kiosk code mistmatch"); + $scope.loginData.isKiosk = false; + e.preventDefault(); + } + + } + } + } + ] + }); + + + + + }; + function switchToServer(s) { $rootScope.alarmCount = 0; diff --git a/www/js/NVR.js b/www/js/NVR.js index 3a2b2dae..d9991b38 100644 --- a/www/js/NVR.js +++ b/www/js/NVR.js @@ -21,7 +21,7 @@ angular.module('zmApp.controllers') DO NOT TOUCH zmAppVersion It is changed by sync_version.sh */ - var zmAppVersion = "1.3.066"; + var zmAppVersion = "1.3.067"; var isBackground = false; var justResumed = false; var timeSinceResumed = -1; @@ -201,7 +201,9 @@ angular.module('zmApp.controllers') 'accessTokenExpires': '', 'refreshTokenExpires': '', 'accessToken': '', - 'refreshToken': '' + 'refreshToken': '', + 'isKiosk': false, + 'kioskPassword': '', }; @@ -916,6 +918,8 @@ angular.module('zmApp.controllers') loginData = angular.copy(newLogin); + $rootScope.LoginData = loginData; + serverGroupList[loginData.serverName] = angular.copy(loginData); var ct = CryptoJS.AES.encrypt(JSON.stringify(serverGroupList), zm.cipherKey).toString(); @@ -1449,6 +1453,11 @@ angular.module('zmApp.controllers') } + if (typeof loginData.isKiosk == 'undefined') { + loginData.isKiosk = false; + + } + loginData.canSwipeMonitors = true; loginData.forceImageModePath = false; @@ -1552,6 +1561,15 @@ angular.module('zmApp.controllers') debug("Inside evaluateNotifications"); + if ($rootScope.LoginData.isKiosk) { + NVR.log ('>>> evaluation: You are in kiosk mode, forcing transition to montage'); + state = "app.montage"; + $rootScope.tappedNotification = 0; + return [state, stateParams1, stateParams2]; + + + } + if ($rootScope.tappedNotification == 2) { // url launch debug("Came via app url launch with mid=" + $rootScope.tappedMid); debug("Came via app url launch with eid=" + $rootScope.tappedEid); @@ -1952,7 +1970,7 @@ angular.module('zmApp.controllers') if (window.cordova) setCordovaHttpOptions(); - + $rootScope.LoginData = loginData; $rootScope.$broadcast('init-complete'); }); diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js index 35572166..17715238 100644 --- a/www/js/PortalLoginCtrl.js +++ b/www/js/PortalLoginCtrl.js @@ -289,44 +289,23 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic var ld = NVR.getLogin(); if (NVR.versionCompare(data, zm.minAppVersion) == -1 && data != "0.0.0") { - $state.go('app.lowversion', { - "ver": data - }); - return; - } - - if (NVR.versionCompare(data, zm.recommendedAppVersion) == -1 && data != "0.0.0") { - - NVR.hrsSinceChecked("zmVersion") - .then(function (val) { - NVR.debug("ZM Version nag: Checking " + val + " with " + zm.zmVersionCheckNag); - if (val >= zm.zmVersionCheckNag && 0) { - NVR.updateHrsSinceChecked("zmVersion"); - $state.go('app.importantmessage', { - "ver": data - }); - return; - } + $rootScope.importantMessageHeader = $translate.instant('kImportant'); + $rootScope.importantMessageSummary = $translate.instant('kVersionIncompatible', {currentVersion: data, minVersion: zm.minAppVersion}); - }); + $state.go('app.importantmessage'); + return; } - /*if (data == "0.0.0") - { - - NVR.log("2nd Auth:API getVersion succeeded but returned 0.0.0 " + JSON.stringify(data)); - NVR.displayBanner('error', ['ZoneMinder authentication failed']); - $state.go("login", - { - "wizard": false - }); - return; - }*/ - // coming here means continue - //EventServer.init(); + var statetoGo = $rootScope.lastState ? $rootScope.lastState : 'app.montage'; + if ($rootScope.LoginData.isKiosk) { + NVR.log ('>>> You are in kiosk mode'); + statetoGo = 'app.montage'; + $rootScope.lastStateParam=''; + + } //NVR.debug ("logging state transition"); NVR.debug("2nd Auth: Transitioning state to: " + statetoGo + " with param " + JSON.stringify($rootScope.lastStateParam)); @@ -384,35 +363,22 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic NVR.log("Got API version: " + data); $rootScope.apiVersion = data; var ld = NVR.getLogin(); + console.log (">>>>>>>> COMPARING "+data+" to "+zm.minAppVersion); if (NVR.versionCompare(data, zm.minAppVersion) == -1 && data != "0.0.0") { - $state.go('app.lowversion', { - "ver": data + $rootScope.importantMessageHeader = $translate.instant('kImportant'); + $rootScope.importantMessageSummary = $translate.instant('kVersionIncompatible', {currentVersion: data, minVersion: zm.minAppVersion}); + $ionicHistory.nextViewOptions({ + disableAnimate:true, + disableBack: true }); - return; - } - - if (NVR.versionCompare(data, zm.recommendedAppVersion) == -1 && data != "0.0.0") { - - NVR.hrsSinceChecked("zmVersion") - .then(function (val) { - - NVR.debug("ZM Version nag: Checking " + val + " with " + zm.zmVersionCheckNag); - if (val >= zm.zmVersionCheckNag && 0) { - //https://api.github.com/repos/zoneminder/zoneminder/releases/latest - //tag_name - NVR.updateHrsSinceChecked("zmVersion"); - $state.go('app.importantmessage', { - "ver": data - }); - return; - - } - - }); + $state.go('app.importantmessage'); + return; } + + /*if (data == "0.0.0") { @@ -459,9 +425,19 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic if (!processPush) { alreadyTransitioned = true; + + if ($rootScope.LoginData.isKiosk) { + NVR.log ('>>> You are in kiosk mode'); + statetoGo = 'app.montage'; + $rootScope.lastStateParam=''; + + } + NVR.debug("Transitioning state to: " + statetoGo + " with param " + JSON.stringify($rootScope.lastStateParam)); + + $state.go(statetoGo, $rootScope.lastStateParam); return; } diff --git a/www/js/app.js b/www/js/app.js index 206f5e16..7c2aeb34 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -40,7 +40,7 @@ angular.module('zmApp', [ .constant('zm', { minAppVersion: '1.28.107', // if ZM is less than this, the app won't work - recommendedAppVersion: '1.32.0', + //minAppVersion:'1.44', minEventServerVersion: '2.4', castAppId: 'BA30FB4C', alarmFlashTimer: 20000, // time to flash alarm @@ -1887,6 +1887,8 @@ angular.module('zmApp', [ NVR.debug("last state=" + $rootScope.lastState + " param=" + $rootScope.lastStateParam); + + } @@ -2409,7 +2411,7 @@ angular.module('zmApp', [ }, cache: false, - url: "/importantmessage/:ver", + url: "/importantmessage", templateUrl: "templates/important_message.html", controller: 'zmApp.ImportantMessageCtrl', |
