From 237e4d43229847bb69aadcfa6e6aca517128913b Mon Sep 17 00:00:00 2001 From: TrueKuehli Date: Mon, 1 Oct 2018 14:15:05 +0200 Subject: Documented the code better and made some minor fixes --- .../NodeJSServer/src/modules/ui/login-modal.js | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'WebInterface/NodeJSServer/src/modules/ui/login-modal.js') diff --git a/WebInterface/NodeJSServer/src/modules/ui/login-modal.js b/WebInterface/NodeJSServer/src/modules/ui/login-modal.js index cb1f2ac..4c7b872 100644 --- a/WebInterface/NodeJSServer/src/modules/ui/login-modal.js +++ b/WebInterface/NodeJSServer/src/modules/ui/login-modal.js @@ -1,7 +1,17 @@ import Modal from './modal.js'; import '../hash.js'; +/** + * Class to implement a login modal from the parent modal class + */ export default class LoginModal extends Modal { + /** + * Creates necessary elements for login modal + * @param {string} serverName Name of the server, used for login and displayed + * in title + * @param {ServerClient} serverClient Server client object used to send the + * login + */ constructor(serverName, serverClient) { super(serverName); this.serverName = serverName; @@ -15,7 +25,7 @@ export default class LoginModal extends Modal { let passwordInput = document.createElement('input'); passwordLabel.setAttribute('for', 'password-input'); passwordLabel.textContent = 'Passwort:'; - passwordLabel.title = 'Das Passwort des Spiels' + passwordLabel.title = 'Das Passwort des Spiels'; passwordInput.id = 'password-input'; passwordInput.type = 'password'; passwordInput.placeholder = 'Passwort'; @@ -24,7 +34,7 @@ export default class LoginModal extends Modal { let nameInput = document.createElement('input'); nameLabel.setAttribute('for', 'name-input'); nameLabel.textContent = 'Benutzername:'; - nameLabel.title = 'Dein Anzeigename' + nameLabel.title = 'Dein Anzeigename'; nameInput.id = 'name-input'; nameInput.type = 'text'; nameInput.autocomplete = 'on'; @@ -53,15 +63,22 @@ export default class LoginModal extends Modal { this.registerLoginBtn(); } + /** + * Registers event to send login, on button press + */ registerLoginBtn() { - this.loginButton.addEventListener('click', () => { - console.log('button pressed') + let eventListener = () => { + this.loginButton.removeEventListener('click', eventListener); let userName = this.nameInput.value; this.passwordInput.value.getHash() .then((result) => { this.serverClient.sendLogin(this.serverName, result, userName); + + // TODO: Wait for response, if error keep window intact, + // and reenable event listener this.close(); }); - }); + }; + this.loginButton.addEventListener('click', eventListener); } } -- cgit v1.2.3-54-g00ecf