Files
standardnotes-app-web/app/assets/javascripts/app/controllers/lockScreen.js
2019-04-04 16:36:00 -05:00

60 lines
1.4 KiB
JavaScript

class LockScreen {
constructor() {
this.restrict = "E";
this.templateUrl = "lock-screen.html";
this.scope = {
onSuccess: "&",
};
}
controller($scope, passcodeManager, authManager, syncManager, storageManager) {
'ngInject';
$scope.formData = {};
this.visibilityObserver = passcodeManager.addVisibilityObserver((visible) => {
if(visible) {
let input = document.getElementById("passcode-input");
if(input) {
input.focus();
}
}
})
$scope.$on("$destroy", () => {
passcodeManager.removeVisibilityObserver(this.visibilityObserver);
});
$scope.submitPasscodeForm = function() {
if(!$scope.formData.passcode || $scope.formData.passcode.length == 0) {
return;
}
passcodeManager.unlock($scope.formData.passcode, (success) => {
if(!success) {
alert("Invalid passcode. Please try again.");
return;
}
$scope.onSuccess()();
})
}
$scope.forgotPasscode = function() {
$scope.formData.showRecovery = true;
}
$scope.beginDeleteData = function() {
if(!confirm("Are you sure you want to clear all local data?")) {
return;
}
authManager.signout(true).then(() => {
window.location.reload();
})
}
}
}
angular.module('app').directive('lockScreen', () => new LockScreen);