1. Základní informace

1.1. Popis ovládacího prvku

Image je ovládací prvek určený k vložení obrázku buď pomocí tlačítka „Procházet…“, nebo pomocí klávesy „CTRL+V“ z clipboardu. Maximální velikost vkládaného obrázku může být omezena na předem stanovenou velikost. Image používá databázový typ „int“, a do databáze ukládá ID souborové přílohy, která je fyzicky uložena na disku v adresáři „Files“, a popisné údaje s názvem souboru a jeho velikostí má uložené v samostatném záznamu v databázové tabulce „sfiles“.

1.2. Vytvoření nového ovládacího prvku

1.3. Editace nebo smazání ovládacího prvku

  • U každého existujícího ovládacího prvku se po jeho levé straně v editačním formuláři zobrazuje ikona tužky, která slouží pro změnu nastavení ovládacího prvku nebo jeho smazání.
  • Jednotlivé ovládací prvky mohou být v editačním formuláři vertikálně přesouvány metodou Drag&Drop. Přesunutí spočívá v chycení ovládacího prvku nejlépe za jeho název umístěný v levém sloupci editačního formuláře, a následném tažení až na požadované místo v editačním formuláři.
  • Z bezpečnostních důvodů je důležité mít povolenou funkci přesouvání ovládacích prvků pomocí zaškrtávacího pole „Drag&Drop“ umístěného nad toolbarem s ovládacími prvky. Při každém přihlášení do aplikace je toto pole nezaškrtnuté.
  • Smazání image má za následek nevratné smazání databázového sloupce spojeného s tímto image v databázi, a tudíž i ke smazání jeho hodnot ve všech záznamech databázové tabulky, a zároveň i ke smazání všech souborových příloh, které tyto záznamy reprezentují.

2. Seznam záložek v dialogu nastavení ovládacího prvku

  • Obecné – Nastavení obecných vlastností
  • Tlačítko – Nastavení tlačítka, které může být zobrazováno napravo vedle ovládacího prvku
  • Nápověda – Nastavení textu nápovědy, který může být zobrazován v pravé části editačního formuláře
  • Filtr – Nastavení filtru, který může být zobrazován v nahlížecí tabulce v záhlaví sloupce
  • Práva – Nastavení práv
  • Administrace – Nastavení ostatních vlastností

2.1. Záložka „Obecné“

Obrázek.png

2.1.1. Název

  • Název ovládacího prvku zobrazovaný v editačním formuláři v samostatném sloupci s barevným pozadím nalevo vedle samotného ovládacího prvku.

2.1.2. Zkrácený název

  • Volitelný název ovládacího prvku zobrazovaný v záhlaví nahlížecí tabulky, pokud je ovládací prvek zvolen jako jeden ze sloupců nahlížecí tabulky.
  • Je-li zkrácený název uveden, zobrazuje se celý název ovládacího prvku v tooltipu nad zkráceným názvem.
  • Není-li zkrácený název uveden, zobrazuje se v záhlaví nahlížecí tabulky celý název ovládacího prvku.
  • Pomocí zkráceného názvu „ “ (pevná mezera) lze úplně skrýt název ovládacího prvku zobrazovaný v nahlížecí tabulce.

2.1.3. Slovník…

  • Slovník zobrazuje seznam názvů ostatních ovládacích prvků, formulářů, nahlížecích stránek, kategorií, aplikací a aplikačních skupin, použitých napříč celou aplikací.
  • Vyhledávání ve slovníku slouží k navržení správného názvu ovládacího prvku a k udržení konzistence názvosloví v celé aplikaci tak, aby se ovládací prvky se stejným významem umístěné na různých místech v aplikaci nazývaly stejným způsobem.

2.1.4. Maximální velikost

  • Maximální velikost nahrávaného souboru v MB, který je uploadován použitím tlačítka „Procházet…“.
  • Soubory větší než nastavená maximální velikost, jsou automaticky zahazovány.

