www.spaceplanner.app

Web client to the spaceplanner API
git clone git://jacobedwards.org/www.spaceplanner.app
Log | Files | Refs

commit e9e4540993c37c9ac9a028f009d66bb1454443ae
parent 9157f14414ca9d3cdb1121e8b2e4f24c7775369b
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date:   Fri, 30 Aug 2024 18:02:53 -0700

Rework login page to use api.login

Also ditch onsubmit in favor of AddEventListener.

Diffstat:
Mfiles/login/index.html | 8++++----
Mfiles/login/main.js | 39+++++++++++++--------------------------
2 files changed, 17 insertions(+), 30 deletions(-)

diff --git a/files/login/index.html b/files/login/index.html @@ -7,14 +7,14 @@ <html> <h1>Login</h1> - <aside>Don't have an account? <a href="/register">signup</a> now!</aside> + <form id="login" class="credentials"> + <aside>Don't have an account? <a href="/register">signup</a> now!</aside> - <form id="login"> <label for="username">Username:</label> - <input id="username" autocomplete="username" name="username"/> + <input id="username" autocomplete="username" name="username" required/> <label for="password">Password:</label> - <input id="password" autocomplete="current-password" type="password" name="password"/> + <input id="password" autocomplete="current-password" type="password" name="password" required/> <input type="submit" value="Login"/> </form> diff --git a/files/login/main.js b/files/login/main.js @@ -1,41 +1,28 @@ import * as api from "/lib/api.js" import * as etc from "/lib/etc.js" +import * as ui from "/lib/ui.js" let default_page = "/floorplans" -function handle_token(resp) { - api.update_token(resp.token) - window.location.href = default_page -} - -function login(username, password, err_callback) { - api.fetch("POST", "tokens", { "username": username, "password": password }) - .then(handle_token) - .catch(err_callback) - return false; -} - function init() { if (api.authorized_duration() > 0) { window.location.href = default_page } - let username_input = document.getElementById("username") - let password_input = document.getElementById("password") - if (!username_input || !password_input) { - throw new Error("unable to select username or password") + let login = document.getElementById("login") + let username = document.getElementById("username") + let password = document.getElementById("password") + if (!login || !username || !password) { + throw new Error("Expected login form, username, password fields") } - let login_form = document.getElementById("login") - if (!login_form) { - throw new Error("unable to get login form") - } - login_form.onsubmit = function () { - return login( - username_input.value, password_input.value, - function (error) { return etc.error(error, login_form) } - ); - }; + login.addEventListener("submit", function(event) { + event.preventDefault() + api.login(username.value, password.value) + .then(function() { + window.location.href = default_page + }) + }) } window.onload = etc.handle_wrap(init)