working on messagesystem, password reset form

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-07-08 00:06:35 +02:00
parent 9d83008a62
commit 3e91565fb6
15 changed files with 337 additions and 67 deletions

View File

@@ -9,6 +9,7 @@
import Login from "./Components/Login.svelte";
import Messages from "./routes/message/Messages.svelte";
import Menu from "./Components/Menu.svelte";
import ResetPw from "./routes/user/ResetPw.svelte";
import Search from "./routes/search/Search.svelte";
import User from "./routes/user/User.svelte";
import UserEdit from "./routes/user/Edit.svelte";
@@ -42,8 +43,11 @@
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
<Route component={User} />
{:else}
<Login />
<Route path="/user/reset/pw" component={ResetPw} />
<Route path="/oidc_callback" component={Callback} />
<Route>
<Login />
</Route>
{/if}
</Router>
<Footer />

View File

@@ -2,11 +2,14 @@
import { onMount } from 'svelte';
import { t } from '../translations.svelte.js';
import { checkUser, tryLogin } from '../user.svelte.js';
import { useTinyRouter } from 'svelte-tiny-router';
let credentials = { username : null, password : null }
let services = $state([]);
const router = useTinyRouter();
function doLogin(ev){
ev.preventDefault();
tryLogin(credentials);
}
@@ -36,6 +39,11 @@
}
}
}
function resetPW(ev){
ev.preventDefault();
router.navigate('/user/reset/pw');
}
</script>
<style>
@@ -49,9 +57,13 @@
margin-bottom: 30px;
text-align: center;
}
a{
display: block;
margin-top: 15px;
}
</style>
<form on:submit|preventDefault={doLogin}>
<form onsubmit={doLogin}>
<fieldset>
<legend>{t('login.Login')}</legend>
<label>
@@ -63,11 +75,12 @@
<span>{t('login.Password')}</span>
</label>
<button>{t('login.do_login')}</button>
<a onclick={resetPW}>{t('login.forgot_pass')}</a>
</fieldset>
</form>
<fieldset>
<legend>{t('login.OIDC_Login')}</legend>
{#each services as service,i}
<button on:click={() => redirectTo(service)}>{service}</button>
<button onclick={() => redirectTo(service)}>{service}</button>
{/each}
</fieldset>

View File

@@ -13,7 +13,7 @@ async function fetchModules(){
const resp = await fetch(url,{credentials:'include'});
if (resp.ok){
const arr = await resp.json();
for (let entry of arr) modules.push({name:t('module.'+entry.module),url:entry.url});
for (let entry of arr) modules.push({name:t('menu.'+entry.module),url:entry.url});
console.log(modules);
} else {
console.log('error');

View File

@@ -0,0 +1,39 @@
<script>
import { t } from '../../translations.svelte.js';
import { useTinyRouter } from 'svelte-tiny-router';
let mail = "";
let caption = t('user.send_mail');
const router = useTinyRouter();
async function submit(ev){
ev.preventDefault();
caption = t('user.sent_email');
}
</script>
<style>
label{display:block}
fieldset{
display: block;
position: relative;
left: 50%;
width: 200px;
margin-left: -100px;
margin-bottom: 30px;
text-align: center;
}
</style>
<form onsubmit={submit}>
<fieldset>
<legend>{t('user.reset_pw')}</legend>
<label>
<input type="email" bind:value={mail}/>
{t('user.enter_email')}
</label>
<button type="submit">{caption}</button>
</fieldset>
</form>