RON dokumentace

Konfigurace seznamů

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):

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:

Formát pole může být nastaven na některou z těchto voleb

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'"/>
    

Doplňující řádek s poznámkou

        <column type="comment" sqlFieldName="Poznamka" addClass="poznamka" headerColSpan="1" header="Poznámka:"/>
    
Zobrazí obsah datového pole "Poznamka" pod každým řádkem.

Překlady textů

V konfiguraci je možné nadefinovat texty pro překlad do různých jazyků. Budou platné jen pro HTML stránku s příslušným seznamem.

        <translation id="SC_dopravni_prostredek" text="Dopravní prostředek" text-eng="Type of transport" />
    

Konfigurace filtrovacího formuláře nad seznamem

U některých seznamů je možné konfigurovat filtrovací formulář nad seznamem (výběr rozdělení atd.) a případně přidávat nové filtry. K tomu může sloužit samostatný XML formulář config_filterform (platí pro všechny seznamy), nebo vnořený tag <filterform> v konfiguraci seznamu.

        <translation id="SC_dopravni_prostredek" text="Dopravní prostředek" text-eng="Type of transport" />

        <filterform>
            <filter name="jenzahranicnisc">
                <!-- změní barvu pozadí volby "Jen zahraniční" ve filtru u seznamu služebních cest -->
                <option key="1" cssClass="background-lightgray padding-all" />
            </filter>

            <!--
              Vytvoří nový filtr pro výběr služebních cest podle cílového státu.
            -->
            <filter name="SC_cilovy_stat" type="options" caption="Cílový stát">
                <optionsSql>SELECT Kod, Popis FROM Stat WHERE PovolitVeSluzCeste = 1 ORDER BY Popis</optionsSql>
                <option key="">Vše</option>
                <sqlFilter>CilovyStat = </sqlFilter>
            </filter>

            <!--
              Vytvoří nový filtr pro výběr služebních cest podle dopravního prostředku.
              Jednotlivé volby jsou nadefinovány pomocí tagů option. Některé volby mají svůj vlastní SQL výraz, jiné použijí sqlFilter zadaný u tagu filter.
            -->
            <filter name="SC_dopravni_prostredek" type="links" caption="SC_dopravni_prostredek" sqlFilter="SluzebniCesta.DopravniProstredek = ">
                <option key="">Vše</option>
                <option key="NULL" cssClass="color-red" sqlFilter="SluzebniCesta.DopravniProstredek IS NULL">nezadáno</option>
                <option key="AUS">Služebák</option>
                <option key="AUV">Vlastní vozidlo</option>
                <option key="X" cssClass="font-italic" sqlFilter="SluzebniCesta.DopravniProstredek NOT IN ('AUS', 'AUV')" title="Je zadáno, ale není to AUS ani AUV">ostatní</option>
            </filter>

            <!--
              Vytvoří nový filtr pro výběr služebních cest, které mají vyplněný alespoň jeden řádek.
              Volbou showSelectedItem="0" se zajistí, že je filtr "přepínací" (vybraná volba se nezobrazí a zobrazuje se jen odkaz pro změnu nastavení)
            -->
            <filter name="jen_s_radkem_sc" type="links" defaultValue="0" showSelectedItem="0">
              <option key="1" sqlFilter="EXISTS (SELECT * FROM RadekSluzebniCesty WHERE SluzebniCesta_ID = SluzebniCesta.Id)">Jen s řádky</option>
              <option key="0">I bez řádků</option>
            </filter>

            <!--
              Vytvoří nový filtr pro výběr služebních cest, které mají vyplněný alespoň jeden řádek účtování. Zobrazí jej jako checkbox.
            -->
            <filter name="jen_s_uctovanim_sc" type="checkbox" caption="Jen s řádkem účtování">
                <sqlFilter>EXISTS (SELECT * FROM RadekUctovaniSCesty WHERE SluzebniCesta_ID = SluzebniCesta.Id)  OR  DatumCasOd >= GETDATE()</sqlFilter>
            </filter>

            <!--
               pro vytváření a konfiguraci filtru rozdělení je potřeba použít samostatný tag <rozdelenifilter>
            -->
            <rozdelenifilter name="rozdeleni_USER1" typRozdeleni="2" />
        </filterform>
    

Základní nastavení formuláře lze provést pomocí atributů tagu <filterform>:

Nastavení jednotlivých filtrů lze provést pomocí atributů tagu <filter>:

Jednotlivé volby pro filtry typu "links" nebo "options" je možné načíst z databáze (nastavením atributu optionsSql), nebo zadat pomocí vnořených tagů <option>. Ty mohou mít atributy:

Některé předdefinované filtry mohou mít další volby:

Filtr pro datum od - do může zobrazovat odkazy pro rychlé nastavení předdefinovaných hodnot. Nastavuje se atributem links nebo addlink (přidá nový k existujícím), například takto:

        <filter name="datumod" addlink="prevyear"/>
    

Jednotlivé hodnoty se oddělí středníkem. Lze použít hodnoty today, currentday (stejné jako today), currentmonth, currentyear, prevmonth, currentquarter, prevyear, nextyear.

Tag <rozdelenifilter> může mít navíc parametry:

Vložení libovolného textu

Pomocí tagu <html> je možné do stránky vložit libovolný text včetně HTML značek. POZOR! Nevkládejte do <html> javascript! Pro ten použijte samostatný tag <script> (viz dále).

Atributem position tagu html se nastaví, kde se zadaný text zobrazí:

Vložení XML formulářů

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"/>

Vložení javascriptu

Pomocí tagu <script> je možné do stránky vložit javascript. Používejte pro javascripty výhradně tento způsob, protože vložení do tagu <html> nemusí fungovat správně při nastavení CSP hlavičky.

Vložení odkazu pro kopírování CSV do schránky (pro vložení do Excelu)

  <html>
    <div class="margin-top-2"><a href="#" class="copy-to-clipboard" data-copy-selector=".browser">Zkopírovat do schránky</a></div>
  </html>

Zobrazí nad seznamem odkaz pro zkopírování obsahu tabulky do schránky. Pokud je potřeba zamezit kopírování nějakého sloupečku (například pokud obsahuje jen odkaz na editaci), nastaví se v konfiguraci daného sloupce:

  <column code="KOD-SLOUPCE" addClass="do-not-copy-to-clipboard" />