This required adding annotation to the whole project. I need to double-check whether I have the license banner of AGPL in place everywhere. Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
74 lines
2.2 KiB
Svelte
74 lines
2.2 KiB
Svelte
<!--
|
|
LoginForm organism.
|
|
Copyright (C) 2024 André Jaenisch
|
|
SPDX-FileCopyrightText: 2024 André Jaenisch
|
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
-->
|
|
|
|
<script lang="ts">
|
|
import { _ } from 'svelte-i18n';
|
|
|
|
/**
|
|
* Form handling by SvelteKit
|
|
*/
|
|
export let form: unknown = null;
|
|
|
|
/**
|
|
* Translation keys to enable reuse
|
|
*/
|
|
export let i18n: null;
|
|
|
|
/**
|
|
* Available servers for signin
|
|
*/
|
|
export let servers: Array = [];
|
|
|
|
/**
|
|
* Allow for linking stories in Storybook.
|
|
*/
|
|
export let sb = '';
|
|
</script>
|
|
|
|
<form class="space-y-4" name="login" method="POST" action="?/login">
|
|
{#if form?.missing}
|
|
<p class="error">{$_(i18n.validation.missing)}</p>
|
|
{/if}
|
|
{#if form?.incorrect}
|
|
<p class="error">{$_(i18n.validation.incorrect)}</p>
|
|
{/if}
|
|
<label class="label">
|
|
<span>{$_(i18n.fields.server.label)}</span>
|
|
<select class="select" name="server">
|
|
<option value="1">fig.fr33domlover.site</option>
|
|
<option value="2">grape.fr33domlover.site</option>
|
|
<option value="3">walnut.fr33domlover.site</option>
|
|
</select>
|
|
</label>
|
|
<label class="label">
|
|
<span>{$_(i18n.fields.account.label)}</span>
|
|
<input class="input" name="account" type="text" value={form?.account ?? ''} />
|
|
</label>
|
|
<label class="label">
|
|
<span>{$_(i18n.fields.passphrase.label)}</span>
|
|
<input
|
|
class="input"
|
|
name="passphrase"
|
|
type="password"
|
|
placeholder={$_(i18n.fields.passphrase.placeholder)}
|
|
/>
|
|
</label>
|
|
<div class="text-right">
|
|
<a href="/" class="btn btn-bg-initial">
|
|
{$_(i18n.reset)}
|
|
</a>
|
|
</div>
|
|
<button type="submit" class="w-full btn variant-filled-primary" data-sb-kind={sb}>
|
|
{$_(i18n.submit)}
|
|
</button>
|
|
</form>
|