2.1.5. Možnosti

  • Vyžadované pole
    • Zaškrtnutí vyžadovaného pole určuje, zda má být v editačním formuláři vyžadováno vložení souborové přílohy před uložením záznamu do databáze.
    • Nastavení vyžadovaného pole nemá vliv na databázový typ sloupce, který je přidružen k aktuálnímu ovládacímu prvku v databázi. Všechny databázové sloupce jsou nastaveny tak, že akceptují i databázovou hodnotu „null“.
    • Hodnota může být v databázi uložena jako celé číslo nebo jako databázová hodnota „null“. Při sestavování podmínek databázového dotazu je tedy důležité počítat i s alternativou, že je ve sloupci v databázové tabulce uložena kromě nuly – celého čísla – také databázová hodnota „null“. Taková podmínka může vypadat v řeči NG následovně: image rovná se „0“ nebo image není definováno. A nyní v jazyce SQL: ng_image = 0 OR ng_image IS NULL.
  • Skrýt tlačítko „Odstranit“
    • Zaškrtnutí tohoto pole určuje, zda má být skryté tlačítko „Odstranit“, které slouží k vymazání stávající souborové přílohy uložené v ovládacím prvku. I při skrytém tlačítku „Odstranit“ je možné nahrát jinou souborovou přílohu pomocí tlačítka „Procházet…“.
  • Skrýt tlačítko „Přejmenovat“
    • Zaškrtnutí tohoto pole určuje, zda má být skryté tlačítko „Přejmenovat“, které slouží k přejmenování stávající souborové přílohy uložené v ovládacím prvku.
  • Skryté pole
    • Nastavení skrytého pole určuje, zda má být ovládací prvek součástí editačního formuláře, avšak v uživatelském režimu nemá být viditelný.
    • Skrytý ovládací prvek včetně vyplněné hodnoty je možné dohledat ve zdrojovém kódu webové stránky. Nelze ho tedy používat jako součást bezpečnostních opatření, k tomu se používají práva na ovládací prvek.
  • Aktualizovat formulář po uploadu souboru
    • Zaškrtnutí tohoto pole určuje, zda má být editační formulář automaticky aktualizován po úspěšném uploadu souborové přílohy, resp. zda mají být aktualizovány všechny ostatní ovládací prvky v editačním formuláři.

2.1.6. V editačním formuláři

  • Zobrazit odkaz
    • Zaškrtnutí tohoto pole určuje, zda má být souborová příloha v editačním formuláři zobrazena ve formě odkazu.
  • Zobrazit obrázek
    • Zaškrtnutí tohoto pole určuje, zda má být souborová příloha v editačním formuláři zobrazena ve formě obrázku o nastavené maximální šířce nebo výšce v pixelech.

2.1.7. V nahlížecí tabulce

  • Zobrazit odkaz
    • Zaškrtnutí tohoto pole určuje, zda má být souborová příloha v nahlížecí tabulce zobrazena ve formě odkazu.
  • Zobrazit obrázek
    • Zaškrtnutí tohoto pole určuje, zda má být souborová příloha v nahlížecí tabulce zobrazena ve formě obrázku o nastavené maximální šířce nebo výšce v pixelech.

2.1.8. V detailech

  • Zobrazit odkaz
    • Zaškrtnutí tohoto pole určuje, zda má být souborová příloha v detailech nahlížecí tabulky zobrazena ve formě odkazu.
  • Zobrazit obrázek
    • Zaškrtnutí tohoto pole určuje, zda má být souborová příloha v detailech nahlížecí tabulky zobrazena ve formě obrázku o nastavené maximální šířce nebo výšce v pixelech.

2.2. Záložka „Tlačítko“

Obrázek.png

2.2.1. Nadpis

  • Nadpis určuje název tlačítka, které se volitelně zobrazuje napravo vedle samotného ovládacího prvku v editačním formuláři.
  • Nevyplněný název značí, že tlačítko nebude zobrazeno.

2.2.2. Šířka

  • Šířka tlačítka uvedená v pixelech.

2.2.3. Klient

  • Pole „Klient“ určuje seznam javascriptových příkazů, které se vykonají po stisknutí tlačítka. Rozbalovací seznam nabízí následující často používané javascriptové funkce:
    • Opravdu chcete… ? – return confirm('Opravdu chcete ... ?');
    • AJAX… – return bt_Eval(this, 'ngef.aspx?test', 'evalFunction');

