summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/ImportantMessageCtrl.js3
-rw-r--r--www/js/LoginCtrl.js68
-rw-r--r--www/js/MenuController.js49
-rw-r--r--www/js/NVR.js24
-rw-r--r--www/js/PortalLoginCtrl.js86
-rwxr-xr-xwww/js/app.js6
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',