1. Scripts of administration pages

    Article: AN0001576Updated: 03.12.2018

    It is possible to use scripts on some administration pages. In this way you can easily enhance page functionality according to your needs:

    • you can add a new button to the toolbar for starting your actions
    • you can respond to actions on the page, e.g. saving a record, unlocking user account...
    • you can add a new control to the page for displaying further information

    Scripting is not meant for supressing ObjectGears system functionality, but for extension by your functions.

    Scripting is enabled on following pages with these events:

    Page Event
    List of users OnLoad
    List of users OnPreRender
    User detail OnLoad
    User detail OnAfterSave
    User detail OnUndeletePerson
    User detail OnPreRender
    Information about user OnLoad
    Information about user OnAfterSave
    Information about user OnPreRender
    Role administration OnLoad
    Role administration OnPreRender
    Role detail OnLoad
    Role detail OnAfterSave
    Role detail OnPreRender
    Model detail OnLoad
    Model detail OnAfterSave
    Model detail OnPreRender

    Every event can be defined in the script only once. It is no problem, if some event is not defined. To increase clarity you can create other function in the script. However, these functions cannot collide with event names.

    Description of events

    All the events are defined in the script in the same way, just with a diffrent function name.

    Example of an event definition:

    function OnPreRender()
    {
      ...
    }

    OnLoad

    This event starts load of the page on server. It corresponds with ASP.NET event OnLoad.

    OnAfterSave

    This event occures after saving page data. In case of an error in the script saving is not cancelled.

    OnUndeletePerson

    It is possible to activate again a user on page with user detail. This event occures after this activation.

    OnPreRender

    This event occures after the page is rendered on the server. It corresponds with ASP.NET event OnPreRender.

    Script objects

    There are various script objects available on particular pages. They are described in the following table.

    Page Object Description
    all pages OGForm Form for work with controls on the page.
    Information about user Person OGPerson Instance of currently displayed user.
    List of users OGDoFilter() Function for filter application.
    List of users OGClearFilter() Function for filter cancellation.

    In order to work with scripts it is necessary to know name of the controls that can be used. Following table contains list of available names.

    Page Control Description
    List of users TextItem fName Text field for user filtering.

    Examples of use

    Putting a button to the page

    ¨This script inserts a button to the toolbar. After clicking on the button text ac is added to the text field for user filtering.

    function OnLoad()
    {
      OGForm.Toolbar.CreateButton( 'b1', 'Button', './imagesdata/archive.png');
    }

    function b1_Click()
    {
      OGForm.SetSuccess( 'You have clicked on the button B1');
      /*OGForm.RedirectToErrorPage('error'); */
    }

    Setting up a field for filtering users

    This script sets up a text field for filtering the users on page with the list of users.

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

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

    Access restriction to the page Information about user

    ObjectGears in the default set up enable all the users to access page Information about user (PersonQuickInfo) with data of whatever user. The page is displayed after clicking on reference to the user.

    It may be necessary to modify this default behaviour in certain situations (e.g. in situation, when ObjectGears instance is shared by more users that shall not know each about another). This can be achieved by using following script in the page PersonQuickInfo. This page is then available only to Administrator or in case that the current user is identical to the user whose data shall be displayed on the page (this means that clicking on the user name in the upper right screen corner will always work).

    function OnLoad()
    {
      if (!( OGPerson != null && ( OG.Person.IsUserAdmin() || OGPerson.Id == OG.Person.GetLoginPerson().Id )))
      {
        OGForm.RedirectToAccessDenied('Only administrator can access this page.');
      }
    }

×