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:
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)