2.2.4. Server

  • Dojde-li k úspěšnému vyhodnocení javascriptových příkazů, nebo pokud nejsou žádné javascriptové příkazy definované, bude následně spuštěn skript na straně serveru. Odkaz „Upravit skript“ slouží k otevření integrovaného grafického návrháře skriptů, ve kterém se definuje skript, resp. serverová část tlačítka.
  • Vykonávání javascriptových příkazů lze přerušit příkazem „return false;“, který zamezí i následnému spuštění skriptu na straně serveru.

2.3. Záložka „Nápověda“

Obrázek.png

2.3.1. Nápověda

  • Nápověda je text zobrazovaný napravo od ovládacího prvku v editačním formuláři.
  • Nápovědy všech ovládacích prvků začínají na stejné svislé linii v rámci celého editačního formuláře.
  • Text – text nápovědy je definován ručně zadaným textovým řetězcem ve víceřádkovém textovém poli pod radio buttonem
  • Z dotazu – text nápovědy je definován výsledkem databázového dotazu, který je vyhodnocen při otevření editačního formuláře
  • Detailní popis nápovědy je uveden v samostatné příručce Nastavení vzhledu.

2.3.2. Poznámky

  • Poznámky slouží pro zadání libovolného textu určeného pro správce aplikace.

2.4. Záložka „Filtr“

Obrázek.png

2.4.1. Možnosti

  • Zobrazit filtr v nahlížecí tabulce
    • Zaškrtnutí tohoto pole určuje, zda má být v nahlížecí tabulce umožněno filtrování záznamů podle hodnot přítomných v databázi ve sloupci spojeném s tímto ovládacím prvkem. Rozbalovací seznam filtru je umístěný v záhlaví nahlížecí tabulky pod názvem ovládacího prvku.
    • V rozbalovacím seznamu filtru se nezobrazují konkrétní hodnoty přítomné v databázi ve sloupci spojeném s tímto ovládacím prvkem, pouze možnosti
      • Hledat – vyhledávání záznamů v databázi, které mají v názvu souborové přílohy uloženou hledanou hodnotu, nebo v případě zapnutého indexování souborových příloh i v jejím obsahu.
      • Prázdný – vyhledání záznamů v databázi, které mají ve sloupci spojeném s tímto ovládacím prvkem uloženou hodnotu 0 nebo databázovou hodnotu „null“
      • Neprázdný – vyhledání všech ostatních záznamů v databázi

2.5. Záložka „Práva“

Obrázek.png

2.5.1. Práva

  • Práva definují seznam uživatelských skupin a uživatelů, kteří mají oprávnění na zobrazení ovládacího prvku v editačním formuláři, a na zobrazování hodnot tohoto ovládacího prvku všude jinde v aplikaci.
  • Uživatelé, kteří nemají práva na ovládací prvek,
    • nevidí ovládací prvek ani jeho hodnotu v editačním formuláři, a ani ho nemohou dohledat ve zdrojovém kódu stránky v internetovém prohlížeči,
    • nemohou zobrazit sloupec spojený s tímto ovládacím prvkem v nahlížecí tabulce nebo jiném vizuálním ovládacím prvku určeném pro prohlížení dat,
    • mohou vytvořit záznam v editačním formuláři, ve kterém existuje ovládací prvek, na který nemají práva, hodnota těchto ovládacích prvků je pak nastavena na databázovou hodnotu „null“,
    • nemohou smazat žádný záznam v editačním formuláři, ve kterém existuje ovládací prvek, na který nemají práva.
  • Správce aplikace může způsobit logickou chybu, kdy se pomocí javascriptové funkce odkazuje na ovládací prvek, který pro některé uživatele nemusí být přístupný z pohledu práv. Proměnná „ng_“ se pak nahradí

