diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-09-27 18:21:37 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-09-27 18:21:37 +0200 |
| commit | 2b58ff029107b23617d8c4b246de77876b3bf053 (patch) | |
| tree | 6fc1fe6dd325e0a9d2af211bd3801dc136bc26f9 /apps/kit/src/routes/(public) | |
| parent | f8ae7740f4a79d1374e136aba58b4c75f09b1396 (diff) | |
| download | greatoffice-2b58ff029107b23617d8c4b246de77876b3bf053.tar.xz greatoffice-2b58ff029107b23617d8c4b246de77876b3bf053.zip | |
feat: Move frontend into layout group (main)
This enables /book to load without the usual layout (app layout)
Diffstat (limited to 'apps/kit/src/routes/(public)')
| -rw-r--r-- | apps/kit/src/routes/(public)/+layout.svelte | 3 | ||||
| -rw-r--r-- | apps/kit/src/routes/(public)/login/+page.svelte | 136 | ||||
| -rw-r--r-- | apps/kit/src/routes/(public)/reset/+page.svelte | 104 | ||||
| -rw-r--r-- | apps/kit/src/routes/(public)/signup/+page.svelte | 38 |
4 files changed, 0 insertions, 281 deletions
diff --git a/apps/kit/src/routes/(public)/+layout.svelte b/apps/kit/src/routes/(public)/+layout.svelte deleted file mode 100644 index 84cd442..0000000 --- a/apps/kit/src/routes/(public)/+layout.svelte +++ /dev/null @@ -1,3 +0,0 @@ -<script> -</script> -<slot></slot>
\ No newline at end of file diff --git a/apps/kit/src/routes/(public)/login/+page.svelte b/apps/kit/src/routes/(public)/login/+page.svelte deleted file mode 100644 index 9e2f6e7..0000000 --- a/apps/kit/src/routes/(public)/login/+page.svelte +++ /dev/null @@ -1,136 +0,0 @@ -<script lang="ts"> - import { goto } from "$app/navigation"; - import { login } from "$lib/api/user"; - import LL from "$lib/i18n/i18n-svelte"; - import type { ErrorResult } from "$lib/models/ErrorResult"; - import type { LoginPayload } from "$lib/models/LoginPayload"; - - const data = { - username: "", - password: "", - } as LoginPayload; - - let error = { - text: "", - title: "", - } as ErrorResult; - - async function submitFormAsync() { - error = { text: "", title: "" }; - const loginResponse = await login(data); - if (loginResponse.ok) { - await goto("/home"); - } else { - error.title = loginResponse.data.title; - error.text = loginResponse.data.text; - } - } -</script> - -<div class="min-h-full flex flex-col justify-center py-12 sm:px-6 lg:px-8"> - <div class="sm:mx-auto sm:w-full sm:max-w-md"> - <h2 - class="mt-6 text-center text-3xl tracking-tight font-bold text-gray-900" - > - {$LL.login.loginToYourAccount()} - </h2> - <p class="mt-2 text-center text-sm text-gray-600"> - {$LL.common.or()} - <a - href="/signup" - class="font-medium text-indigo-600 hover:text-indigo-500" - >{$LL.login.createANewAccount()}</a - > - </p> - </div> - <div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md"> - <div class="bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10"> - {#if error.text || error.title} - <div class="rounded-md bg-red-50 p-3 mb-3"> - {#if error.title} - <h3 class="text-sm font-medium text-red-800"> - {error.title} - </h3> - {/if} - {#if error.text} - <div class="mt-2 text-sm text-red-700"> - {error.text} - </div> - {/if} - </div> - {/if} - <form class="space-y-6" on:submit|preventDefault={submitFormAsync}> - <div> - <label - for="email" - class="block text-sm font-medium text-gray-700" - >{$LL.common.emailAddress()}</label - > - <div class="mt-1"> - <input - id="email" - name="email" - type="email" - autocomplete="email" - required - value={data.username} - class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm" - /> - </div> - </div> - - <div> - <label - for="password" - class="block text-sm font-medium text-gray-700" - >{$LL.login.password()}</label - > - <div class="mt-1"> - <input - id="password" - name="password" - type="password" - autocomplete="current-password" - required - value={data.password} - class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm" - /> - </div> - </div> - - <div class="flex items-center justify-between"> - <div class="flex items-center"> - <input - id="remember-me" - name="remember-me" - type="checkbox" - class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded" - /> - <label - for="remember-me" - class="ml-2 block text-sm text-gray-900" - >{$LL.login.notMyComputer()}</label - > - </div> - - <div class="text-sm"> - <a - href="/reset" - class="font-medium text-indigo-600 hover:text-indigo-500" - >{$LL.login.forgotPassword()}</a - > - </div> - </div> - - <div> - <button - type="submit" - class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" - > - {$LL.common.logIn()} - </button> - </div> - </form> - </div> - </div> -</div> diff --git a/apps/kit/src/routes/(public)/reset/+page.svelte b/apps/kit/src/routes/(public)/reset/+page.svelte deleted file mode 100644 index 5092b4b..0000000 --- a/apps/kit/src/routes/(public)/reset/+page.svelte +++ /dev/null @@ -1,104 +0,0 @@ -<script lang="ts"> - import { create_forgot_password_request } from "$lib/api/user"; - import Alert from "$lib/components/alert.svelte"; - import LL from "$lib/i18n/i18n-svelte"; - import type { ErrorResult } from "$lib/models/ErrorResult"; - import { get } from "svelte/store"; - - const formData = { - email: "", - }; - - $: showErrorAlert = - (errorData?.text.length ?? 0 + errorData?.title.length ?? 0) > 0 && - !showSuccessAlert; - - const errorData = { - text: "", - title: "", - } as ErrorResult; - - let showSuccessAlert = false; - - async function submit() { - errorData.text = ""; - errorData.title = ""; - showSuccessAlert = false; - const request = await create_forgot_password_request(formData.email); - if (!request.ok) { - errorData.text = request.data.text ?? $LL.common.tryAgainSoon(); - errorData.title = request.data.title ?? $LL.common.unexpectedError(); - return; - } - showSuccessAlert = true; - } -</script> - -<div class="min-h-full flex flex-col justify-center py-12 sm:px-6 lg:px-8"> - <div class="sm:mx-auto sm:w-full sm:max-w-md"> - <h2 - class="mt-6 text-center text-3xl tracking-tight font-bold text-gray-900" - > - {$LL.reset.resetPassword()} - </h2> - <p class="mt-2 text-center text-sm text-gray-600"> - {$LL.common.or()} - <a - href="/login" - class="font-medium text-indigo-600 hover:text-indigo-500" - >{$LL.reset.gotoLoginPage().toLowerCase()}</a - > - </p> - </div> - - <div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md"> - <div class="bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10"> - <form - class="space-y-6" - on:submit|preventDefault={submit} - method="POST" - > - <Alert - title={errorData.title} - message={errorData.text} - type="error" - visible={showErrorAlert} - /> - - <Alert - type="success" - title={$LL.common.success()} - message={$LL.reset.requestSentMessage()} - visible={showSuccessAlert} - /> - <div> - <label - for="email" - class="block text-sm font-medium text-gray-700" - > - {$LL.common.emailAddress()}</label - > - <div class="mt-1"> - <input - id="email" - name="email" - type="email" - autocomplete="email" - required - bind:value={formData.email} - class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm" - /> - </div> - </div> - <div> - <button - type="submit" - class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" - > - {$LL.common.send($LL.common.request().toLowerCase())} - </button> - </div> - </form> - </div> - </div> -</div> diff --git a/apps/kit/src/routes/(public)/signup/+page.svelte b/apps/kit/src/routes/(public)/signup/+page.svelte deleted file mode 100644 index d4a1bda..0000000 --- a/apps/kit/src/routes/(public)/signup/+page.svelte +++ /dev/null @@ -1,38 +0,0 @@ -<div class="min-h-full flex flex-col justify-center py-12 sm:px-6 lg:px-8"> - <div class="sm:mx-auto sm:w-full sm:max-w-md"> - <h2 class="mt-6 text-center text-3xl tracking-tight font-bold text-gray-900">Create your new account</h2> - <p class="mt-2 text-center text-sm text-gray-600"> - Or - <a href="/login" class="font-medium text-indigo-600 hover:text-indigo-500">go to login page</a> - </p> - </div> - - <div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md"> - <div class="bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10"> - <form class="space-y-6" action="#" method="POST"> - <div> - <label for="email" class="block text-sm font-medium text-gray-700"> Email address </label> - <div class="mt-1"> - <input id="email" name="email" type="email" autocomplete="email" required - class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm"> - </div> - </div> - - <div> - <label for="password" class="block text-sm font-medium text-gray-700"> Password </label> - <div class="mt-1"> - <input id="password" name="password" type="password" autocomplete="current-password" required - class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm"> - </div> - </div> - - <div> - <button type="submit" - class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"> - Create account - </button> - </div> - </form> - </div> - </div> -</div> |
