When creating a widget with a SimpleTag, use the attributes below to configure its functionality.
When a widget is implemented, all tag attribute values are transmitted as a string regardless of the attribute type; and during the processing phase, the attribute value is applied in line with the type specified.
Attribute types
There are two types of widget attributes:
- configuration attributes that set form views of widgets.
- event-related attributes that set actions when users interact with the widgets.
Configuration attributes
Attribute | Type | Description | Available in |
---|---|---|---|
alignRight | Boolean | Set true, to align text to the right. | |
beginDate | String | Specify a minimum possible date for a field. beginDate <datetime model="data.dueDate" label="data.dueDateTitle" isMandatory="true" beginDate="{data.beginDate}" endDate="{data.endDate}"></datetime> Server Script const nowDate = new SimpleDateTime(); data.beginDate = nowDate.getDate(); nowDate.addDays(3); data.endDate = nowDate.getDate(); | |
buttonType | String | Specify button displaying style for forms and lists. The disabled buttons appear in gray. Button colors:
Use the following button types along with the svg attribute:
buttonType <button class="btn" event-click="window.s_widget_custom.forceUpdate();" buttonType="destructive"> Force </button> | <button> |
canExcludeAll | Boolean | Set the attribute to true to make it possible to leave the field with no items selected. values <multiselect model="data.values" canExcludeAll="true" values='["1", "2"]' options='[{"database_value":"","display_value":""},{"database_value":"1","display_value":"First"},{"database_value":"2","display_value":"Second"}]'></multiselect> | <multiselect> |
canCreate | Boolean | Set the attribute equal to true to add the button for creating a new record. | |
canRead | Boolean | To restrict access to the specified table, set the attribute to false. | |
categoryDescription | String | Specify a table field that contains category descriptions. | |
categoryIcon | String | Specify a table column that contains category icons. | |
categorySubject | String | Specify a table field that contains category descriptions. | |
childDepth | Integer | Specify the depth of the child categories. | |
choiceConditionName | String | Define the columns that contain data of the Choice type to specify choice options in your condition. | |
class | String | Specify a CSS class name defined in the CSS field of the widget. Define the attribute it in the Template field of the widget. Then, describe it in the CSS field. class <button id="addBtn" class="button disable" event-click="window.s_widget_custom.addParticipants()"> {data.createCABbuttonTitle} </button>
CSS Expand source
.button { font-weight: 600; font-size: 14px; color: #fff; display: inline-block; vertical-align: top; text-align: center; border-radius: 4px; padding: 0 14px; line-height: 30px; letter-spacing: 0.2px; background-color: #0f8af9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; height: 32px; } .button.disable { cursor: not-allowed; pointer-events: none; color: #c0c0c0; background-color: #ffffff; } | All SimpleTags except for the Common tags and Portal tags |
condition | String | Specify the condition. It is an equivalent of Reference Qualifier isFixed <reference isFixed="true" condition="{data.condition}" label="{data.instanceTitle}" tableName="sys_cmdb_ci_instance" model="data.instance" event-change="s_widget_custom.instanceSelected();"> </reference> Server Script if (!!input.tableName && !!input.caller) { data.condition = `owned_by=${input.caller}^ORDERBYDESCsys_created_at`; } | |
config | String | Configure the Activity Feed. Describe the object in JSON format, as in the example below. Define the following parameters:
| |
date | String | Specify a column containing the item creation date and time (for more details, see the example below). | |
dateColumn | String | Specify a table column that contains dates related to list items. | |
dateConditionName | String | Define the columns that contain data of the Date or Date/Time type to specify date ranges in your condition. | |
disabled | Boolean | Set the attribute to true to disabled the button. A disabled button cannot be clicked. | |
displayColumnNumber | Integer | Specify the number of the column, by clicking on which the record opens. | |
doClose | Function | Specify the function to execute when the modal window or menu is closed. doClose <modal isShow="{data.isShow}" doClose="window.s_widget_custom.countClosing();"> </modal> Client Script window.s_widget_custom.countClosing = function () { window.closeCount = window.closeCount + 1 || 1 s_widget.setFieldValue('isShow', false); } | |
elementCount | String | Specify the number of page items. If not specified, then equal to 5 by default. | |
endDate | String | Specify a maximum possible date for a field. beginDate <datetime model="data.dueDate" label="data.dueDateTitle" isMandatory="true" isVisible="true" beginDate="{data.beginDate}" endDate="{data.endDate}"></datetime> Server Script const nowDate = new SimpleDateTime(); data.beginDate = nowDate.getDate(); nowDate.addDays(3); data.endDate = nowDate.getDate(); | |
events | String | Specify the actions to perform after one of the predefined patterns is selected:
| |
exclude | Array | Specify the parameters to exclude from the display. exclude <durationinput value='{data.duration1}' exclude='["days","seconds"]' alignRight='true' onChange="s_widget_custom.onChange1(arguments[0]);"></durationinput> <durationinput value='{data.duration2}' exclude='["days","seconds"]' alignRight='true' onChange="s_widget_custom.onChange2(arguments[0]);"></durationinput> | |
fixedCondition | String | Specify the condition applied to the list. Unlike the condition specified with the condition attribute, this condition is fixed and cannot be removed. It can be only specified more precisely. The attribute work logic is similar to the fixed reference qualifiers. | |
hint | String | Specify the button text hint. | |
includeCategories | Integer | Set the attribute to 1 to add categories to the side menu. | <sidemenu> |
includeItems | Integer | Set the attribute to 1 to add items to the side menu. | <sidemenu> |
isAlwaysOpen | Boolean | To make the Activity Feed widget always open, set the attribute equal to true. If the widget is always open, it has no chevron icon and option to hide. | |
isFixed | Boolean | Set the true value to disable the editing of the condition value. isFixed <reference isFixed="true" isMandatory="true" condition="(state!=10)" label="Incident" model="data.incident_id" tableName="itsm_incident"> </reference> | |
isFullScreenMode | Boolean | Set the attribute to true to display the modal window in full screen when opened on a mobile device. | |
isMandatory | Boolean | To make a field mandatory, set the attribute equal to true. isMandatory <select model="data.reason" label="{data.reasonTitle}" options='[{ "database_value": "", "display_value": "--None--" }, {"database_value": "defect", "display_value": "Defect"}, {"database_value": "low_test_coverage", "display_value": "Low Test Coverage"}, {"database_value": "other", "display_value": "Other"}]' value='{"database_value": ""}' isMandatory="true"> </select> | Common SimpleTags except for |
isPortal | Boolean | Set the attribute to true to give the tag portal behavior and rendering. | |
isRegistration | Boolean | Set to true to make registration available to new users of the service portal. By default, the attribute value is false and only existing users can log in. | |
isRememberMe | Boolean | Set to true to store the user's credentials on the computer. | |
isResetPassword | Boolean | Set to true to add a password reset link to the widget form. By default, this feature is disabled and the value is false. | |
isShow | Boolean | Set the attribute to true to display the modal window or menu. isShow <modal model="data.modal" title="{data.modalTitle}" isShow="{data.isShow}"> </modal> | |
isSwitchLang | Boolean | If the attribute value is false, users cannot change the interface language, and it is displayed in the system language. | |
isTreeShown | Boolean | Set this attribute value to true to group search results and display the results grouping tree. | |
isUserScripts/userScripts | Boolean | To disable the client scripts execution, set the false value. | |
isVisible | Boolean | To disable the tag, set the false value. isVisible <string model="data.additionalComment" isVisible="{data.showComment}"> </string> | Common SimpleTags except for |
itemDescription | String | Specify a table field that contains item descriptions. | |
itemIcon | String | Specify a table column that contains item icons. | |
itemPage | String | Specify the path to a page in the portal structure. Example: itemPage="page" defines the URL slug as page and the whole path has the following view: https://your_instance_url/page?searchQuery https://your_instance_url/your_portal/page | |
itemSubject | String | Specify a table field that contains item titles. | |
itemView | String | Specify the view used for item rendering. | |
label | String | Speicy the field label with the text information generally describing the field content. lable <textarea model="data.name" label="Name"> </textarea> | Common SimpleTags except for |
listView/view | String | Specify a list view to use. Note that first you need to create this view in the List Views (sys_ui_list) table. | |
logo | String | Define the absolute path to the logo displayed on the authorization page. For example: https://example.com/logo.png | |
maxValue | Integer | Specify the maximum value in milliseconds. | |
model | String | This attribute connect the client controller data object. When the model data changes, it is automatically transferred to data of the client controller. model <textarea model="data.name" label="Name"> </textarea> | Common SimpleTags and PortalTag <dropdownMenu> except for the Common tags |
modelId | String | Use this attribute to specify the ID of the RE model to show its attributes. | |
options | Array | Specify the options available for selecting. Use the CodeMirror JSON formatting. options <select model="data.reason" label="{data.reasonTitle}" options='[{ "database_value": "", "display_value": "--None--" }, {"database_value": "defect", "display_value": "Defect"}, {"database_value": "low_test_coverage", "display_value": "Low Test Coverage"}, {"database_value": "other", "display_value": "Other"}]' value='{"database_value": ""}'> </select> | |
parentsDepth | Integer | Specify the depth of the parent category. | |
placeholder | String | Specify a placeholder for a text field. placeholder <textarea model="data.name" label="Name" placeholder="{data.namePlaceholderText}"> </textarea> | |
preview | String | Specify a column that contains information for the card preview. | |
profileUrl | String | Specify the path to the service portal section that contains the current user's profile page. If specified, the Profile item is available in the user menu. Otherwise, this item is not available, and users cannot open their profiles. | |
quantity | Integer | Specify the maximum number of the search results per page. | |
radioButtonsMode | Boolean | Set the attribute to true to display choice options in the form of radio buttons. Otherwise, the standard drop-down list is used. | |
readOnly/isReadOnly | Boolean | To make the field read-only, set the attribute equal to true. <select model="data.state" label="{data.stateTitle}" options='[ {"database_value": "registered", "display_value": "Registered"}, {"database_value": "open", "display_value": "Open"}, {"database_value": "in_progress", "display_value": "In Progress"}]' value='{"database_value": ""}' readOnly="true"> </select> | Common SimpleTags except for |
recordId | String | Specify an ID of an existing record to extend. When using, do not forget to specify a table (use the tableName attribute). See the example code for the <rem> SimpleTag. recordId <rem modelId="{data.model_id}" tableName="{data.table_name}" recordId ="{data.record_id}" /> | |
redirectTo | String | Specify the path to redirect a user to the service portal after successful authorization. | |
reportId | String | Specify the report ID for viewing. reportId <report reportid="{data.monthBarReportId}" condition="(group.nameLIKEdesk^state=active)" /> | |
save | Sting | Add a Save button on the form with the customized text (see the code example below). It makes sense to use this attribute when it is impossible to use the UI actions due to any reasons (the uiActions attribute is equal to false). | <Form> |
saveButtonCaption | String | Specify a text displayed on the Save button on the portal form. saveButtonCaption <remform modelId="{data.model_id}" isPortal="true" tableName="rem_table" saveButtonCaption="Save" /> | <remform> |
searchUrl | String | Specify the URL path that determines which page the user will be redirected to after clicking the Search button. | <search> |
searchQuery | String | Add a search bar initial value. | |
searchQuery | String | Add a search bar to perform search requests and display results. | |
showTitle | Boolean | To enable the title displaying, set the attribute value equal to true. | |
size | String | Specify the search bar size. Available values:
| |
size | String | Specify the dropdown menu size by selecting from the predefined options:
| |
shortDescription | String | Add a short description for the card. | <card> |
stateColumn | String | Specify a table column that contains item states. | <previewList> |
style | String | Specify the display settings (size, font, color, and others.) of the tag elements using the CSS syntax. style <textarea model="data.notes" label="Notes" style="height: 328px; width: 100%; padding: 32px 64px 40px 64px;"> </textarea> | Common SimpleTags except for |
subjectColumn | String | Specify a table column that contains item subjects. | |
svg/img | String | Specify the code of the SVG file with the pre-decoded image or a link to the image. | |
sysId | String | Specify the ID of the table record. The table should be specified first via the tableName attribute. If the <activityFeed> tag is specified near the <Form> tag, the value of this attribute is populated automatically with the value from the relevant <Form> attribute. | |
tableId | String | Specify the table ID that the tag refers to. | |
tableName | String | Specify the table title that the tag refers to. tableName <reference isFixed="true" isMandatory="true" condition="(state!=10)" label="Incident" model="data.incident_id" tableName="itsm_incident"> </reference> | |
title | String | Specify the modal window or search title. isShow <modal title="{data.modalTitle}" isShow="{data.isShow}" </modal> | |
titleHide | Boolean | Set to true to show the form title by default. | |
top | Integer | Specify the number of first matches to display in the search autosuggestion. | |
transparent | Boolean | Set this attribute to true to change the style of the list and make its background transparent. | |
tsGroupId | String | Enter an ID of the table group to specify the search area. Find the necessary information in the Text Search Group (ts_group) table. | |
UiActions | Boolean | Set this attribute value to true to make UI actions available to use. Otherwise, their usage is prohibited (except for the Save button specified by the save attribute). | |
url | String | Specify a URL that defines the page for this card. | |
user | String | Specify a column that contains the information about the item originator (for more details, see the example below). | |
useSourceUrl | Boolean | Set to true to keep the original URL after a redirect if the user has not previously logged in. If the attribute value is true, it is a higher priority than the redirectTo attribute value. | |
value | String (Array for the <list> tag) | Specify the default value for a field. value <checkbox model="data.locked_out" label="{data.lockedOutLabel}" value="true"> </checkbox> List <list label="Configuration Item" model="data.element" tableName="cmdb" isMandatory="true" condition="{data.condition}" value='[{"database_value":"1","display_value":"First"},{"database_value":"2","display_value":"Second"}]'></list> | Common SimpleTags except for |
values | Array | Specify the default value for a field. values <multiselect model="data.values" canExcludeAll="true" values='["1", "2"]' options='[{"database_value":"","display_value":""},{"database_value":"1","display_value":"First"},{"database_value":"2","display_value":"Second"}]'></multiselect> | |
view | String | Define a view name of the table, for example, Default. | |
wrap | Boolean | Set this attribute to true to set up the quick view. | <previewList> |
Event-related attributes
Attribute | Description |
---|---|
event-change | Specify the actions performed when the change event occurs. <string model="data.lastname" event-change="s_widget_custom.updateFullname();"> </string> |
event-click | Specify the actions that should be performed when the click event occurs. <button event-click="window.s_widget_custom.close();"> {data.closeTitle} </button> |
onChange | Specify a function called when the value is changed. Set the attribute value to the custom s_widget_custom method created in the client script. The attribute is applied to the <durationinput> and <search> tags instead of event-change. |
Widget data input and output
The client controller components:
- Template specifies the widget view and the way it displays in HTML format. It also allows end-users to input and to interact with data.
- Client script runs a JS script on the client-side. It receives data from the server-side, processes data before rendering, then passes it to the widget template. Also, the client script passes the input data to the server-side.
In the widget template, use data input fields for passing the data values for any purpose. The client script uses the data object to access data received form the server side. After the client script processed the data, invoke the s_widget.serverUpdate() method to send the data to the server controller. When calling this method, the server script data object automatically overwrites the client controller data object.
Input and output fields
Input fields are widget elements. You can manage the entered data according to your purposes.
The code below implements data input using the model tag attribute, after the data gets updated on the client-side, this value passes to the <h1>
header.
<string model="data.input"> </string> <h1> {data.input} </h1>
The <string>
field is a text field that allows a user to enter some text information. The <h1>
header dynamically displays this text with the {data.input}
object.
Multiple data output
The examples below describe how to place the values into two fields and output the joined value of them formatted with "h1 header" style in two different ways.
Example 1
<string model="data.lastname" event-change=";(( ) => { const lastname = s_widget.getFieldValue('lastname') || ''; const firstname = s_widget.getFieldValue('firstname') || ''; s_widget.setFieldValue('fullname', lastname + ' ' + firstname) } )();"> </string> <string model="data.firstname" event-change=";( () => { const lastname = s_widget.getFieldValue('lastname') || ''; const firstname = s_widget.getFieldValue('firstname') || ''; s_widget.setFieldValue('fullname', lastname + ' ' + firstname) })();"> </string> <h1>{data.fullname}</h1>
Example 2
;(() => { window.s_widget_custom = window.s_widget_custom || {}; window.s_widget_custom.updateFullname = function() { const lastname = s_widget.getFieldValue('lastname') || ''; const firstname = s_widget.getFieldValue('firstname') || ''; s_widget.setFieldValue ('fullname2', lastname + ' ' + firstname) } } )();
<string model="data.lastname" event-change="s_widget_custom.updateFullname();"> </string> <string model="data.firstname" event-change="s_widget_custom.updateFullname();"> </string> <h1>{data.fullname2}</h1>
- No labels