za hodnotu uloženou v databázi v tomto ovládacím prvku namísto odkazu na objekt samotného ovládacího prvku. Tato chyba ve většině případů zastaví načítání editačního formuláře, ten se celý disabluje, a uživateli je zobrazeno hlášení, že má kontaktovat administrátora aplikace. Tento druh chyby je možný z části eliminovat pomocí reportu „Ovládací prvky (JavaScript + nedostatečná práva)“.

2.5.2. Zobrazit hodnotu

  • Zobrazení hodnoty ovládacího prvku může být omezeno pouze na uživatele, kteří daný databázový záznam vytvořili, anebo jsou nastaveni jako spoluvlastníci všech záznamů v nastavení editačního formuláře.
  • Radio button obsahuje následující typy zobrazení hodnoty:
    • Všem uživatelům – ovládací prvek včetně jeho hodnoty bude zobrazen všem uživatelům, kteří mají právo na daný ovládací prvek
    • Pouze vlastníkovi nebo spoluvlastníkovi záznamu – ovládací prvek včetně jeho hodnoty bude zobrazen pouze uživatelům, kteří mají právo na daný ovládací prvek, a zároveň jsou vlastníci aktuálně otevřeného databázového záznamu v editačním formuláři (záznam vytvořili), nebo jsou nastaveni jako spoluvlastníci všech záznamů v nastavení editačního formuláře.

2.5.3. Nahradit práva ostatním ovládacím prvkům

  • Funkce „Nahradit práva ostatním ovládacím prvkům“ slouží pro sjednocení práv v rámci celého editačního formuláře u ovládacích prvků, které spolu z pohledu práv souvisí.
  • Díky odkazu „Zobrazit…“ je možné zobrazit seznam všech ovládacích prvků v editačním formuláři včetně nastavení práv těchto ovládacích prvků. U každého ovládacího prvku je zobrazeno zaškrtávací tlačítko, kterým je možné ovládací prvek vybrat. Při uložení ovládacího prvku se následně nastaví stejná práva i těmto vybraným ovládacím prvkům.
  • Alternativou pro sjednocení práv v rámci celého editačního formuláře je zobrazení reportu dostupného ze záložky „Práva podřízených objektů“ v nastavení editačního formuláře.

2.6. Záložka „Administrace“

Obrázek.png

  • Záložka „Administrace“ se zobrazuje pouze u existujících ovládacích prvků.

2.6.1. Identifikátor

  • Identifikátor určuje název databázového sloupce, do kterého se v databázi ukládají hodnoty zadané prostřednictvím ovládacího prvku v editačním formuláři.
  • Identifikátor je odvozen od názvu ovládacího prvku. Začíná prefixem „ng_“, a dále obsahuje alfanumerické znaky použité v názvu ovládacího prvku (systémové ovládací prvky prefix „ng_“ neobsahují). Při změně názvu ovládacího prvku je k dispozici tlačítko „Opravit“, které slouží k opravě identifikátoru, a tedy i přejmenování databázového sloupce v databázi. Pro přehlednost a eliminaci případných nedorozumění se doporučuje udržovat identifikátor v souladu s názvem ovládacího prvku. Pokud do databáze přistupují i externí aplikace a například čtou nebo zapisují data do tohoto sloupce, je nutné změnu identifikátoru naplánovat až na vhodnou dobu.

2.6.2. Plný identifikátor

  • Plný identifikátor ovládacího prvku obsahuje i identifikátor editačního formuláře, a používá se v tiskových šablonách.

2.6.3. Index

  • Zaškrtnutí tohoto pole určuje, zda má být sloupec spojený s tímto ovládacím prvkem v databázi indexovaný. Do textového pole umístěného pod zaškrtávacím tlačítkem je možné definovat i názvy (identifikátory) dalších sloupců, které mají být ve sdruženém indexu s tímto databázovým sloupcem – mají být součástí klíče indexu.
  • U databáze MSSQL je možné definovat také sloupce „INCLUDE“, které se připojí k indexu. Nejsou ale součástí klíče indexu, ale hodnoty daného klíče. Databáze Firebird tuto funkcionalitu neumožňuje.

