Verbessere Fehlerbehandlung beim Laden von PDF-Vorlagen und füge Ursacheninformationen hinzu
Some checks failed
Code Analysis and Production Deploy / deploy-production (push) Has been cancelled
Code Analysis and Production Deploy / deploy-test (push) Has been cancelled
Code Analysis and Production Deploy / analyze (push) Has been cancelled

This commit is contained in:
Torsten Schulz (local)
2026-07-17 08:50:47 +02:00
parent bd45beadd5
commit f0ac4b7e56
6 changed files with 96 additions and 67 deletions

View File

@@ -33,13 +33,22 @@
</div>
</div>
<div v-if="pending" class="py-12 text-center text-gray-500">
<div
v-if="pending"
class="py-12 text-center text-gray-500"
>
Lade QTTR-Werte...
</div>
<div v-else-if="error" class="rounded-lg border border-red-200 bg-red-50 p-4 text-red-800">
<div
v-else-if="error"
class="rounded-lg border border-red-200 bg-red-50 p-4 text-red-800"
>
{{ error.statusMessage || error.message || 'QTTR-Werte konnten nicht geladen werden.' }}
</div>
<div v-else class="overflow-x-auto">
<div
v-else
class="overflow-x-auto"
>
<table class="min-w-full divide-y divide-gray-200">
<thead class="bg-gray-50">
<tr>

View File

@@ -11,13 +11,24 @@
</div>
<div class="bg-white rounded-xl shadow-lg p-8">
<form class="space-y-6" @submit.prevent="handleSubmit">
<div v-if="!token" class="bg-red-50 border border-red-200 rounded-lg p-4">
<p class="text-sm text-red-800">Der Reset-Link ist unvollständig. Fordern Sie bitte einen neuen Link an.</p>
<form
class="space-y-6"
@submit.prevent="handleSubmit"
>
<div
v-if="!token"
class="bg-red-50 border border-red-200 rounded-lg p-4"
>
<p class="text-sm text-red-800">
Der Reset-Link ist unvollständig. Fordern Sie bitte einen neuen Link an.
</p>
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-2">
<label
for="password"
class="block text-sm font-medium text-gray-700 mb-2"
>
Neues Passwort
</label>
<input
@@ -32,7 +43,10 @@
</div>
<div>
<label for="passwordRepeat" class="block text-sm font-medium text-gray-700 mb-2">
<label
for="passwordRepeat"
class="block text-sm font-medium text-gray-700 mb-2"
>
Neues Passwort wiederholen
</label>
<input
@@ -46,13 +60,24 @@
>
</div>
<div v-if="errorMessage" class="bg-red-50 border border-red-200 rounded-lg p-4">
<p class="text-sm text-red-800">{{ errorMessage }}</p>
<div
v-if="errorMessage"
class="bg-red-50 border border-red-200 rounded-lg p-4"
>
<p class="text-sm text-red-800">
{{ errorMessage }}
</p>
</div>
<div v-if="successMessage" class="bg-green-50 border border-green-200 rounded-lg p-4">
<div
v-if="successMessage"
class="bg-green-50 border border-green-200 rounded-lg p-4"
>
<p class="text-sm text-green-800 flex items-center">
<Check :size="18" class="mr-2" />
<Check
:size="18"
class="mr-2"
/>
{{ successMessage }}
</p>
</div>
@@ -62,12 +87,19 @@
:disabled="isLoading || !token || Boolean(successMessage)"
class="w-full px-6 py-3 bg-primary-600 hover:bg-primary-700 disabled:bg-gray-400 text-white font-semibold rounded-lg transition-colors flex items-center justify-center"
>
<Loader2 v-if="isLoading" :size="20" class="mr-2 animate-spin" />
<Loader2
v-if="isLoading"
:size="20"
class="mr-2 animate-spin"
/>
<span>{{ isLoading ? 'Wird gespeichert...' : 'Passwort speichern' }}</span>
</button>
<div class="text-center">
<NuxtLink to="/login" class="text-sm text-primary-600 hover:text-primary-700 font-medium">
<NuxtLink
to="/login"
class="text-sm text-primary-600 hover:text-primary-700 font-medium"
>
Zurück zum Login
</NuxtLink>
</div>