1. Skripty stránek správy

    Article: AN0001576Updated: 21.09.2018

    Na některých stránkách správy je možné použít skripty. Můžete tak jednoduše rozšířit stránky o vámi požadovanou funkcionalitu:

    • můžete na toolbar přidat nové tlačítka pro spouštění vašich akcí
    • reagovat na akce na stránce, např. uložení záznamu, odemknutí uživatelského účtu...
    • přidat na stránku nový ovládací prvek pro zobrazení dalších informací

    Skriptování není určeno pro potlačení funkcionality systému ObjectGears, ale pro rozšíření o vaše funkce.

    Skriptování je povoleno na následujících stránkách s těmito událostmi:

    Stránka Událost
    Seznam uživatelů OnLoad
    Seznam uživatelů OnPreRender
    Detail uživatele OnLoad
    Detail uživatele OnAfterSave
    Detail uživatele OnUndeletePerson
    Detail uživatele OnPreRender
    Informace o uživateli OnLoad
    Informace o uživateli OnAfterSave
    Informace o uživateli OnPreRender
    Seznam rolí OnLoad
    Seznam rolí OnPreRender
    Detail role OnLoad
    Detail role OnAfterSave
    Detail role OnPreRender
    Detail modelu OnLoad
    Detail modelu OnAfterSave
    Detail modelu OnPreRender

    Každá událost může být ve skriptu definována pouze jednou. Není chybou, když není definována. Pro lepší přehlednost můžete ve skriptu vytvářet další funkce, které však nesmí kolidovat s názvy událostí.

    Popis událostí

    Všechny události se ve skriptu definují stejně, jen s rozdílným názvem funkce.

    Příklad definice události:

    function OnPreRender()
    {
        ...
    }

    OnLoad

    Událost se spustí po načtení stránky na serveru. Odpovídá ASP.NET události OnLoad.

    OnAfterSave

    Událost se spustí po uložení dat stránky. Při chybě ve skriptu události tak nedojde ke zrušení ukládání.

    OnUndeletePerson

    Na stránce s detailem uživatele je možné uživatele znovu aktivovat. Po této aktivaci se spoustí tato událost.

    OnPreRender

    Událost se spustí po vykreslení stránky na serveru. Odpovídá ASP.NET události OnPreRender.

    Objekty skriptů

    Na jednotlivých stránkách jsou dostupné různé objekty skriptů. Tyto objekty jsou popsány následující tabulce.

    Stránka Objekt Popis
    všechny stránky OGForm Formulář pro práci s ovládacími prvky na stránce.
    Informace o uživateli Person OGPerson Instance aktuálně zobrazeného uživatele.
    Seznam uživatelů OGDoFilter() Funkce pro spuštění filtru.
    Seznam uživatelů OGClearFilter() Funkce pro vymazání filtru.

    Pro práci ve skriptech je potřeba znát názvy ovládacích prvků, které lze použít. Tabulka níže obsahuje seznam dostupných názvů.

    Stránka Ovládací prvek Popis
    Seznam uživatelů TextItem fName Textové pole pro filtrování uživatelů.

    Příklady pro použití

    Vložení tlačítka na stránku

    Skript vloží na toolbar tlačítko, které po kliknutí zobrazí informační text.

    function OnLoad()
    {
        OGForm.Toolbar.CreateButton( 'b1', 'Tlačítko', './imagesdata/archive.png');
    }

    function b1_Click()
    {
        OGForm.SetSuccess( 'kliknuto na B1');
        /*OGForm.RedirectToErrorPage('chyba'); */
    }

    Nastaveni pole pro filtr uživatelů

    Skript umístí na toolbar tlačítko na stránce seznamu uživatelů. Po kliknutí na něj se do textového pole pro filtr uživatelů zapíše text ac.

    function OnLoad()
    {
        OGForm.Toolbar.CreateButton( 'b1', 'Tlačítko', './imagesdata/archive.png');
    }

    function b1_Click()
    {
        OGForm.GetControl( 'fName').Text = 'ac';
    }

    Omezení přístupů na stránku Informace o uživateli

    ObjectGears ve výchozím nastavení umožňuje přístup všem uživatelům na stránku Informace o uživateli (PersonQuickInfo) s daty kteréhokoli uživatele. Stránka se zobrazí při kliknutí na odkaz na uživatele.

    Toto výchozí chování může být třeba v určitých situacích upravit (např. v situaci, kdy instanci ObjectGears sdílí více uživatelů, kteří o sobě nemají vědět). Toho docílíme použitím níže uvedeného skriptu u stránky PersonQuickInfo. Stránka je pak dostupná pouze administrátorovi nebo v případě, že se aktuální uživatel shoduje s uživatelem, jehož data mají být na stránce zobrazena (uživateli pak např. bude vždy fungovat kliknutí na své jméno v pravém horním rohu obrazovky).

    function OnLoad()
    {
      if (!( OGPerson != null && ( OG.Person.IsUserAdmin() || OGPerson.Id == OG.Person.GetLoginPerson().Id )))
      {
         OGForm.RedirectToAccessDenied('Na stránku má přístup pouze administrátor.');
      }
    }

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

×