Filters
"filters": {
"filterName1": {
// filter1 description
},
"filterName2": {
// filter2 description
}
...
}
Filter description structure:
{
"label": "Label for using in browser form",
"display": "Type of display such in props. Allowed: textInput, searchBox, select, masked, dateRange",
"placeholder": "Placeholder for display==textInput",
"conditions": "Array of conditions to compare with",
"searchBy": "Only for display==searchBox. Array of props for search in store",
"store": "Only for display==searchBox. Store for search",
"filterBy": "WTF???",
"values": "Only for display==select. Values with labels for select",
"mask": "Only for display==masked"
}
Conditions
{
"property": "Property to compare with search string",
"operator": "Operator for comparing"
}
Condition operators
= means equals exactly. For strings used no case sensitivity comparison.!= means no equals exactly. For strings used no case sensitivity comparison.contains means that search string included in prop's value. For strings used no case sensitivity comparison.>, >=, <, <= as in Javascript.
Example
"filters": {
"textFilter": {
"label": "Search",
"display": "textInput",
"conditions": [
{
"property": "name",
"operator": "contains"
},
{
"property": "address",
"operator": "contains"
}
]
},
"textFilter": {
"label": "City",
"display": "searchBox",
"store": "cities",
"searchBy": ["name", "fullName"],
"conditions": [
{
"property": "cityId",
"operator": "="
}
]
},
"createdAt": {
"label": "Created",
"display": "dateRange",
"conditions": [
{
"property": "createdAt",
"operator": "contains"
}
]
}
}