TaskDialog — existující úkol, dokument: autosave, žádný edit mód (view = edit); .acrm-dialog.task, střední 640, roste s obsahem do 80vh; React <Dialog size="m"> z @acrm/ui
Úkol Uloženo 14:32
Připravit podklady pro a poslat rekapitulaci — termíny, rozsah pilotu a návazné kroky probrat s ještě před schůzkou.
podklady-kp.pdf1,2 MB
Projít smluvní podmínky 15. 7. PN
Sestavit kalkulaci na 50 uživatelů 17. 7. ŠN
Plášť je kanon — .acrm-dialog + modifikátor .task. Žádné Uložit: text je contenteditable přímo ve view, autosave, stav „Uloženo" v hlavičce. Checkbox u textu = hotovo. Reference v textu jsou chipy (= relace úkolu); chips řádek pod textem drží relace mimo text + „Propojit". Přílohy = řádek dlaždic (náhled · název · velikost) pod chips řádkem + „Přiložit" (idiom Propojit, vkládání i Ctrl+V). Podúkoly = vnořený výpis (anatomie DS.TaskList) s „Přidat podúkol". Patička: meta lišta Termín · Realizátor · Typ · Priorita vlevo, vpravo ⋮ (jediná položka Smazat) + Zavřít Esc.
TaskDialog — nový úkol, commit: tatáž plocha, jen s patičkou Vytvořit ⌘↵ · Vytvořit další · Esc; kontext otevření = předvyplněná relace v chips řádku
Nový úkol
Vytvořit další
Jedno pole, žádné labely, žádný popis. Otevřeno z detailu záznamu → záznam je předvyplněná relace v chips řádku (origin kontext), ne text. Realizátor default = ty. Po Vytvořit se dialog zavře (s „Vytvořit další" vyčistí a zůstane); úkol se pak už vždy otevírá v dokumentovém stavu.
Mobil — pod 720 px je KAŽDÝ dialog šuplík ze spoda (bottom sheet): plná šířka, zaoblení jen nahoře, grabber, patička nad safe-area, výška podle obsahu (strop 92 %); TaskDialog = první instance sjednocení
nový úkol = commit — jediné velké CTA přes celou šířku; „Vytvořit další" na mobilu není
Nový úkol
existující úkol = dokument — autosave, jen meta chips; víc obsahu = vyšší šuplík
Úkol Uloženo 14:32
Připravit podklady pro a poslat rekapitulaci ještě před schůzkou.
Projít smluvní podmínky 15. 7. PN
Jednotný mobilní kanon všech dialogů — šuplík dědí třídu i obsah beze změny. Commit má patičku ve dvou řádcích: meta chips a pod nimi jediné velké CTA přes celou šířku („Vytvořit další" je jen desktopová afordance). Tlačítka Zrušit/Zavřít nahrazuje gesto dolů a ✕; ⋮ dokumentu zůstává v patičce vpravo — malé bílé tlačítko na stejné pozici jako na desktopu (akce mají vždy stejné místo). Gesto dolů / tap na scrim = Esc; rozepsaný commit se před zahozením zeptá (confirm malý). Klávesnice zvedá patičku. Overlaye (@ search, datepicker, dropdowny, ⋮) se otevírají jako druhý šuplík nad prvním.
Overlaye — portálované, bez nadpisů; @ v textu i „Propojit" otevírají týž referenční search
@ / Propojit — referenční search přes všechny povolené typy; předfiltrováno dle kontextu
Typ / Priorita — prostý dropdown
Nízká
Střední
Vysoká
⋮ — jediná položka, destruktivní
Smazat
Výpis — DS.TaskList beze změny anatomie; prop title → text, řádek renderuje text v jedné řádce, reference jako prostá jména
Připravit podklady pro Komerční pojišťovnu a poslat rekapitulaci — termíny, rozsah pilotu a návazné kroky… 10. 7. ŠN
Ozvat se Erikovi kvůli přístupům do pilotního prostředí 24. 7. PN
Poslat zápis ze schůzky 18. 7. ŠN
Chip z textu se ve výpisu nerozbaluje — renderuje se jako prosté jméno (strip, stejně jako ==zvýraznění== v náhledu poznámky). Víc řádek textu = jedna řádka s ellipsis. Klik na řádek otevírá TaskDialog; žádný jiný editor úkolu neexistuje.
Pravidla
Plášť je kanon. .acrm-dialog + modifikátor .task, střední 640, v Reactu <Dialog size="m"> z @acrm/ui. Roste s obsahem do 80vh, pak scrolluje tělo; dock ~11vh. Mezera mezi akčními tlačítky v patičce = vždy var(--sp-3), v celé app stejná.
Jeden dialog pro celou app. Jediný host TaskDialogHost v AppShellu + openTask(); TaskForm, AddTaskForm i TaskPopup zanikají. Odtud plynou jednotné toasty, mazání i Esc.
Dva stavy, dvě třídy. Nový úkol = commit (Vytvořit ⌘↵, Esc ruší, Vytvořit další). Existující úkol = dokument (autosave, „Uloženo" v hlavičce, žádný primár). Nikdy nemíchat.
Žádný edit mód. Otevřený úkol je rovnou editovatelný — text i meta na místě, view = edit. Zavření = hotovo, nic se nepotvrzuje.
Jedno pole. Úkol nemá název a popis. Text je pravda — výpisy ho zkracují do jedné řádky, fulltext i našeptávání jedou nad ním.
Reference se píšou do textu. @ otevře referenční search (osoba · firma · obchod · projekt · schůzka · kolega). Chip v textu = relace úkolu; smazáním chipu z textu relace zaniká.
Chips řádek = relace mimo text. Kontext při založení a „Propojit" — stejný meta řádek jako u poznámky. Textové i ruční relace jsou rovnocenné, liší se jen původem.
Přílohy. Řádek dlaždic (.tk-att) pod chips řádkem — náhled · název · velikost, poslední je „Přiložit" (idiom Propojit); vkládání i Ctrl+V. Bez příloh řádek není a „Přiložit" sedí v chips řádku. Výpisy ukazují jen sponku s počtem.
Meta lišta bez labelů. Termín · Realizátor · Typ · Priorita — chip nese hodnotu, bez hodnoty název pole. Realizátor je vždy právě jeden uživatel; @kolega v textu ho nemění.
Checkbox = hotovo. Kruhový checkbox překlápí binární osu stavu (statusKind); dropdown Stav se ukazuje jen u typu s více stavy. Hotové řadí výpis na konec.
⋮ jediná položka. Smazat, destruktivní, s confirmem (malý 400) — sedí v patičce vpravo vedle Zavřít Esc, ne v hlavičce. Nic dalšího se do kebabu neschovává.
Overlaye portálované, bez nadpisů. Referenční search, datepicker, priorita i ⋮ žijí nad dialogem — jinak je ořízne overflow pláště (.acrm-popover 101 nad dialogem 80/90; bez portálu by ho ořízl overflow).
Podúkol dědí plochu. V dialogu je vnořený výpis podúkolů (anatomie DS.TaskList) s „Přidat podúkol"; podúkol se otevírá v tomtéž dialogu, rodič je entity chip v hlavičce (zóna 1).
Mobil = šuplík ze spoda. Pod 720 px se dialog prezentuje jako bottom sheet — plná šířka, zaoblení nahoře, grabber, patička nad safe-area, výška podle obsahu (strop 92 %). Commit má jediné velké CTA přes celou šířku („Vytvořit další" jen na desktopu). Gesto dolů / scrim = Esc (rozepsaný commit se ptá); overlaye = druhý šuplík nad prvním. Platí pro všechny dialogy, ne jen úkol.
LEGACYafb5f42