aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/wwwroot/scripts/page-specific
diff options
context:
space:
mode:
authorivar <i@oiee.no>2024-03-19 01:02:22 +0100
committerivar <i@oiee.no>2024-03-19 01:02:22 +0100
commit5f604b3052dab1d51dc130df2470bf330b283ec6 (patch)
treeae00e1fe4542850467555b4e3af41964ba8d878b /code/api/wwwroot/scripts/page-specific
parent63cf177e8cf22e349534664d59a6926f8b36863d (diff)
downloadstorage-5f604b3052dab1d51dc130df2470bf330b283ec6.tar.xz
storage-5f604b3052dab1d51dc130df2470bf330b283ec6.zip
Max lenghts on db schema
Use latest temporal from cdn Implement majority of translation functionality Major refinements/bugs
Diffstat (limited to 'code/api/wwwroot/scripts/page-specific')
-rw-r--r--code/api/wwwroot/scripts/page-specific/login.js70
1 files changed, 36 insertions, 34 deletions
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);
+});