summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2019-08-11 17:12:52 -0400
committerPliable Pixels <pliablepixels@gmail.com>2019-08-11 17:12:52 -0400
commit5a81200bd99bd176a303d5ee05359d304fa499b8 (patch)
treeddca239b523614b1174340599e6769dd2addbcd6
parentb36c596f4350ba7e8772044c6601ca5404de1dde (diff)
#842 - my code is a huge ness.
-rw-r--r--package.json4
-rw-r--r--www/js/LoginCtrl.js12
-rw-r--r--www/js/MenuController.js4
-rw-r--r--www/js/NVR.js37
-rw-r--r--www/js/PortalLoginCtrl.js7
-rwxr-xr-xwww/js/app.js34
6 files changed, 80 insertions, 18 deletions
diff --git a/package.json b/package.json
index 6268a446..36f7119e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "zmninjapro",
"description": "Home security mobile app for ZoneMinder",
- "version": "1.3.074",
+ "version":"1.3.074",
"displayName": "zmNinja",
"author": "Pliable Pixels",
"license": "custom see LICENSE.md",
@@ -192,4 +192,4 @@
]
}
}
-} \ No newline at end of file
+}
diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js
index 55d384e2..d4b6b601 100644
--- a/www/js/LoginCtrl.js
+++ b/www/js/LoginCtrl.js
@@ -817,6 +817,7 @@ function mobilePinConfig () {
}
+
zmAutoLogin.doLogin("<button class='button button-clear' style='line-height: normal; min-height: 0; min-width: 0; color:#fff;' ng-click='$root.cancelAuth()'><i class='ion-close-circled'></i>&nbsp;" + $translate.instant('kAuthenticating') + "...</button>")
// Do the happy menu only if authentication works
// if it does not work, there is an emitter for auth
@@ -834,13 +835,15 @@ function mobilePinConfig () {
if ($scope.loginData.serverName != NVR.getLogin().serverName) {
NVR.debug(">>> Server information has changed, likely a fallback took over!");
$scope.loginData = NVR.getLogin();
- apiurl = $scope.loginData.apiurl + '/host/getVersion.json?'+$rootScope.authSession;
+
portalurl = $scope.loginData.url + '/index.php';
}
// possible image digits changed between servers
NVR.getKeyConfigParams(0);
-
+ console.log ('In loginCtrl, token is '+$rootScope.authSession)
+ apiurl = $scope.loginData.apiurl + '/host/getVersion.json?'+$rootScope.authSession;
+
NVR.log("Validating APIs at " + apiurl);
$http.get(apiurl)
.then(function (data) {
@@ -879,6 +882,11 @@ function mobilePinConfig () {
},
function (error) {
+
+ if ($rootScope.userCancelledAuth) {
+ return;
+ }
+
NVR.displayBanner('error', [$translate.instant('kBannerAPICheckFailed'), $translate.instant('kBannerPleaseCheck')]);
NVR.log("API login error " + JSON.stringify(error));
diff --git a/www/js/MenuController.js b/www/js/MenuController.js
index 8496acff..318e4d15 100644
--- a/www/js/MenuController.js
+++ b/www/js/MenuController.js
@@ -324,6 +324,10 @@ angular.module('zmApp.controllers').controller('MenuController', ['$scope', '$io
},
function (error) {
+
+ if ($rootScope.userCancelledAuth) {
+ return;
+ }
NVR.displayBanner('error', [$translate.instant('kBannerAPICheckFailed'), $translate.instant('kBannerPleaseCheck')]);
NVR.log("API login error " + JSON.stringify(error));
diff --git a/www/js/NVR.js b/www/js/NVR.js
index 0f5a0656..68d90ab8 100644
--- a/www/js/NVR.js
+++ b/www/js/NVR.js
@@ -399,7 +399,9 @@ angular.module('zmApp.controllers')
var httpDelay = loginData.enableSlowLoading ? zm.largeHttpTimeout : zm.httpTimeout;
- str = $translate.instant('kAuthenticating');
+ str = "<a style='color:white; text-decoration:none' href='#' ng-click='$root.cancelAuth()' <i class='ion-close-circled'></i>&nbsp;" + $translate.instant('kAuthenticating')+"</a>";
+
+
if (str) {
$ionicLoading.show({
@@ -590,16 +592,23 @@ angular.module('zmApp.controllers')
function loginWebScrape(noBroadcast) {
var d = $q.defer();
+ if ($rootScope.userCancelledAuth) {
+ debug ('NVR loginWebScrape: User cancelled auth, not proceeding');
+ d.reject(true);
+ return d.promise;
+ }
debug("Logging in using old web-scrape method");
$ionicLoading.show({
- template: $translate.instant('kAuthenticatingWebScrape'),
+
+ template: "<a style='color:white; text-decoration:none' href='#' ng-click='$root.cancelAuth()' <i class='ion-close-circled'></i>&nbsp;" + $translate.instant('kAuthenticatingWebScrape')+"</a>",
noBackdrop: true,
duration: httpDelay
});
-
+
+
var httpDelay = loginData.enableSlowLoading ? zm.largeHttpTimeout : zm.httpTimeout;
//NVR.debug ("*** AUTH LOGIN URL IS " + loginData.url);
@@ -1793,8 +1802,12 @@ angular.module('zmApp.controllers')
function findFirstReachableUrl(urls) {
if (urls.length > 0 && $rootScope.userCancelledAuth != true) {
+
+
+
$ionicLoading.show({
- template: $translate.instant('kTrying') + ' ' + urls[0].server
+ template: "<a style='color:white; text-decoration:none' href='#' ng-click='$root.cancelAuth()' <i class='ion-close-circled'></i>&nbsp;" + $translate.instant('kTrying')+ ' ' + urls[0].server+"</a>",
+ noBackdrop: true,
});
log("Reachability test.." + urls[0].url);
@@ -2958,9 +2971,10 @@ angular.module('zmApp.controllers')
}, diff_access * 60 * 1000);
- // console.log ("**************** TOKEN SET="+loginData.accessToken);
+
$rootScope.authSession = '&token='+loginData.accessToken;
d.resolve("Login success via access token");
+ console.log ("**************** TOKEN SET="+$rootScope.authSession);
if (!noBroadcast) $rootScope.$broadcast('auth-success', '' );
return d.promise;
}
@@ -3623,7 +3637,11 @@ angular.module('zmApp.controllers')
logout: function () {
var d = $q.defer();
-
+ if ($rootScope.userCancelledAuth) {
+ debug ('NVR logout: User cancelled auth, not proceeding');
+ d.reject(true);
+ return d.promise;
+ }
// always resolves
if (!loginData.isUseAuth || loginData.isTokenSupported) {
log("No need for logout!");
@@ -3631,8 +3649,13 @@ angular.module('zmApp.controllers')
return d.promise;
}
+
+ // $ionicLoading.show({ template: '<button class="button button-clear" style="line-height: normal; min-height: 0; min-width: 0;" ng-click="$root.cancel()"></button><i class="icon ion-chevron-up"></i> Loading...' });
+
+
$ionicLoading.show({
- template: $translate.instant('kCleaningUp'),
+ //template:$translate.instant('kCleaningUp'),
+ template: "<a style='color:white; text-decoration:none' href='#' ng-click='$root.cancelAuth()' <i class='ion-close-circled'></i>&nbsp;" + $translate.instant('kCleaningUp')+"</a>",
noBackdrop: true,
});
diff --git a/www/js/PortalLoginCtrl.js b/www/js/PortalLoginCtrl.js
index 17715238..192c0c4e 100644
--- a/www/js/PortalLoginCtrl.js
+++ b/www/js/PortalLoginCtrl.js
@@ -470,12 +470,19 @@ angular.module('zmApp.controllers').controller('zmApp.PortalLoginCtrl', ['$ionic
},
function error(e) {
+ $ionicHistory.nextViewOptions({
+ disableAnimate:true,
+ disableBack: true
+ });
+
if ($rootScope.apiValid == true) {
$state.go("app.login", {
"wizard": false
});
return;
} else {
+ NVR.log ('Portal login:invalid api');
+ if (!$rootScope.userCancelledAuth)
$state.go("app.invalidapi");
return;
}
diff --git a/www/js/app.js b/www/js/app.js
index 3545cb2a..1d3d1250 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1007,9 +1007,12 @@ angular.module('zmApp', [
$cookies.remove(k);
});
}*/
+
+ $rootScope.userCancelledAuth = false;
return NVR.getReachableConfig(false)
.then (
function(data ) {
+
return NVR.logout()
.then(function (ans) {
return _doLogin(str);
@@ -1018,16 +1021,30 @@ angular.module('zmApp', [
},
function (err) {
NVR.log('No reachable config: '+JSON.stringify(err));
- $state.go("app.invalidapi");
+ $ionicHistory.nextViewOptions({
+ disableAnimate:true,
+ disableBack: true
+ });
+ if (!$rootScope.userCancelledAuth)
+ $state.go("app.invalidapi");
return;
}
);
+
+
+
}
function _doLogin(str) {
var d = $q.defer();
+
+ if ($rootScope.userCancelledAuth) {
+ NVR.debug ('_doLogin - not proceeding as user cancelled auth');
+ d.reject(false);
+ return d.promise;
+ }
var ld = NVR.getLogin();
//var statename = $ionicHistory.currentStateName();
@@ -1511,9 +1528,10 @@ angular.module('zmApp', [
disableBack: true
});
$rootScope.userCancelledAuth = true;
- window.stop();
+ //window.stop();
//console.log ("inside cancelAuth , calling wizard");
+ //$ionicSideMenuDelegate.toggleLeft();
$state.go("app.login", {
"wizard": false
});
@@ -1532,9 +1550,10 @@ angular.module('zmApp', [
if ($rootScope.apiValid == false && toState.name != 'app.invalidapi' && toState.data.requireLogin == true) {
- event.preventDefault();
+ /*event.preventDefault();
$rootScope.dpadState = "app.invalidapi";
- $state.transitionTo('app.invalidapi');
+ $state.transitionTo('app.invalidapi');*/
+ NVR.log ('API not valid, not going to this state');
return;
}
@@ -1582,6 +1601,7 @@ angular.module('zmApp', [
// if you don't prevent, states will stack
event.preventDefault();
$rootScope.dpadState = "login";
+
$state.transitionTo('app.login');
return;
}
@@ -2047,7 +2067,7 @@ angular.module('zmApp', [
//$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|cdvphotolibrary):/);
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|content|cdvphotolibrary|blob|unsafe|local):|data:image\//);
- $provide.decorator("$exceptionHandler", ['$delegate', '$injector', function ($delegate, $injector) {
+ $provide.decorator("$exceptionHandler", ['$delegate', '$injector', function ($delegate, $injector) {
return function (exception, cause) {
var $rootScope = $injector.get("$rootScope");
@@ -2056,10 +2076,10 @@ angular.module('zmApp', [
cause: cause
});
- $delegate(exception, cause);
+ $delegate(exception, cause);
};
- }]);
+ }]);
// Wraps around $http that switches between browser XHR