Pravidla pro psaní javascriptu

Hlavní stránka / Podpora / Příručky / Příručka administrátora /

Pravidla pro psaní javascriptu

1. Mezery, tabulátory a přechody na nové řádky

  • Mezery používáme mezi klíčovým slovem "if" a levou závorkou, nalevo i napravo od operátoru "=", za čárkou jako oddělovačem proměnných nebo parametrů funkcí a v dalších obdobných případech.
  • Tabulátory používáme pro odsazení kódu od levého okraje na novém řádku. Jeden tabulátor odpovídá dvěma mezerám a v editoru JavaScriptu slouží jako zkratková klávesa pro jejich vložení. Každá úroveň zanoření kódu vyžaduje jeden tabulátor (dvě mezery). Zdrojový kód na první úrovni se neodsazuje.
  • Entery – přechody na nový řádek – používáme před levou složenou závorkou "{" i za ní, stejně tak před pravou složenou závorkou "}" i za ní.

Obrázek.png

  • Špatný příklad

Obrázek.png

2. Jednoduché apostrofy

  • Jako výchozí oddělovač řetězců vždy používáme jednoduché apostrofy. Důvodem je možnost kombinace JavaScriptového kódu se serverovými funkcemi – dvojité uvozovky si ponecháváme pro volání serverových funkcí.
  • Parametry serverových funkcí musí být často uzavřeny do dvojitých uvozovek, protože mohou obsahovat čárku, která je jinak považována za oddělovač parametrů. Texty uvnitř dvojitých uvozovek jsou považovány za řetězcové konstanty a nedochází v nich k nahrazování serverových funkcí, pouze proměnných.
  • Jedinou výjimkou jsou parametry funkcí "SQL" a "SQLARRAY", uvnitř kterých je možné volat serverové funkce, přestože jsou jejich parametry uzavřeny do dvojitých uvozovek.
  • Příklad 1

Obrázek.png

  • Příklad 2

Obrázek.png

  • Příklad 3

01.png

3. Středníky

  • JavaScriptový kód definovaný v událostech ovládacích prvků musí obsahovat středník na konci.

Obrázek.png

Obrázek.png

  • Jedinou výjimkou je JavaScriptový kód používaný v ovládacím prvku "ActionButtons" u tlačítek "Uložit", "Smazat" a "Zpět". Tento kód naopak středník na konci obsahovat nesmí, protože je ve výsledném zdrojovém kódu stránky použit jako návratová hodnota podmínky.

Obrázek.png

Obrázek.png

4. Tlačítka a postbacky

  • Tlačítka nastavená jako "Skript", "Tisk do šablony", "Otevřít nahlížecí stránku" nebo "Otevřít editační formulář" nejprve spustí JavaScriptový kód definovaný v poli "Klient" (pokud je definován). Následně vyvolají postback, resp. submit formuláře metodou POST – dojde k odeslání všech hodnot vyplněných ve formuláři včetně informace o tlačítku, které postback vyvolalo.
  • Na straně serveru je poté spuštěn odpovídající serverový skript. Po jeho dokončení je uživatel vrácen zpět do formuláře. Po dobu zpracování je obsah formuláře skryt a v horní části je zobrazen text "Prosím čekejte…".

Obrázek.png

  • Kliknutí na tlačítko je možné vyvolat programově pomocí JavaScriptové funkce "bt_Click(string id)". Z JavaScriptu je možné vyvolat pouze jeden postback v jednom okamžiku – opakované nebo paralelní volání funkce "bt_Click" je vyhodnoceno jako chyba a NET Genium provede pouze první postback v pořadí.
  • Pro aktualizaci formuláře slouží JavaScriptová funkce "form_Update()", která rovněž používá postback a skryté tlačítko "btUpdate" k opětovnému načtení všech ovládacích prvků formuláře.

5. Funkce display() a skrývání částí formuláře

  • Většina editačních formulářů používá podmíněné skrývání částí formuláře v závislosti na hodnotách vyplněných v ovládacích prvcích (texty, checkboxy apod.). Typicky se nastavuje vlastnost "style.display" u elementů "div", "table" a dalších.
  • Z tohoto důvodu je zavedeným zvykem mít ve formuláři definovanou JavaScriptovou funkci "function display() {}". Vzorový kód lze získat přímo v editoru JavaScriptu zadáním názvu "display()" nebo jeho výběrem z rozbalovacího seznamu.
function display()
{
if (adminMode) return;
}

display();
  • Proměnná "adminMode" určuje, zda je aktivní administrátorský režim. Pokud administrátor použije náhled formuláře nebo nahlížecí stránky, má proměnná "adminMode" hodnotu „false“, přestože je administrátorský režim aktivní.
  • Veškeré skrývání částí formuláře musí být umístěno až za řádkem "if (adminMode) return;", aby měl administrátor vždy k dispozici kompletní zobrazení formuláře.
  • Volání funkce "display();" na posledním řádku je nezbytné k tomu, aby se skrývání provedlo již při prvotním renderování formuláře.
  • Funkci "display();" je dále nutné volat z události "OnChange" u všech ovládacích prvků, jejichž hodnota má vliv na viditelnost částí formuláře.
  • Příklad obvyklé implementace funkce "display()":
function display()
{
if (adminMode) return;
D1.style.display = jsDisplay(control_GetValue(#ng_stav#) == 'Nový');
D2.style.display = jsDisplay(#ng_zobrazit#.checked);
D3.style.display = jsDisplay(control_GetValue(#ng_stav#) == 'Nový' && #ng_zobrazit#.checked);
}

display();