Files
standardnotes-app-web/app/assets/javascripts/controllers/lockScreen.js
Baptiste Grob 0c586681cf Revert "Remove unused argument"
This reverts commit 8392ee17c3.
2020-03-11 15:11:50 +01:00

105 lines
2.1 KiB
JavaScript

import template from '%/lock-screen.pug';
const ELEMENT_ID_PASSCODE_INPUT = 'passcode-input';
class LockScreenCtrl {
/* @ngInject */
constructor(
$scope,
alertManager,
authManager,
passcodeManager,
) {
this.$scope = $scope;
this.alertManager = alertManager;
this.authManager = authManager;
this.passcodeManager = passcodeManager;
this.formData = {};
this.addVisibilityObserver();
this.addDestroyHandler();
}
get passcodeInput() {
return document.getElementById(
ELEMENT_ID_PASSCODE_INPUT
);
}
addDestroyHandler() {
this.$scope.$on('$destroy', () => {
this.passcodeManager.removeVisibilityObserver(
this.visibilityObserver
);
});
}
addVisibilityObserver() {
this.visibilityObserver = this.passcodeManager
.addVisibilityObserver((visible) => {
if(visible) {
const input = this.passcodeInput;
if(input) {
input.focus();
}
}
});
}
submitPasscodeForm($event) {
if(
!this.formData.passcode ||
this.formData.passcode.length === 0
) {
return;
}
this.passcodeInput.blur();
this.passcodeManager.unlock(
this.formData.passcode,
(success) => {
if(!success) {
this.formData.passcode = null;
this.alertManager.alert({
text: "Invalid passcode. Please try again.",
onClose: () => {
this.passcodeInput.focus();
}
});
} else {
this.onSuccess()();
}
}
);
}
forgotPasscode() {
this.formData.showRecovery = true;
}
beginDeleteData() {
this.alertManager.confirm({
text: "Are you sure you want to clear all local data?",
destructive: true,
onConfirm: () => {
this.authManager.signout(true).then(() => {
window.location.reload();
});
}
});
}
}
export class LockScreen {
constructor() {
this.restrict = 'E';
this.template = template;
this.controller = LockScreenCtrl;
this.controllerAs = 'ctrl';
this.bindToController = true;
this.scope = {
onSuccess: '&',
};
}
}