import '@maicol07/material-web-additions/card/elevated-card.js'; import '@material/web/button/filled-button.js'; import '@material/web/textfield/filled-text-field.js'; import {router} from '@maicol07/inertia-mithril'; import { mdiAccountOutline, mdiLockCheckOutline, mdiLockOutline } from '@mdi/js'; import MdIcon from '@osm/Components/MdIcon'; import Page, {PageAttributes} from '@osm/Components/Page'; import {VnodeCollectionItem} from '@osm/typings/jsx'; import {showSnackbar} from '@osm/utils/misc'; import collect from 'collect.js'; import type {Vnode} from 'mithril'; import Stream from 'mithril/stream'; import { Form, FormSubmitEvent, Request, RequestError } from 'mithril-utilities'; export default class ResetPasswordPage extends Page { form = { password: Stream(''), password_confirmation: Stream('') }; parameters!: URLSearchParams; oninit(vnode: Vnode) { super.oninit(vnode); this.parameters = new URLSearchParams(window.location.search); } contents(vnode: Vnode) { return <>

{__('Reimposta password')}

{__('Inserisci la nuova password per accedere a OpenSTAManager.')}

{this.fields().toArray()}
{this.buttons().toArray()}
; } fields() { return collect({ email: , token: , password: ( ), password_confirmation: ( ) }); } buttons() { return collect({ login: ( {__('Reimposta password')} ) }); } onResetPasswordButtonClicked() { this.element.querySelector('form')?.requestSubmit(); } async onResetPasswordFormSubmit(event: FormSubmitEvent) { try { await Request.post(route('password.update'), event.data); } catch (error: any) { void showSnackbar((error as RequestError<{message: string}>).response.message, false); return; } void showSnackbar(__('Reset della password effettuato con successo. Puoi ora accedere.')); router.visit(route('login')); } }