Některé seznamy je možné konfigurovat pomocí XML formulářů. Konfigurace se použije pro všechny uživatele Portálu.
Ukázka nastavení seznamu lékařských prohlídek - XML formulář s popisem "config_browserlekarskeprohlidky" :
<?xml version="1.0"?> <config showFooter="1"> <style> .poznamka { color: pink; } </style> <column code="col-line" visible="1" /> <column code="col-datum-vzniku" addClass="background-orange" /> <column code="col-cas-rezervace" visible="0" /> <column code="col-datum-rezervace" visible="0" /> <column code="col-vysledek" align="left" footer="F-Výsledek"/> <column code="col-detail" visible="1" /> <column code="col-jmeno" htmlConvert="1" before="col-datum-vzniku"/> <column code="col-prijmeni" after="col-jmeno" visible="1" addClass="font-weight-bold"/> </config>
XML formulář musí mít popis config_<kod-seznamu>. Kód seznamu lze zjistit v HTML zdroji v atributu data-code
tabulky.
V tomto příkladě je to "config_browserlekarskeprohlidky".
Stejným způsobem lze zjistit kódy jednotlivých sloupců - jsou uloženy v atributu data-code
záhlaví sloupce th.
Některé sloupce mohou být ve výchozím nastavení skryté. Jejich kódy jsou vypsány v atributu data-invisible-fields
tabulky.
Je možné nastavit tyto parametry seznamu (pomocí atributů hlavního tagu config
nebo jako vnořené tagy):
noHeader="1"
- vypne/zapne zobrazení záhlaví seznamu (Pozor! Hodnota 1 vypíná zobrazení)showFooter="1"
- zapne/vypne zobrazení zápatí seznamumaxPageRows="20"
- nastaví maximální počet řádků na stránceshowMessages="0"
- vypne zobrazení případných chybových hlášektableId="..."
- nastaví HTML id tabulkyrowClickLink="?menuid=...."
- nastaví link, který se zobrazí po kliknutí na řádek tabulkycssClass="..."
- nastaví css třídu tabulkytitle="Nadpis seznamu"
- nastaví nadpis seznamusqlFilter="..."
- doplní filtr do SQL dotazu seznamu
Konfigurace jednotlivých sloupců se provádí pomocí vnořených tagů column
. Pomocí atributu code
se určí konfigurovaný sloupec.
Pro sloupce lze nastavit tyto vlastnosti:
type="typ_sloupce"
- typ sloupce. Může být default
(to je výchozí hodnota), hidden
, line
, text
, select
, url
, comment
profil="kody-profilu"
- Kódy uživatelských profilů, pro které se nastavení sloupce uplatní. Je možné zadat více kódů oddělených středníkem.before="kod-jineho-sloupce"
- přesune tento sloupec před zadaný sloupec (před sloupec se zadaným kódem kod-jineho-slopce)after="kod-jineho-sloupce"
- přesune tento sloupec za zadaný sloupec (za sloupec se zadaným kódem kod-jineho-slopce)align="right"
- Nastaví zarovnání left, right nebo centersortSQL="jmeno pole"
- určí jméno SQL pole, podle kterého se seznam seřadí při řazení podle tohoto sloupcesortSQLDesc="jmeno pole"
- totéž jako sortSQL, ale použije se při sestupném řazeníexcludeFromGroupBy="1"
- pole nebude v "GROUP BY" části SQL dotazu.format="..."
- určuje formát zobrazení pole.
(date, time, timestamp, datetime, year, finedate, finedatetime, weekday, weekdayshort, kc, curr, anone,
int, float, number, number0, number1, number_1, number2, number_2, hodiny, minuty, sekundy, timeofday
)link="..."
- link, který se zobrazí po kliknutí na polelinkAttributes="..."
- HTML atributy odkazu, například linkAttributes="target='_blank'"
style="..."
- css stylclass="..."
- css třídaaddClass="..."
- css třída, která se přídá k již nastavené (výchozí) hodnotěheader="..."
- nadpis sloupcefooter="..."
- patička sloupceshowSum="0"
- určuje, jestli se má v patičce zobrazit součettext="..."
- text, který se přímo zobrazí - používá se například u prokliku na detail záznamuvisible="0"
- skryje/zobrazí sloupecwrap="1"
- zapne/vypne zalamování sloupceordering="0"
- zakáže/povolí řazení podle tohoto sloupcehtmlConvert="0"
- vypíná/zapíná konvertovaní HTML textu (nahrazování speciálních znaků jejich entitami, např znak "<" nahradí entitou "<")translationPrefix="..."
- umožňuje přeložit texty z databáze. K hodnotě se připojí prefix a výsledný text se pak vyhledá v překladechtitleTranslationPrefix="..."
- umožňuje přeložit text titulkutranslationValueIndex="index_nebo_kod_pole_pro_preklad"
- index nebo kód pole, které určuje hodnotu pro překlad - hodnota tohoto pole se připojí k (title)translationPrefixsqlFieldIndex2="index_nebo_kod_pole_2"
- index nebo kód pole, jehož hodnota se zobrazí v závorce za hodnotou konfigurovaného poletitleFieldIndex="index_nebo_kod_pole"
- index nebo kód pole, jehož hodnota se zobrazí jako title (tj. text, který se zobrazí po najetí myší)translateText="0/1"
- umožňuje zapnout přímý překlad hodnot z databáze - v překladech se vyhledá načtená hodnota (bez doplnění prefixu)
Je možné přidat i úplně nový sloupec. Ten může být přímo z tabulky, která už je v dotazu nebo lze pomocí subselectu vybrat i data z jiných tabulek.
Příklad pro zobrazení počtu pracovních poměrů osoby:
<column header="Počet PP"> <sqlFieldName>(SELECT COUNT(*) FROM PracovniPomer P2 WHERE P2.RC = PracovniPomer.RC) AS PocetPP</sqlFieldName> </column>
Příklad zobrazení odkazu v seznamu školení (XML config_browserskoleni). Pokud není zadán text, zobrazí se přímo URL. Pokud je zadán, zobrazí se tento text. Speciální hodnota "IMG"
zobrazí obrázek.
<column sqlFieldName="D.URLexternihoSkoleni" type="url" text="IMG" linkAttributes="target='_blank'"/>
Pomocí tagu <html>
je možné do stránky vložit libovolný text včetně HTML značek.
Atributem position
tagu html
se nastaví, kde se zadaný text zobrazí:
<html position="head"> ... obsah ... </html>
- text se zobrazí hned pod nadpisem nad filtry<html position="top"> ... obsah ... </html>
- text se zobrazí nad tabulkou - toto je výchozí hodnota<html position="bottom"> ... obsah ... </html>
- text se zobrazí pod tabulkou<column type="comment" sqlFieldName="Poznamka" addClass="poznamka" headerColSpan="1" header="Poznámka:"/>Zobrazí obsah datového pole "Poznamka" pod každým řádkem.
Pomocí tagu <xml>
je možné do stránky vložit obsah XML formuláře.
Atributem id
se musí zadat id XML formuláře, který se má zobrazit.
Stejně jako u HTML textu lze atributem position
nastavit, kde se má XML formulář zobrazit.
Ve formuláři jsou nastaveny proměnné z filtru, např.
<xml id="123" position="top"/>