feat(tickets): Rückfragen-Dialog, Verlinkungen, Entwurfssicherung + PWA-Vorbereitung

- Feedback: fixNote (Changelog), agentContext (intern), thread (Q&A-Verlauf);
  3 gefilterte Ansichten (Rückfragen/Offen/Geschlossen)
- Tickets-Text: klickbare Tier-Links (ID→Name), Ticket→Ticket-Links (?focus=),
  Markdown-Links; Antwort-Entwurf pro Ticket in localStorage
- "Fehler melden": Entwurf übersteht App-Wechsel/Schließen (ein gemeinsamer Entwurf)
- entityName als Hyperlink zum referenzierten Datensatz

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 22:38:23 +02:00
parent b9021fe577
commit dcf0e40f9b
18 changed files with 2592 additions and 154 deletions

View File

@@ -875,6 +875,7 @@ export const de = {
'gerbil-detail': 'Rennmausakte',
'litter-detail': 'Wurf',
'contact-detail': 'Kontakt',
'rpro3-import': 'RennmausPro-Import',
},
submit: 'Senden',
submitting: 'Wird gesendet …',
@@ -929,6 +930,30 @@ export const de = {
answeredOn: 'Beantwortet am',
answeredToast: 'Antwort gesendet.',
emptyAnswer: 'Bitte gib eine Antwort ein.',
/** Gefilterte Verlinkungen (wie die Filter-Chips der Rennmaus-Liste). */
filters: {
/** Gruppe „Rückfragen": Tickets im Dialog (NeedsInfo + Answered). */
dialog: 'Rückfragen',
/** Gruppe „Offen": noch nicht bearbeitete Tickets. */
open: 'Offen',
/** Gruppe „Geschlossen": erledigte Tickets mit Changelog. */
closed: 'Geschlossen',
},
/** Leertext je gefilterter Ansicht. */
emptyDialog: 'Aktuell keine Tickets im Dialog.',
emptyOpen: 'Keine offenen Tickets.',
emptyClosed: 'Noch keine geschlossenen Tickets.',
/** Changelog (fixNote) auf geschlossenen Tickets. */
changelogLabel: 'Was wurde geändert',
/** Überschrift des Frage/Antwort-Verlaufs (frühere Runden). */
threadLabel: 'Bisheriger Verlauf',
/** Rollen-Beschriftungen im Verlauf. */
threadMaintainer: 'Rückfrage',
threadBreeder: 'Deine Antwort',
/** Tooltip am verlinkten Datensatz-Namen (Tier/Wurf/Kontakt). */
entityLinkTitle: 'Datensatz ansehen',
/** Link-Beschriftung für eine im Text referenzierte andere Ticket-Nummer. */
ticketRefLabel: 'verknüpftes Ticket ansehen',
},
},
/** NACHVERFOLGUNG: Datenherkunft eines importierten Tiers (Rennmausakte). */