diff --git a/src/app/components/early-bird/EarlyBirdForm.vue b/src/app/components/early-bird/EarlyBirdForm.vue index 37971a2988..16684c7cff 100644 --- a/src/app/components/early-bird/EarlyBirdForm.vue +++ b/src/app/components/early-bird/EarlyBirdForm.vue @@ -8,7 +8,7 @@ {{ t('description') }} - + @@ -108,15 +131,17 @@ const { accountId, event } = defineProps<{ // template const templateForm = useTemplateRef('form') +// stepper +const { error, restart, step } = useStepper< + 'reportConfirmation' | 'blockConfirmation' | 'error' +>({ initial: 'blockConfirmation' }) + // drawer const isOpen = defineModel() const open = () => (isOpen.value = true) - -// stepper -const { step } = useStepper<'reportConfirmation' | 'blockConfirmation'>() const onAnimationEnd = (isOpen: boolean) => { if (isOpen) return - step.value = 'default' + restart() } // block @@ -132,24 +157,16 @@ const blockOrganizer = async () => { createdBy: accountId, }, }) - if (result.error) { - // TODO: confirm design - await showToast({ - icon: 'error', - text: apiErrorMessages.value.join('\n'), - title: t('globalError'), - }) + error.value = new Error( + apiErrorMessages.value.length > 0 + ? apiErrorMessages.value.join('\n') + : t('globalError'), + ) return } - if (!result.data) { - // TODO: confirm design - await showToast({ - icon: 'error', - text: t('globalErrorNoData'), - title: t('globalError'), - }) + error.value = new Error(t('globalError')) return } @@ -176,9 +193,12 @@ de: buttonReportSubmit: Meldung einreichen contentBlockConfirmation: Der Benutzer {username} wurde blockiert. contentReportConfirmation: Vielen Dank für die Meldung. Wir werden sie prüfen und dich über unsere Entscheidung benachrichtigen. Du kannst nun den Organisator {username} blockieren oder zur Event-Seite zurückkehren. + reportingFailed: Meldung fehlgeschlagen + somethingWentWrong: Etwas ist schief gelaufen. titleBlockConfirmation: Benutzer blockiert titleReport: Event melden titleReportConfirmation: Meldung erhalten + tryAgain: Erneut versuchen en: buttonBlockConfirmation: Back to Dashboard buttonReportCancel: Cancel @@ -187,7 +207,10 @@ en: buttonReportSubmit: Report contentBlockConfirmation: The user {username} has been blocked. contentReportConfirmation: Thank you for your report. We will review it and notify you about our decision. You can block the organizer {username} now or return to the event. + reportingFailed: Reporting Failed + somethingWentWrong: Something went wrong. titleBlockConfirmation: User blocked titleReport: Report event titleReportConfirmation: Report received + tryAgain: Try Again diff --git a/src/app/components/event/report/EventReportForm.vue b/src/app/components/event/report/EventReportForm.vue index cec0559466..0ed3cf37c3 100644 --- a/src/app/components/event/report/EventReportForm.vue +++ b/src/app/components/event/report/EventReportForm.vue @@ -46,13 +46,11 @@ const reasons = [ { label: t('drawerRadioOther'), value: 'other' }, ] const templateForm = useTemplateRef('form') +const modelError = defineModel('error') // report const createReportMutation = useCreateReportMutation() const api = getApiData([createReportMutation]) -const apiErrorMessages = computed(() => - getCombinedErrorMessages(api.value.errors), -) // form const submit = () => @@ -75,32 +73,33 @@ const onSubmit = handleSubmit(async (values) => { }, }) - if (result.error) { - // TODO: confirm design - await showToast({ - icon: 'error', - text: apiErrorMessages.value.join('\n'), - title: t('globalError'), - }) - return - } + if (result.error) return if (!result.data) { - // TODO: confirm design - await showToast({ - icon: 'error', - text: t('globalErrorNoData'), - title: t('globalError'), - }) + modelError.value = new Error(t('globalErrorNoData')) return } - emit('submitSuccess') }) defineExpose({ submit, }) + +watch( + () => api.value.errors, + (current) => { + modelError.value = current?.length + ? // TODO: Use appropriate error codes here + new Error( + getCombinedErrorMessages(current, { + // postgres55000: t('postgres55000'), + // postgresP0002: t('postgresP0002'), + })[0], + ) + : undefined + }, +) diff --git a/src/app/components/form/FormEarlyBird.vue b/src/app/components/form/FormEarlyBird.vue index bb916ae7a9..22a342c54b 100644 --- a/src/app/components/form/FormEarlyBird.vue +++ b/src/app/components/form/FormEarlyBird.vue @@ -63,9 +63,9 @@ const emit = defineEmits<{ success: [] }>() -const fireAlert = useFireAlert() const { t } = useI18n() const templateForm = useTemplateRef('form') +const modelError = defineModel('error') // form const submit = () => { @@ -83,14 +83,8 @@ const onSubmit = handleSubmit(async (values) => { body: values, }) emit('success') - } catch (error) { - // TODO: implement form error page - await fireAlert({ - error, - level: 'error', - text: t('error'), - title: t('globalError'), - }) + } catch { + modelError.value = new Error(t('globalError')) } }) @@ -102,12 +96,10 @@ defineExpose({ de: agreement: Mit deiner Teilnahme stimmst du zu, dass wir deine Kontaktdaten speichern und dich im Rahmen des Programms kontaktieren dürfen. - error: Die Anmeldung für das Early Bird-Programm scheint nicht geklappt zu haben. Bitte versuche es noch einmal oder wende dich an den Support, wenn das Problem weiterhin besteht. emailAddress: E-Mail-Adresse name: Name en: agreement: By participating, you agree that we may save your contact details and contact you as part of the program. - error: The registration for the Early Bird program does not seem to have worked. Please try again or contact support if the problem persists. emailAddress: Email address name: Name diff --git a/src/app/components/form/account/FormAccountSignIn.vue b/src/app/components/form/account/FormAccountSignIn.vue index b0568e71a3..517004cbaf 100644 --- a/src/app/components/form/account/FormAccountSignIn.vue +++ b/src/app/components/form/account/FormAccountSignIn.vue @@ -131,14 +131,14 @@ de: jwtStoreFail: Fehler beim Speichern der Authentifizierungsdaten! passwordReset: Passwort zurücksetzen postgres55000: Deine E-Mail-Adresse ist noch nicht verifiziert! Schau in dein E-Mail-Postfach, ggf. auch in den Spam-Ordner, oder kontaktiere den Support. - postgresP0002: Anmeldung fehlgeschlagen! Hast du dich schon registriert? Überprüfe deine Eingaben auf Schreibfehler oder kontaktiere den Support. + postgresP0002: Hast du dich schon registriert? Überprüfe deine Eingaben auf Schreibfehler oder kontaktiere den Support. register: Konto erstellen signIn: Einloggen en: jwtStoreFail: Failed to store the authentication data! passwordReset: I forgot my password postgres55000: Your email address has not been verified yet! Check your email inbox, including the spam folder if necessary, or contact support. - postgresP0002: Login failed! Have you registered yet? Check your input for spelling mistakes or contact support. + postgresP0002: Have you registered yet? Check your input for spelling mistakes or contact support. register: Create an account signIn: Log in diff --git a/src/app/components/form/account/password/FormAccountPasswordReset.vue b/src/app/components/form/account/password/FormAccountPasswordReset.vue index a05e67fa21..062af40446 100644 --- a/src/app/components/form/account/password/FormAccountPasswordReset.vue +++ b/src/app/components/form/account/password/FormAccountPasswordReset.vue @@ -1,11 +1,5 @@ + + + + + {{ error.message }} + + + + + + de: + backToReset: Zurück zur Passwortzurücksetzung instructionsNew: Neues Passwort instructionsSuccessHeading: Passwort erfolgreich zurückgesetzt instructionsSuccessDescription: Du kannst dich jetzt mit deinem neuen Passwort anmelden @@ -96,6 +116,7 @@ de: signIn: Einloggen title: Passwort zurücksetzen en: + backToReset: Back to Reset Password instructionsNew: Set a new password instructionsSuccessHeading: Password reset successful instructionsSuccessDescription: You can now log in using your new password. diff --git a/src/app/pages/account/password/reset/request.vue b/src/app/pages/account/password/reset/request.vue index d8bd8677cd..da3a02bd1e 100644 --- a/src/app/pages/account/password/reset/request.vue +++ b/src/app/pages/account/password/reset/request.vue @@ -19,6 +19,7 @@
@@ -46,31 +47,49 @@ + + + + + + + + de: + backToReset: Zurück zur Passwortzurücksetzung iconAltClose: X-Icon instructionsInboxDescription: Überprüfe dein Postfach instructionsInboxHeading: Befolge die Anweisungen in der E-Mail, um das Passwort zurückzusetzen. @@ -78,6 +97,7 @@ de: send: Link zum Zurücksetzen senden title: Passwort zurücksetzen en: + backToReset: Back to Reset Password iconAltClose: X icon instructionsInboxDescription: Follow the instructions in the email to reset your password. instructionsInboxHeading: Check your inbox diff --git a/src/app/pages/early-bird/create.vue b/src/app/pages/early-bird/create.vue index 7cc0f2468c..72b4960616 100644 --- a/src/app/pages/early-bird/create.vue +++ b/src/app/pages/early-bird/create.vue @@ -19,22 +19,43 @@ - + + + + + + + + + de: back: zurück + backToEarlyBird: Zurück zur Registrierung iconAltClose: Schließen title: Früher Vogel Programm + errorDescription: Die Anmeldung für das Early Bird-Programm scheint nicht geklappt zu haben. Bitte versuche es noch einmal oder wende dich an den Support, wenn das Problem weiterhin besteht. en: back: back + backToEarlyBird: Back to Registration iconAltClose: Close title: Early Bird Program + errorDescription: The registration for the Early Bird program does not seem to have worked. Please try again or contact support if the problem persists. diff --git a/src/app/pages/session/create/index.vue b/src/app/pages/session/create/index.vue index f5cc9e996f..f8d6e88b05 100644 --- a/src/app/pages/session/create/index.vue +++ b/src/app/pages/session/create/index.vue @@ -17,9 +17,11 @@ - {{ error }} + + {{ error.message }} +