Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
...
reThe filter
...
is used to limit the set of records
...
to be displayed in the list (in any list: related list, open list, the dictionary). The filter
...
sets certain conditions for the record
...
to meet to be
...
in the list. Filters can be configured with the Condition Builder.
For example, we need to filter users living in Sevastopol. In SQL, we use WHERE operator to filter records.
Tip |
---|
You can add a filter with all necessary filters in your Favorites in the Navigation menu. To do this, drag and drop the breadcrumbs to the Favorites navigation tab. |
Filter components
Filters consist of the following components:
- Condition builder (and the breadcrumbs as its integral part).
- Search and sorting:
- Input field at the top of every column is used for searching.
- Click on the column title to sort the search results.
- Filter Out/Show Matching (this item can be found in the context menu, to open it, right-click on the list cell).
All these components form the condition string, which is sent in the request as a GET parameter, and the filtered list of records will be returned and displayed.
Image Added
The difference between condition builder on lists and regular condition builder is that breadcrumbs and sorting functionality added.
Breadcrumbs allow assessing the filter visually. Also, they allow quick filter editing by navigation to the condition specified.
Sorting allows adding its conditions (ascending or descending) on one or more list fields.
How filters work
For more clarity, let's take an example.
We need to find John Doe's closed requests, sorted by priority.
For this, we will create such a filter on the Request list (the itsm_request table):
Image Added
After that, condition string can be found in the condition GET parameter:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/list/task?condition=(state%3D-2%5EdescriptionISEMPTY%5Epriority<3) |
The condition string elements more closely:
Element | Description |
---|---|
state%3D-2 | State is Registered |
descriptionISEMPTY | Description is not set |
priority<3 | Selection will contain records with Priority value less that 3 (Moderate and Low) |
%5EORDERBYDESCpriority | Records will be sorted by the Priority field in descending order. |
Encoding and decoding queries
To decode an encoded query string storing the condition obtained from the GET parameter, we recommend using the addEncodedQuery and getConditionQuery methods of the SimpleRecord Server-Side class. You can decode the encoded string by completing the simple steps:
- Perform a selection against the table list view using a Condition Builder.
- Copy the condition from the URL as shown on the screenshot below:
Image Added
- Navigate to System Settings → System Scripts and click New.
Fill in the Script field with code below (this one is given for example):
Fill in the {tableName} placeholder with the table system name.
- Fill in the {conditionQueryCondition} placeholder with the copied condition.
- Click Run to execute the script.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
const current = new SimpleRecord('{tableName}');
current.addEncodedQuery('{conditionQueryCondition}');
ss.info(current.getConditionQuery());
// Info: (state=-2^descriptionISEMPTY^priority<3) |
Note | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filtering for the fields of the Reference, List, Choice, Record Class and Field Name types has some nuances related to the value and display_value fields correlation in tables:
The table below can clarify the filtration specifics when doing the selection with field of types above involved.
See the Condition Operators article to obtain filter operators full list. |
Dynamic Filters
Dynamic filters extend the filters by the JS scripts
...
Динамические фильтры расширяют фильтры возможностью запуска JavaScript сценариев для reference (ссылочных) полей в конструкторе условий листов и конструкторе условий dynamic reference qualifiers.
...
executing ability. This ability is available in the list condition builder and in the dynamic reference qualifier condition builder.
In Condition Builder, dynamic filters are available when selecting the reference field and the 'is (dynamic)' or similar operator. After this, the list of available dynamic filters will appear.
When executing the filter as a value of the condition using the 'is dynamic' operator, the value returned by the dynamic filter script will be used.
To create a new dynamic filter, please complete the following steps (a new record in the Filter Option Dynamic (sys_filter_option_dynamic
...
Скрипт (поле script) динамического фильтра обязан вернуть идентификатор записи или массив, состоящий из идентификаторов записи.
В конструкторе условий динамические фильтры доступны при выборе ссылочного поля и оператора ‘is dynamic’ (системное название ISDYNAMIC). При этом появится список доступных динамических фильтров.
...
) table will be created):
- Navigate to System Settings → Dynamic Filters.
- Click New and fill in the fields.
- Click Save or Save and Exit to apply changes.
Info |
---|
You can also create dynamic filters for table fields of the sys_id type (ID). To do that, specify the dynamic filter form fields in the following way:
To apply the dynamic filter created, specify the ID table column and the is (dynamic) operator as the Condition Builder field and operator appropriately. |
Dynamic filters form fields
Field | Mandatory | Description | ||
---|---|---|---|---|
Title | Y | The filter title. | ||
Column Type | N | The column type used in this filter. This field references to the Columns dictionary.
| ||
Referenced Table | Y | Choose the table to apply this filter on. | ||
Available for Filter | N | Select this checkbox to make this filter available in the filters list. | ||
Available for Reference Qualifier | N | Select this checkbox to make this filter available for a dynamic reference qualifier. | ||
Active | N | Select this checkbox to make the filter active. | ||
Order | N | Enter the number to define the order of filter processing. | ||
Script | Y | Enter the script that the dynamic filter runs. You can use all methods of server-side API classes here. After executing, the script should return the record ID or array of IDs. |
Table of Contents | ||||
---|---|---|---|---|
|
...