Obsah ticketu se na detailu cte, ne jen vypisuje

body je jeden retezec, ale co v nem stoji, urcuje ten, kdo ho naplnil. Krok
"Zalozit nebo doplnit ticket" dosadi {{data}} a sablona objekt prevede na JSON,
takze v obsahu skoncila slozena zavorka vypsana jako odstavec. Necitelne, i kdyz
jsou v ni presne ty udaje, kvuli kterym ticket vznikl.

Nova web/src/components/dashboard/TicketBody.tsx telo prectе:

- veta od cloveka        -> text tak, jak prisel
- cely retezec je JSON   -> tabulka klic a hodnota
- seznam objektu         -> tabulka se sloupci podle klicu
- text a za nim JSON     -> odstavec a pod nim tabulka
- cokoliv, co se neprecte -> text tak, jak prisel

Ctvrta radka je bezny pripad, sablona {{voicebotId}}, {{data}} da presne tohle.
Deli se az od prvni zavorky, od ktere je zbytek platny JSON - bez te druhe
podminky by veta s jednou slozenou zavorkou skoncila rozpulena.

Zanoreni se kresli o uroven niz jako vnorena tabulka, hloubeji uz jako JSON:
tabulka v tabulce v tabulce se necte a odesilatele umi zanorit data hluboko.
Nic se nezahazuje, neprecteny obsah se ukaze jako puvodni text.

Overeno na osmi tvarech tela vcetne toho, ktery na instanci opravdu vznika,
vety se slozenou zavorkou a nedopsaneho JSONu.

Vedle toho zdroje vizualniho navrhu detailu ticketu v design/. Sestavene platno
je v gitignore, je to 2,5 MB generovaneho souboru, ktery vznikne znovu ze
zdroju vedle nej.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-09-02 11:41:18 +02:00
co-authored by Claude Opus 5
parent 40875439e4
commit a6722f9379
8 changed files with 793 additions and 15 deletions
+27
View File
@@ -64,6 +64,33 @@ to napise nahlas misto toho, aby ukazal prazdne misto.
skoro vsechno ostatni - podrobnosti nize v "Zalozeni a doplneni delaji totez".
Cela historie zustava v udalostech ticketu, at uz je v `body` cokoliv.
### Obsah se na detailu cte, ne jen vypisuje
`body` je jeden retezec, ale co v nem stoji, urcuje ten, kdo ho naplnil. Casto
je to veta od cloveka, casto ale cela struktura z cizi aplikace: krok dosadi
`{{data}}` a sablona objekt prevede na JSON. Vypsat takovou zavorku jako
odstavec je necitelne, i kdyz jsou v ni presne ty udaje, kvuli kterym ticket
vznikl.
`TicketBody` proto telo prectе a podle toho vykresli:
| Co v tele je | Jak se to ukaze |
| ------------------------- | -------------------------------------- |
| veta od cloveka | text tak, jak prisel |
| cely retezec je JSON | tabulka klic a hodnota |
| seznam objektu | tabulka se sloupci podle klicu |
| text a za nim JSON | odstavec a pod nim tabulka |
| cokoliv, co se neprecte | text tak, jak prisel |
Ta ctvrta radka je bezny pripad: sablona `{{voicebotId}}, {{data}}` da presne
tohle. Deli se **az od prvni zavorky, od ktere je zbytek platny JSON** - jinak
by veta s jednou slozenou zavorkou skoncila rozpulena.
Zanoreni se kresli o uroven niz jako vnorena tabulka, hloubeji uz jako JSON.
Tabulka v tabulce v tabulce se necte a odesilatele umi zanorit data hluboko.
**Nic se nezahazuje.** Kdyz se struktura precist neda, ukaze se puvodni text.
Uvnitr ulozista se drzi jen `assigneeId`, jmeno se dopocitava pri cteni. Kdyz
resitel ze seznamu zmizi, ticket nespadne - jen se zaloguje a tvari se jako
neprirazeny.