2.6.4. Hledání v nahlížecí tabulce

  • Hledání určuje, zda mají být záznamy v nahlížecí tabulce po zadání hledaného výrazu či slovního spojení v databázi ve sloupci spojeném s tímto ovládacím prvkem vyhledávané podle názvu souborové přílohy.
    • Povolit – hledání v tomto sloupci je povoleno, a v nahlížecí tabulce se objevuje zaškrtávací tlačítko, kterým je možné sloupec tabulky zahrnout do seznamu prohledávaných sloupců.
    • Zakázat – hledání v tomto sloupci je zakázáno, a v nahlížecí tabulce se neobjevuje zaškrtávací tlačítko, kterým by bylo možné sloupec tabulky zahrnout do seznamu prohledávaných sloupců.

2.6.5. Ostatní

  • Aktuální hodnota v databázi
    • Textové pole zobrazuje aktuální hodnotu právě otevřeného záznamu v editačním formuláři v daném ovládacím prvku, s možností změny této hodnoty.
  • Změnit typ na
    • Rozbalovací seznam nabízí typy ovládacích prvků, na které je podporována konverze ovládacího prvku včetně automatické konverze dat přítomných v databázové tabulce.

2.6.6. Statistika

  • Statistika zobrazuje agregovanou informaci o využívání ovládacího prvku napříč celou aplikací.
  • Pomocí tlačítka „Statistika“ se zobrazí detailní report všech míst, kde je ovládací prvek použitý nebo referencovaný, včetně možnosti otevření nastavení takového místa či ovládacího prvku.
  • Před každou změnou typu ovládacího prvku nebo datového typu, případně před každým smazáním ovládacího prvku z editačního formuláře, se doporučuje důkladně projít statistku ovládacího prvku, a eliminovat případná nedorozumění.
  • Před každým smazáním ovládacího prvku z editačního formuláře se automaticky spustí vyhodnocení statistiky. Pokud je ovládací prvek někde v aplikaci používán nebo referencován, je nutné smazání ovládacího prvku znovu potvrdit.

2.7. Picker

  • Pro konfiguraci pickeru na tomto ovládacím prvku slouží ikona lupy, umístěná v levém dolním rohu dialogu.
  • Detailní popis pickeru je uveden v samostatné příručce Picker.

2.8. Tlačítka „Uložit“, „Uložit a pokračovat v editaci“, „Kopírovat“, „Smazat“ a „Zavřít“

  • Tlačítko „Uložit“ – Uložení změn v nastavení ovládacího prvku.
  • Tlačítko „Uložit a pokračovat v editaci“ – Uložení změn v nastavení ovládacího prvku a ponechání nastavení otevřeného pro další úpravy.
  • Tlačítko „Kopírovat“ – Vytvoření nové kopie aktuálního ovládacího prvku se shodným nastavením, avšak s novým jedinečným identifikátorem.
  • Tlačítko „Smazat“ – Trvalé odstranění ovládacího prvku.
  • Tlačítko „Zavřít“ – Zavření dialogu s nastavením ovládacího prvku bez uložení změn.

3. Příklady

3.1. Javascriptové funkce

  • var s = control_GetValue(#ng_#);
  • var filename = #ng_#.getAttribute('title');
  • var size = jsN(#ng_#.getAttribute('size'));
  • control_Disable(#ng_#); // Obecná javascriptová funkce pro všechny databázové ovládací prvky
  • image_Disable(#ng_#);
  • control_Enable(#ng_#); // Obecná javascriptová funkce pro všechny databázové ovládací prvky
  • image_Enable(#ng_#);
  • picker_Open(#ng_#);

3.2. Serverové funkce

  • SCHEDULEDEFAULTVALUE(ng_, #ng_#)
  • ATTACHMENTGALLERY(1;2;3, 120, 120)
  • ATTACHMENTGALLERY(1;2;3, 120, 120, 5)
  • ATTACHMENTNAME(#ng_image#)
  • ATTACHMENTURL(#ng_image#)
  • COPYATTACHMENT(#ng_image#)
  • COPYATTACHMENT(#ng_image#, #rootpath#Temp)
  • CREATEATTACHMENT(data:image/png;base64,...)
  • REDUCEATTACHMENT(#ng_image#, maxwidth, maxheight)