API svyToolbarFilter v1 - Servoy/svyPopupFilter GitHub Wiki
-
createFilterToolbar(listComponent, table) ⇐
AbstractToolbarFilterUX -
Creates a filter toolbar implementation using the custom list from the custom-rendered-components package.
This implementation expects an NG "Data Grid" table component and a "Custom List" component.
The filters offered from this implementation are generated from the table provided as follows:
- any column with its
filterTypeproperty set to TEXT will be offered as a token popup, allowing the user to enter any number of Strings to match - any column with its
filterTypeproperty set to TEXT and thevaluelistwill be offered as a lookup where the user can search for and select any number of values - any column with its
filterTypeproperty set to NUMBER will be offered as a number filter with a number of operators - any column with its
filterTypeproperty set to DATE will be offered as a date filter with a number of operators
You should create a toolbar filter instance at the onLoad of your form and assign it to a form variable.
Make sure to re-direct the onClick event of the "List Component" to the toolbar.onClick(entry, index, dataTarget, event);
- any column with its
- setPopupRendererForm(formType, form)
ListComponentFilterRenderer ⇐ AbstractToolbarFilterUX
Extends: AbstractToolbarFilterUX
-
ListComponentFilterRenderer ⇐
AbstractToolbarFilterUX-
.clearGridFilters() ⇒
Boolean -
.getElement() ⇒
RuntimeComponent -
.getQuery() ⇒
QBSelect -
.getSearchProvider(column) ⇒
scopes.svySearch.SearchProvider -
.getSearchText() ⇒
String -
.getSimpleSearch() ⇒
scopes.svySearch.SimpleSearch -
.getToolbarFiltersState() ⇒
[ 'Array' ].<{id: String, dataprovider: String, operator: String, params: Object, text: String, values: Array}> -
.hasFilters() ⇒
Boolean - .onClick(entry, index, dataTarget, event)
- .restoreToolbarFiltersState(jsonState)
- .search([searchText])
-
.setAutoApplyFilters(autoApply) ⇒
AbstractToolbarFilterUX - .setFilterValue(column, values, operator)
-
.setOnFilterAddedCallback(callback) ⇒
AbstractToolbarFilterUX -
.setOnFilterApplyCallback(callback) ⇒
AbstractToolbarFilterUX -
.setOnFilterCreate(callback) ⇒
AbstractToolbarFilterUX -
.setOnFilterRemovedCallback(callback) ⇒
AbstractToolbarFilterUX -
.setOnSearchCommand(callback) ⇒
AbstractToolbarFilterUX -
.setSearchText() ⇒
AbstractToolbarFilterUX - .showPopupFilterPicker(target)
- new ListComponentFilterRenderer(listComponent, table)
-
.clearGridFilters() ⇒
Clears all grid filters
Returns the element used to display the filters
Overrides: getElement
Applies all filters and returns the query for this toolbar
Returns the SearchProvider for the given column
| Param | Type |
|---|---|
| column | [ 'CustomType' ].<aggrid-groupingtable.column> |
Returns the search text for the simple search
Returns the SimpleSearch
listComponentFilterRenderer.getToolbarFiltersState() ⇒ [ 'Array' ].<{id: String, dataprovider: String, operator: String, params: Object, text: String, values: Array}>
Returns the filters' state of the toolbar
Returns: [ 'Array' ].<{id: String, dataprovider: String, operator: String, params: Object, text: String, values: Array}> - jsonState
Returns true if the table has any column it can filter on
Called when the mouse is clicked on a list entry.
| Param | Type |
|---|---|
| entry | object |
| index | Number |
| dataTarget | string |
| event | JSEvent |
Restores the filters' state
| Param | Type |
|---|---|
| jsonState | [ 'Array' ].<{id: String, dataprovider: String, operator: String, params: Object, text: String, values: Array}> |
Applies all filters and executes the search
| Param | Type | Description |
|---|---|---|
| [searchText] | String |
optional searchText to search for; if not provided here, call setSearchText() to set the search criteria before performing the search |
listComponentFilterRenderer.setAutoApplyFilters(autoApply) ⇒ AbstractToolbarFilterUX
| Param | Type |
|---|---|
| autoApply | Boolean |
Sets a filter value for the given column
| Param | Type |
|---|---|
| column | [ 'CustomType' ].<aggrid-groupingtable.column> |
| values | Array |
| operator | String |
listComponentFilterRenderer.setOnFilterAddedCallback(callback) ⇒ AbstractToolbarFilterUX
Sets a callback method that is fired whenever a filter has been added
| Param | Type |
|---|---|
| callback | function |
listComponentFilterRenderer.setOnFilterApplyCallback(callback) ⇒ AbstractToolbarFilterUX
Sets a callback method that is fired whenever the filter is applied
The callback method receives an array of values, the operator and the filter as arguments
| Param | Type |
|---|---|
| callback | function |
listComponentFilterRenderer.setOnFilterCreate(callback) ⇒ AbstractToolbarFilterUX
Allows to provide a method that will be called when the filter for a specific column is created
That method then can create and return any filter that will then be used for this column
| Param | Type | Description |
|---|---|---|
| callback | function |
function that receives an aggrid-groupingtable Column as argument and must return a scopes.svyPopupFilter.AbstractPopupFilter |
listComponentFilterRenderer.setOnFilterRemovedCallback(callback) ⇒ AbstractToolbarFilterUX
Sets a callback method that is fired whenever a filter is removed
| Param | Type |
|---|---|
| callback | function |
listComponentFilterRenderer.setOnSearchCommand(callback) ⇒ AbstractToolbarFilterUX
Set the onSearchCommand function to override the search behavior. You can add custom conditions to the filter query object;
| Param | Type |
|---|---|
| callback | function |
Example
<pre>function onSearch(query, fs) {
// add custom conditions to the query
query.where.add(query.columns.orderdate.not.isNull);
// apply the query to the foundset
fs.loadRecords(query);
}
</pre>listComponentFilterRenderer.setSearchText() ⇒ AbstractToolbarFilterUX
Sets the search text for the simple search
Shows the filter picker popup
| Param | Type |
|---|---|
| target | RuntimeComponent |
Filter Toolbar implementation using the custom list from the custom-rendered-components package. This implementation requires a "List Component" element and an "Data-Grid" element. You should create a toolbar filter instance at the onLoad of your form and assign it to a form variable. Make sure to re-direct the onClick event of the "List Component" to the toolbar.onClick(entry, index, dataTarget, event);
| Param | Type |
|---|---|
| listComponent |
RuntimeWebComponent.<customrenderedcomponents-customlist> | RuntimeWebComponent.<customrenderedcomponents-customlist_abs>
|
| table |
RuntimeWebComponent.<aggrid-groupingtable> | RuntimeWebComponent.<aggrid-groupingtable_abs>
|
Example
<pre>
//keep track of toolbarFilter object in a form variable
var toolbarFilter;
//init the toolbarFilter at the onLoad.
function onLoad(event) {
toolbarFilter = new scopes.svyToolbarFilter.ListComponentFilterRenderer(elements.filterToolbar, elements.table)
}
//propagate the onClick event of the "List Component" to the toolbar filter.
function onClick(entry, index, dataTarget, event) {
toolbarFilter.onClick(entry,index,dataTarget,event);
}
//optionally set a searchText for a cross-field search to further filter the result set
function search() {
toolbarFilter.setSearchText(searchText);
toolbarFilter.search();
}
</pre>createFilterToolbar(listComponent, table) ⇐ AbstractToolbarFilterUX
Creates a filter toolbar implementation using the custom list from the custom-rendered-components package.
This implementation expects an NG "Data Grid" table component and a "Custom List" component.
The filters offered from this implementation are generated from the table provided as follows:
- any column with its
filterTypeproperty set to TEXT will be offered as a token popup, allowing the user to enter any number of Strings to match - any column with its
filterTypeproperty set to TEXT and thevaluelistwill be offered as a lookup where the user can search for and select any number of values - any column with its
filterTypeproperty set to NUMBER will be offered as a number filter with a number of operators - any column with its
filterTypeproperty set to DATE will be offered as a date filter with a number of operators
You should create a toolbar filter instance at the onLoad of your form and assign it to a form variable.
Make sure to re-direct the onClick event of the "List Component" to the toolbar.onClick(entry, index, dataTarget, event);
Extends: AbstractToolbarFilterUX
| Param | Type |
|---|---|
| listComponent |
RuntimeWebComponent.<customrenderedcomponents-customlist> | RuntimeWebComponent.<customrenderedcomponents-customlist_abs>
|
| table |
RuntimeWebComponent.<aggrid-groupingtable> | RuntimeWebComponent.<aggrid-groupingtable_abs>
|
Example
<pre>
//keep track of toolbarFilter object in a form variable
var toolbarFilter;
//init the toolbarFilter at the onLoad.
function onLoad(event) {
toolbarFilter = scopes.svyToolbarFilter.createFilterToolbar(elements.filterToolbar, elements.table)
}
//propagate the onClick event of the "Custom List" component to the toolbar filter.
function onClick(entry, index, dataTarget, event) {
toolbarFilter.onClick(entry, index, dataTarget, event);
}
//optionally set a searchText for a cross-field search to further filter the result set
function search() {
toolbarFilter.search(searchText);
}
</pre>| Param | Type | Description |
|---|---|---|
| formType | String |
any of the FILTER_TYPES |
| form |
RuntimeForm.<AbstractPopupFilter> | RuntimeForm.<AbstractLookup>
|
the form to set |
Date filter
Number filter
Select filter
Tokens filter