From 5f604b3052dab1d51dc130df2470bf330b283ec6 Mon Sep 17 00:00:00 2001 From: ivar Date: Tue, 19 Mar 2024 01:02:22 +0100 Subject: Max lenghts on db schema Use latest temporal from cdn Implement majority of translation functionality Major refinements/bugs --- code/api/wwwroot/scripts/page-specific/login.js | 70 +++++++++++++------------ 1 file changed, 36 insertions(+), 34 deletions(-) (limited to 'code/api/wwwroot/scripts/page-specific/login.js') diff --git a/code/api/wwwroot/scripts/page-specific/login.js b/code/api/wwwroot/scripts/page-specific/login.js index 9a6386e..4e621f0 100644 --- a/code/api/wwwroot/scripts/page-specific/login.js +++ b/code/api/wwwroot/scripts/page-specific/login.js @@ -1,40 +1,42 @@ const form = document.getElementById("login-form"); -function show_error(title, subtitle) { - const errorEl = form.querySelector(".error"); - errorEl.classList.remove("show"); - if (!title && !subtitle) { - console.error("Parameter title and subtitle is empty"); - return; - } - if (!errorEl) { - console.error("#" + form.id + " does not have an .error element") - return; - } - errorEl.classList.add("show"); - errorEl.querySelector(".title").innerText = title ?? ""; - errorEl.querySelector(".subtitle").innerHTML = subtitle ?? ""; -} +const error = { + element: form.querySelector(".error"), + show(title, subtitle) { + if (!title && !subtitle) { + return; + } + error.element.querySelector(".title").innerText = title ?? ""; + error.element.querySelector(".subtitle").innerHTML = subtitle ?? ""; + error.element.classList.add("show"); + }, + hide() { + error.element.querySelector(".title").innerText = ""; + error.element.querySelector(".subtitle").innerHTML = ""; + error.element.classList.remove("show"); + } +}; async function submit_login_form(event) { - show_error(); - event.preventDefault(); - event.stopPropagation(); - const loginResponse = await api.account.login_async({ - username: document.querySelector("input[name=username]").value, - password: document.querySelector("input[name=password]").value - }); - if (!loginResponse.ok) { - const errorObj = await json_or_default_async(loginResponse); - if (errorObj) show_error(errorObj.title, errorObj.subtitle); - else show_error(strings.anErrorOccured.v(), strings.tryAgainSoon.v()); - return; - } - location.href = "/home"; -} - -function init() { - form.addEventListener("submit", submit_login_form) + error.hide(); + event.preventDefault(); + event.stopPropagation(); + const loginResponse = await api.account.login_async({ + username: document.querySelector("input[name=username]").value, + password: document.querySelector("input[name=password]").value + }); + if (!loginResponse.ok) { + const errorObj = await json_or_default_async(loginResponse); + if (errorObj) { + error.show(errorObj.title, errorObj.subtitle); + } else { + error.show(t("general.anErrorOccured"), t("general.tryAgainSoon")); + } + return; + } + location.href = "/home"; } -document.addEventListener("DOMContentLoaded", init) \ No newline at end of file +document.addEventListener("DOMContentLoaded", () => { + form.addEventListener("submit", submit_login_form); +}); -- cgit v1.3