diff options
Diffstat (limited to 'res/setup.html')
| -rw-r--r-- | res/setup.html | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/res/setup.html b/res/setup.html index 8068a9d..3a0a4ca 100644 --- a/res/setup.html +++ b/res/setup.html @@ -11,6 +11,9 @@ <link rel="manifest" href="manifest.json"> <title>SyncTube</title> <link rel="icon" href="img/favicon.svg" type="image/svg+xml"> + <link rel="preconnect" href="https://fonts.googleapis.com"> + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> + <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&display=swap" rel="stylesheet"> <link id="usertheme" href="css/des.css" rel="stylesheet"> <link id="usertheme" href="css/setup.css" rel="stylesheet"> <link id="customcss" href="css/custom.css" rel="stylesheet"> @@ -19,17 +22,16 @@ <body> <main class="setup"> - <h1 class="setup-title">SyncTube</h1> - <p>Create your admin account</p> + <img class="welcome-image" src="img/welcome.webp" alt="Welcome to Dohee Cinema"> + <h1 class="setup-title">ABSOLUTE CINEMA</h1> + <p>Enter password for access</p> - <form id="setup-form" class="setup-form" action="/setup" method="POST"> - <input type="text" name="name" placeholder="Name"> + <form id="setup-form" class="setup-form"> <input type="password" name="password" placeholder="Password"> - <input type="password" name="confirmation" placeholder="Repeat password"> <div id="form-errors" class="form-errors"></div> - <button type="submit">Create</button> + <button type="submit">Enter</button> </form> </main> @@ -37,33 +39,34 @@ const formElement = document.getElementById("setup-form"); const errorsElement = document.getElementById("form-errors"); + function submitPassword(pw) { + const payload = { password: pw }; + return fetch("/gate", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload) }) + .then(res => res.json()) + .then(response => handleResponse(response, pw)) + .catch(() => handleResponse(null, pw)); + } + formElement.addEventListener("submit", function (e) { e.preventDefault(); - - const { name, password, confirmation } = formElement.elements; - const payload = { - name: name.value, - password: password.value, - passwordConfirmation: confirmation.value, - } - - fetch("/setup", { method: "POST", body: JSON.stringify(payload) }) - .then(res => res.json()) - .then(response => handleResponse(response)) - .catch(() => handleResponse(null)); + const { password } = formElement.elements; + submitPassword(password.value); }, true); + const savedPassword = localStorage.getItem("gate_password"); + if (savedPassword) { + submitPassword(savedPassword); + } - function handleResponse(response) { - if (response.success) { - return window.location.reload(); + function handleResponse(response, pw) { + if (response && response.success === true) { + localStorage.setItem("gate_password", pw); + window.location.href = "/"; + return; } - const errors = !response - ? ["Unknown error"] - : (response.errors ?? []).map(item => item.error); - - showErrors(errorsElement, errors); + localStorage.removeItem("gate_password"); + showErrors(errorsElement, ["Incorrect password. Not cool man"]); } function showErrors(container, errors) { |
