Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Common information
Client scripts are used to execute JS scripts in the browser when the client-side events happen, for example:
- form loading
- form submittingsubmission
- field value changingchange.
Client scripts allow configuring forms, form fields, and field values while the client uses the form. They can execute the following actions:
- make the field hidden or visible.
- make the field read-only.
- make the field mandatory or non-mandatory.
- set the value in one field, basing based on the value in another field.
- change the parameters in a Choice the choice list.
- show a the message basing based on the field value.
Client-side scripts are used to execute JavaScript scenarios on the client-side. Client-side scripts may be either a record of the Client Script (sys_script_client) table or table, or it can execute be executed within some some UI Actions when itsClientits Client parameter is equal to TRUE 'true'.
Image Modified
Also, client Client logic can also be implemented within the widget client script widget:
Image Modified
General The general client-side classes are: SimpleForm, SimpleList, and SimpleUser. To get more information about client-side classes, please check our Client-Side API reference article.
Creating a client script
The client script can be configured via the SimpleOne administrative agent interface.
Tip |
---|
Required role: admin. |
To configure a the script, please complete the steps below:
- Navigate to to System Definition → Settings → Client ScriptsScript.
- Click New and fill in the fields.
- Click Save or Save and Exit to apply changes.
Client script form fields
Name | Mandatory | Description | ||
---|---|---|---|---|
Name | Y | ClientDefine the client-side script name. | ||
Table | Y | A Specify a table on which form the script will be executed. | ||
Type | Y | The Specify the script type. Available options:
| ||
Column | Y | Select the column from the specified table, the change, or editing of which starts the script.
| ||
Views | N | Specify a the form view, on which the client script should be run. You can specify more than one view. If no view is specified, this the client script will be executed on all the views if there are any. | ||
Condition | N | Specify a the trigger condition conditions for this the client script that must be met to run the script. Use the the Condition Builder to build complex AND/OR filters.
| ||
Description | N | A Type a detailed description of the script actions.Messages | N | |
Write a message you want to show to a user when a client script is performed. | Active | N | When set to TRUE 'true', the script is active; otherwise, it is not. | |
Inherited | N | When set to TRUE 'true', the script will be applied not only to the table specified in the Table field, but also for all its child tables. | ||
Order | N | Defines Define the order of the client script execution. If there are several client scripts, they will be executed in the ascending order. | ||
Script | N | This field contains Type a client-side script to execute. |
Special Features
Use callback functions to work with SimpleRecord Client-Side objects:
Code Block | ||||
---|---|---|---|---|
| ||||
const record = new SimpleRecord new SimpleRecord('task'); record.get('159644860216948298', () => { console console.log(record.number); // TSK0000123 }); |
Dot-walking is not available for fields of the Reference type. You can use a the callback function sequence as a workaround.
For example, instead of server-side dot-walking:
Code Block | ||||
---|---|---|---|---|
| ||||
current.slm_commitmentcaller.agreementcompany.service_idphone |
in client-side script, it will look like:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
const commitmentIDcallerID = s_form.getValue('slm_commitmentcaller'); let callersCompanyPhone = ''; if (commitmentIDcallerID) { const commitmentuser = new SimpleRecord('slm_commitmentuser'); commitmentuser.get(commitmentIDcallerID, () => { const agreementcompany = new SimpleRecord('agreementorg_company'); agreement company.get(commitmentuser.agreementcompany, () => { const service = new SimpleRecord('sys_cmdb_ci_service'); if (company.next()) { service.get(agreement.service_id, () => { s_form.setValue('service_id', agreement.service_id, service.name); callersCompanyPhone = company.phone; }); }); }); } else { s_form.clearValue('service_id'); } |
Warning | ||
---|---|---|
It is not recommended to use native JS methods and properties manipulating the Document Object Model in the client script widget. For example, using properties such as Element.innerHTML or Element.outerHTML in client scripts may cause malfunctions. To avoid errors, please use the methods provided and supported by the vendor instead. See the example below for clarity.
|
Table of Contents | ||||
---|---|---|---|---|
|