diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-12-22 14:44:26 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-12-22 14:44:26 +0100 |
| commit | 58ef5833b3f77f321c587dd86448c888029016ce (patch) | |
| tree | fe5e6f47781573cc1fb5938f9b8cd8b51022946a /code/api/wwwroot/scripts/page-specific | |
| parent | 82ade3c31fb17b662feec59e9e654ceb66edbb7a (diff) | |
| download | storage-58ef5833b3f77f321c587dd86448c888029016ce.tar.xz storage-58ef5833b3f77f321c587dd86448c888029016ce.zip | |
feat: Many things
- Working Login/Logout
- Groundwork for web components
- Loading web-components with version tag
- Load temporal-polyfill globally
Diffstat (limited to 'code/api/wwwroot/scripts/page-specific')
| -rw-r--r-- | code/api/wwwroot/scripts/page-specific/login.js | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/code/api/wwwroot/scripts/page-specific/login.js b/code/api/wwwroot/scripts/page-specific/login.js index ac43e5d..9a6386e 100644 --- a/code/api/wwwroot/scripts/page-specific/login.js +++ b/code/api/wwwroot/scripts/page-specific/login.js @@ -1,44 +1,36 @@ const form = document.getElementById("login-form"); - -function get_login_payload() { - return { - username: document.querySelector("input[name=username]").value, - password: document.querySelector("input[name=password]").value - } -} - function show_error(title, subtitle) { - if (!title || !subtitle) { - console.error("parameter title or subtitle is empty"); + const errorEl = form.querySelector(".error"); + errorEl.classList.remove("show"); + if (!title && !subtitle) { + console.error("Parameter title and subtitle is empty"); return; } - const errorEl = form.querySelector(".error"); if (!errorEl) { console.error("#" + form.id + " does not have an .error element") return; } - errorEl.querySelector(".title").innerText = title; - errorEl.querySelector(".subtitle").innerHTML = subtitle; + errorEl.classList.add("show"); + errorEl.querySelector(".title").innerText = title ?? ""; + errorEl.querySelector(".subtitle").innerHTML = subtitle ?? ""; } async function submit_login_form(event) { + show_error(); event.preventDefault(); event.stopPropagation(); - const response = await fetch("/account/login", { - method: "post", - body: JSON.stringify(get_login_payload()), - headers: { - "Content-Type": "application/json;charset=utf-8" - } - }) - - if (response.ok) { - const sessionResponse = await fetch("/session"); - session.set(await sessionResponse.json()); - location.href = "/home"; + 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() { |
