feat(support): file an internal customer note from a ticket - #1461
Conversation
1f37549 to
588749b
Compare
|
EN: DE: DetailsHEAD |
|
EN: DE: DetailsVisual check: Kundennotiz open with subject Support-Ticket 7001 and draft text. Handbook metadata and reality declaration added. Grok quality+logic 0 at 36b736b. Codex refused the declared coverage/e2e-stack/extra-variant gaps; those remain declared as before. CI green. MERGEABLE. |
36b736b to
2b4aff9
Compare
When a customer writes something worth keeping, a clerk had to leave the ticket, open the notes area and retype it. The "Update Issue" row now has a "Kundennotiz" column: "Notiz hinzufügen" opens the existing note composer bound to the customer, with the ticket as subject; the saved note lands in the notes area and the customer's Notes tab, never in the thread. The note draft is owned by the screen (like the reply text), so it survives the reload after Update and is dropped on save or cancel. NoteComposer gains initialSubject and a controlled content mode, blocks content above the API limit of 8000 characters, and loses two submit guards the disabled button already enforced. New tests cover the composer and the panel.
Clear the Kundennotiz draft when the ticket id changes so a leftover text cannot be saved against the next customer. Disable Abbrechen while createSupportNote is still running so a completed request cannot mark saved or wipe a newly opened draft.
Render the note panel only when the loaded issue matches the route id. After createSupportNote, skip parent callbacks if the composer unmounted.
A second click before re-render cannot start two creates. onCreated still runs after unmount so a finished save cannot leave the draft ready to file twice.
Clearing the draft is skipped when the screen has already moved on.
d8a33f5 to
15ad57e
Compare
A create that finishes after a ticket round-trip must not wipe the new draft.
A same-ticket reload spinner still clears the draft. A create that finishes after A→B→A cannot wipe the new draft.
|
EN: DE: DetailsQuality and logic STATUS complete, 0 findings on HEAD |
EN:
A clerk can file an internal customer note from the ticket without putting it in the thread. Switching tickets clears that draft; Cancel is disabled while the save is in flight.
DE:
Aus dem Ticket kann eine interne Kundennotiz gespeichert werden, ohne sie in den Verlauf zu schreiben. Beim Ticketwechsel wird der Entwurf geleert; Abbrechen ist während des Speicherns gesperrt.
Details
Double-submit is blocked with a sync ref. TicketNotePanel renders only when
issueData.idmatches the route. A note create that finishes after a ticket switch does not wipe the new ticket's draft. Darwin Playwright baselinesupport-ticket-note-01-composershows the open Kundennotiz panel with a draft.Declared: no extra shots of the closed button-only state or the post-save toast (the open composer is the new UI); component coverage 98/98/100/100 (unmount-during-reject); no new full-stack e2e-stack case for
support_note.support-dashboard-issue.screen.tsxis not brought to whole-file 100% in this PR (preparatory coverage of a long existing screen; the note panel is covered by component tests).