Password wizard lock continue, SFJS 0.3.18
This commit is contained in:
@@ -15,7 +15,20 @@ class PasswordWizard {
|
|||||||
controller($scope, modelManager, archiveManager, authManager, syncManager, $timeout) {
|
controller($scope, modelManager, archiveManager, authManager, syncManager, $timeout) {
|
||||||
'ngInject';
|
'ngInject';
|
||||||
|
|
||||||
|
window.onbeforeunload = (e) => {
|
||||||
|
// Confirms with user to close tab before closing
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.$on("$destroy", function() {
|
||||||
|
window.onbeforeunload = null;
|
||||||
|
});
|
||||||
|
|
||||||
$scope.dismiss = function() {
|
$scope.dismiss = function() {
|
||||||
|
if($scope.lockContinue) {
|
||||||
|
alert("Cannot close window until pending tasks are complete.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
$scope.el.remove();
|
$scope.el.remove();
|
||||||
$scope.$destroy();
|
$scope.$destroy();
|
||||||
}
|
}
|
||||||
@@ -64,6 +77,15 @@ class PasswordWizard {
|
|||||||
|
|
||||||
$scope.continue = function() {
|
$scope.continue = function() {
|
||||||
|
|
||||||
|
if($scope.lockContinue || $scope.isContinuing) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// isContinuing is a way to lock the continue function separate from lockContinue
|
||||||
|
// lockContinue can be locked by other places, but isContinuing is only lockable from within this function.
|
||||||
|
|
||||||
|
$scope.isContinuing = true;
|
||||||
|
|
||||||
if($scope.step == FinishStep) {
|
if($scope.step == FinishStep) {
|
||||||
$scope.dismiss();
|
$scope.dismiss();
|
||||||
return;
|
return;
|
||||||
@@ -72,6 +94,8 @@ class PasswordWizard {
|
|||||||
let next = () => {
|
let next = () => {
|
||||||
$scope.step += 1;
|
$scope.step += 1;
|
||||||
$scope.initializeStep($scope.step);
|
$scope.initializeStep($scope.step);
|
||||||
|
|
||||||
|
$scope.isContinuing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var preprocessor = $scope.preprocessorForStep($scope.step);
|
var preprocessor = $scope.preprocessorForStep($scope.step);
|
||||||
@@ -151,8 +175,15 @@ class PasswordWizard {
|
|||||||
let currentPassword = $scope.formData.currentPassword;
|
let currentPassword = $scope.formData.currentPassword;
|
||||||
let newPass = $scope.securityUpdate ? currentPassword : $scope.formData.newPassword;
|
let newPass = $scope.securityUpdate ? currentPassword : $scope.formData.newPassword;
|
||||||
|
|
||||||
|
if(!currentPassword || currentPassword.length == 0) {
|
||||||
|
alert("Please enter your current password.");
|
||||||
|
callback(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if($scope.changePassword) {
|
if($scope.changePassword) {
|
||||||
if(!newPass || newPass.length == 0) {
|
if(!newPass || newPass.length == 0) {
|
||||||
|
alert("Please enter a new password.");
|
||||||
callback(false);
|
callback(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,6 @@
|
|||||||
.panel-column.stretch
|
.panel-column.stretch
|
||||||
%form
|
%form
|
||||||
%input.form-control{:type => 'password', "ng-model" => "formData.currentPassword", "placeholder" => "Current Password", "sn-autofocus" => "true", "should-focus" => "true"}
|
%input.form-control{:type => 'password', "ng-model" => "formData.currentPassword", "placeholder" => "Current Password", "sn-autofocus" => "true", "should-focus" => "true"}
|
||||||
|
|
||||||
%input.form-control{"ng-if" => "changePassword", :type => 'password', "ng-model" => "formData.newPassword", "placeholder" => "New Password"}
|
%input.form-control{"ng-if" => "changePassword", :type => 'password', "ng-model" => "formData.newPassword", "placeholder" => "New Password"}
|
||||||
%input.form-control{"ng-if" => "changePassword", :type => 'password', "ng-model" => "formData.newPasswordConfirmation", "placeholder" => "Confirm New Password"}
|
%input.form-control{"ng-if" => "changePassword", :type => 'password', "ng-model" => "formData.newPasswordConfirmation", "placeholder" => "Confirm New Password"}
|
||||||
|
|
||||||
@@ -104,6 +103,6 @@
|
|||||||
|
|
||||||
.footer
|
.footer
|
||||||
.empty
|
.empty
|
||||||
%a.right{"ng-click" => "continue()", "ng-class" => "{'disabled' : lockContinue}"}
|
%a.right{"ng-click" => "continue()", "ng-disabled" => "lockContinue", "ng-class" => "{'disabled' : lockContinue}"}
|
||||||
.spinner.small.inline.info.mr-5{"ng-if" => "showSpinner"}
|
.spinner.small.inline.info.mr-5{"ng-if" => "showSpinner"}
|
||||||
{{continueTitle}}
|
{{continueTitle}}
|
||||||
|
|||||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -8006,9 +8006,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"standard-file-js": {
|
"standard-file-js": {
|
||||||
"version": "0.3.17",
|
"version": "0.3.18",
|
||||||
"resolved": "https://registry.npmjs.org/standard-file-js/-/standard-file-js-0.3.17.tgz",
|
"resolved": "https://registry.npmjs.org/standard-file-js/-/standard-file-js-0.3.18.tgz",
|
||||||
"integrity": "sha512-YeX33yz19TB+JrkCWigO21Tugw6oVRi2s8m0lHG0JSOPr4UNA7ufdbzcFgQyDbh6UvF6eCevb1uezt3A3nejmQ==",
|
"integrity": "sha512-5EyOohX7qTZ5zmbnPP0L1bA07SZCd6U0wKEx9j5JXUT5xF2YVDc6clV4kkAmsXAwoMIGZQIs4x2Nvqc5ka4nCQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"static-extend": {
|
"static-extend": {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
"karma-jasmine": "^1.1.0",
|
"karma-jasmine": "^1.1.0",
|
||||||
"karma-phantomjs-launcher": "^1.0.2",
|
"karma-phantomjs-launcher": "^1.0.2",
|
||||||
"sn-stylekit": "1.0.15",
|
"sn-stylekit": "1.0.15",
|
||||||
"standard-file-js": "0.3.17",
|
"standard-file-js": "0.3.18",
|
||||||
"sn-models": "0.1.9",
|
"sn-models": "0.1.9",
|
||||||
"connect": "^3.6.6",
|
"connect": "^3.6.6",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user