12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- class LoginPage {
- start() {
- this.loginInput = DOM.get('.login-form>.login-form-login>.login-form-login-input').focus();
- this.passwordInput = DOM.get('.login-form>.login-form-password>.login-form-password-input');
- this.loginButton = DOM.get('.login-form>.login-form-button');
- this.failureText = DOM.get('.login-form>.login-form-failure');
- this.registerEventHandlers();
- return this;
- }
- registerEventHandlers() {
- this.loginButton.on(DOM.Events.Click, this.authorize.bind(this));
- window_.on(DOM.Events.KeyDown, (e) => {
- if(e.key === DOM.Keys.Enter)
- this.authorize();
- });
- }
- authorize(e) {
- const login = this.loginInput.getValue();
- const password = this.passwordInput.getValue();
- CDUtils.SHA256(password).then((hashedPassword) => {
- fetch('/authorize', {
- method: 'POST',
- headers:{
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- body: new URLSearchParams({
- 'login': login,
- 'password': hashedPassword
- })
- }).then((res) => {
- if(res.status === 200)
- Url.goTo('/');
- else if(res.status === 403)
- this.failureText.setInnerHTML('Wrong login or password');
- else
- this.failureText.setInnerHTML('Internal server error');
- })
- });
- }
- }
- window_.on(DOM.Events.Load, (e) => {
- window.page = new LoginPage().start();
- });
|