Šablona fieldEdit (control)
Šablona fieldEdit vkládá do výstupu kolonky COMEX control fieldedit. Ten umožňuje upravit jednu hodnotu přímo v náhledu nebo v dialogu, bez otevření celého formuláře dokumentu. Tužka se zobrazuje vpravo dole vedle hodnoty, takže nepřekáží uprostřed víceřádkového textu.
Při přímé editaci plain textu se na místě hodnoty objeví textová oblast se zachovanou šířkou, písmem, řádkováním a odstavci. Výška roste podle obsahu a reaguje na zúžení dostupného prostoru. Číslo, datum a čas používají jednořádkové typové editory; datum má kalendář a čas selektor času. Volba editoru platí pro přímou editaci i dialog.
Příklad
Parametry controlu
Následující parametry patří běhovému controlu fieldedit. Vkládají se jako elementy cxd-param do cxd-control, případně pomocí editoru definic. Při použití XSL šablony musí šablona příslušné parametry do tohoto výstupu předat.
| Parametr | Význam | Výchozí hodnota |
|---|---|---|
type | Konkrétní editor: auto, text, number, date nebo time. | auto |
dataType | Obecný typ hodnoty: string, number nebo boolean. Nenahrazuje volbu editoru parametrem type. | string |
textMaxLength | Maximální počet znaků textového vstupu, nejméně 1. Netýká se čísla, data ani času. | 250 při přímé editaci, 500 v dialogu |
dialog | true otevře dialog, false umožní přímou editaci na místě hodnoty. | false |
dialogWidth | Šířka dialogu v pixelech; COMEX UI ji přizpůsobí dostupnému prostoru. | 800 |
inputRows | Počet řádků textové oblasti v dialogu, nejméně 2. Přímá textová editace roste podle obsahu. | Výpočet ze šířky dialogu a textMaxLength |
field | Kód kolonky s osmimístným XDS ID, např. E10108760. | Dohledá se v obalu controlu |
value | Aktuální hodnota kolonky. | Hodnota převzatá z obalu controlu |
pdk | Primární klíč dokumentu. | Dohledá se v kontextu kolonky |
docType | Základní typ dokumentu. | Dohledá se v kontextu kolonky |
refresh | Při true obnoví po uložení obsah nadřazené součásti, pokud nabízí obnovu. | false |
Explicitní type má přednost před typem sloupce. Při auto se editor odvodí z metadat sloupce, případně z obecného dataType: text používá textovou oblast, číselné typy NumBox, datum DateBox a čas TimeBox. Ostatní typy zůstávají jednořádkové; pro logický přepínač použijte fieldSwitch.
Maximální délka textu
textMaxLength nastavte podle skutečného omezení cílové kolonky. Control toto omezení ze serveru automaticky nezjišťuje. Má-li poznámka nejvýše 250 znaků, nastavte textMaxLength=250 také pro dialog; bez tohoto nastavení dovoluje dialog zadat až 500 znaků.
Před zápisem se kontroluje délka i platnost hodnoty. Pokud již uložený text přesahuje nově nastavený limit, editor jej při otevření nezkrátí. Zobrazí celý text a upozornění; před uložením je nutné text zkrátit. Zrušení editace ponechá původní hodnotu. Textová editace zachovává odstavce i úvodní a koncové mezery.
Ovládání
- Kliknutí na hodnotu nebo tužku otevře editor.
- V textové oblasti Enter vloží nový řádek; Ctrl+Enter nebo Cmd+Enter uloží hodnotu.
- V jednořádkovém editoru Enter uloží hodnotu.
- Tlačítko se šipkou uloží přímou editaci, tlačítko Uložit tuto hodnotu potvrdí dialog.
- Escape editaci zruší. Při přímé editaci vrátí fokus na tužku.
- Kliknutí mimo přímý editor se změněnou hodnotou nabídne potvrzení uložení. Kalendář a časový selektor patří do probíhající editace a samy hodnotu do dokumentu neukládají.
Příklady
Poznámka do 250 znaků v dialogu
Příklad HTML výstupu pro control; field a kontext dokumentu nahraďte podle aplikace:
<cxd-control name="fieldedit">
<cxd-param name="field" value="E10108760"></cxd-param>
<cxd-param name="type" value="text"></cxd-param>
<cxd-param name="dialog" value="true" type="boolean"></cxd-param>
<cxd-param name="textMaxLength" value="250" type="number"></cxd-param>
</cxd-control>
Přímá editace poznámky
Použijte stejné nastavení a změňte dialog na false. Textová oblast se přizpůsobí skutečnému textu; inputRows se pro přímou editaci nepoužívá.
Datum nebo čas
Nastavte type=date nebo type=time. Editor zůstane jednořádkový a zobrazí ikonu příslušného selektoru. Je-li typ sloupce správně určen v metadatech, stačí type=auto. textMaxLength délku data ani času neomezuje.
Návaznost na XSL šablonu
Historická XSL šablona používá také vlastní parametry columnName (název sloupce, výchozí name()), value (hodnota buňky, výchozí .) a fontSize (volitelná úprava písma). Tyto názvy nelze zaměňovat s běhovým kontraktem controlu; zejména columnName odpovídá jeho vazbě na field. Samotný control parametr fontSize nečte a při přímé editaci přebírá typografii náhledu.
U starší verze XSL ověřte, že požadované type, dialog a textMaxLength skutečně vznikají jako cxd-param v generovaném HTML. Aktualizace knihovny COMEX sama obsah XSL šablony nemění. Pokud šablona parametr ještě nepředává, je nutné doplnit jeho předání v šabloně nebo vložit control přímo.
Původní ukázka šablony: