Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


The widget API describes the methods for widget structure and functionality customization:

  • Use s_widget and s_widgets object methods in the client-side scripts of the widgets to implement the required functionality.
  • To create your own widget methods, use the s_widget_custom.

    Info

    These methods can only be used on the client-side.


Note

s_widget is an object of the SimpleWidget class that becomes available when a widget you create is initialized.

s_widgets is an object of the SimpleWidgets class, initialized when you add a widget to a form or a portal page.

SimpleWidget


s_widget


To perform the current widget customization, use the methods below.

Info

In the console, to manually invoke the method, pass the widget instance ID as the first parameter. For example, to call the following method:

Code Block
languagejs
s_widget.getFieldValue(key); 

use the following approach:

Code Block
languagejs
s_widget.getFieldValue(widgetId, key);


s_widget.addTemplate(id, template, script, type)


This method adds a child template to the existing template by its ID with one of the following types: inner, before, after.

Parameters:

NameTypeMandatoryDefault value
idStringYN
templateStringYN
scriptString

Note

This parameter is mandatory if you need to define the type parameter. If no script is needed, use an empty string ('') as in the example below.


N
typeString (possible options: inner, before, after)N

inner 

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagexml
titleAdd to a template field:
<div id="steps"></div>


Code Block
languagejs
themeEclipse
titleAdd to a client script
s_widget.addTemplate('steps', '<div class="main">', '', 'inner');

s_widget.getElements()


This method returns the widget structure elements collected in an array.

Return:

TypeDescription
array<elements>The widget structure elements are collected in an array.

Example:

Code Block
languagejs
themeEclipse
titles_widget.getElements()
linenumberstrue
s_widget.getElements();

s_widget.getFieldValue(key)


Use this method to return the data value of the widget that is defined by the key option.

Parameter:

NameTypeMandatoryDefault value
keyStringYN

Return:

TypeDescription
AnyThe value of the field that is defined by the key.

Example:

Code Block
languagejs
themeEclipse
titles_widget.getFieldValue
linenumberstrue
s_widget.getFieldValue('element');

s_widget.getId()


This method returns a widget instance ID.

Return:

TypeDescription
StringThis method returns a widget instance ID.

Example:

Code Block
languagejs
themeEclipse
titles_widget.getId
linenumberstrue
s_widget.getId();

s_widget.getOptionValue(key)


Use this method to return an option value that is defined by the key.

Parameter:

NameTypeMandatoryDefault value
keyStringYN

Return:

TypeDescription
AnyA value of the widget option that is defined by the key.

Example:

Code Block
languagejs
themeEclipse
titles_widget.getOptionValue
s_widget.getOptionValue('label');

s_widget.removeTemplate(id)


The method removes all child nodes and content from the specified element. It does not remove the element itself or its attributes.

Parameter(s):

NameTypeMandatoryDefault value
idStringYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagexml
themeEclipse
titleAdd this to the Template field
linenumberstrue
<div id="element1">
  Remove me
</div>
<button buttonType="approve" event-click="window.s_widget_custom.remove();">
  Click me
</button>


Code Block
languagecss
themeEclipse
titleAdd this to the CSS field
linenumberstrue
#element1 {
  background-color: yellow;
  height: 20px;
}


Code Block
languagejs
themeEclipse
titleAdd this to the Client Script field
linenumberstrue
;
(() => {
    window.s_widget_custom = window.s_widget_custom || {};
    window.s_widget_custom.remove = function () {
        s_widget.removeTemplate('element1');
    } 
})();

s_widget.setFieldValue(key, value)


Use this method to set a value for the key.

Info

If the value parameter is equal to 'null', for example, s_widget.setFieldValue('subject', null), the defined field is cleared.

Parameters:

NameTypeMandatoryDefault value
keyStringYN
valueAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titles_widget.setFieldValue
linenumberstrue
;
(async () => {
    const tableName = s_form.getTableName();
    const recordId = s_form.getUniqueValue();
    const serviceId = s_form.getValue('service');
    const serviceDisplayValue = s_form.getDisplayValue('service');

    s_widget.setFieldValue('table_name', tableName);
    s_widget.setFieldValue('record_id', recordId);
    s_widget.setFieldValue('service', { database_value: serviceId, display_value: serviceDisplayValue });
    await s_widget.serverUpdate();
})();


s_widget.serverUpdate()


With this method you can transfer the data to a server, where the widget server script runs. As a result, the widget data is updated.

Return:

TypeDescription
ObjectThis method returns a promise containing a server response.

Example:

Code Block
languagejs
themeEclipse
titles_widget.serverUpdate
linenumberstrue
;
(async () => {
    const tableName = s_form.getTableName();
    const recordId = s_form.getUniqueValue();
    s_widget.setFieldValue('table_name', tableName);
    s_widget.setFieldValue('record_id', recordId);
    const response = await s_widget.serverUpdate();
    console.log(response.getData().data);
})();

s_widget.setOptionValue(key, value)


Use this method to set a value using the key of the widget option.

Parameters:

NameTypeMandatoryDefault value
keyStringYN
valueAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titles_widget.setOptionValue
s_widget.setOptionValue('label', 'name');

s_widget.showData()


The method displays the data of a widget in the console. 

Return:

TypeDescription
Void

This method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titles_widget.showData
s_widget.showData();

SimpleWidgets

s_widgets


Invoke the methods of the s_widgets object within your scripts, when adding a widget to a form or a page for widget interaction.

s_widgets.getFieldValue(widgetInstanceID, key)


This method returns the data value of the widget for the key and widget instance ID.

Parameters:

NameTypeMandatoryDefault value
widgetInstanceIDString (the sys_id value)YN
keyStringYN

Return:

TypeDescription
AnyReturns the object value.

Example:

Code Block
languagejs
themeEclipse
titles_widgets.getFieldValue
s_widgets.getFieldValue('157555401214600424', 'name');

s_widgets.getForm()


This method returns a form object that is placed using the <form> or <remform> tag.

Parameter:

NameTypeMandatoryDefault value
nameStringYN

Return:

TypeDescription
ObjectThis method returns a SimpleForm object.

Example:

Code Block
languagejs
themeEclipse
titles_widgets.getForm
linenumberstrue
const builtInForm = s_widgets.getForm('custom');
await builtInForm.save();

s_widgets.getWidgets()


This method returns a list of all the IDs of the widgets instances located on the page.

Return:

TypeDescription
ArrayA list of all the IDs of the widgets instances located on the page.

Example:

Code Block
languagejs
themeEclipse
titles_widgets.getWidgets
s_widgets.getWidgets();

s_widgets.setFieldValue(widgetInstanceID, key, value)


Use this method to set a value for the key in the widget data, and the widget instance ID.

Parameters:

NameTypeMandatoryDefault value
widgetInstanceIDString (the sys_id value)YN
keyStringYN
valueAnyYN

Return:

TypeDescription
VoidThis method does not return a value.

Example:

Code Block
languagejs
themeEclipse
titles_widgets.setFieldValue
s_widgets.setFieldValue('157555401214600424', 'name', 'Alex');


Table of Contents
maxLevel3
classfixedPosition