Добрий день.
Допоможіть, будь ласка, відфільтрувати записи у кастомному розділі в мобільному додатку.
Потрібний фільтр "Створив = поточний користувач"
Створив фільтр
Terrasoft.sdk.Module.addFilter("UsrMyNotes", Ext.create("Terrasoft.Filter", {
type: Terrasoft.FilterTypes.Group,
logicalOperation: Terrasoft.FilterLogicalOperations.And,
subfilters: [
{
property: "CreatedBy",
comparisonType: Terrasoft.ComparisonType.EQUAL,
value: Terrasoft.sdk.CurrentUser.getContactId()
}
]
}));
та зберіг у файл UsrMobileNotesModuleConfig та додав файл до маніфесту робочого місця.
},
"UsrMyNotes": {
"RequiredModels": [
"UsrMyNotes"
],
"ModelExtensions": [],
"PagesExtensions": [
"UsrMobileUsrMyNotesActionsSettingsBlyzenkoWS",
"UsrMobileUsrMyNotesGridPageSettingsBlyzenkoWS",
"UsrMobileUsrMyNotesRecordPageSettingsBlyzenkoWS",
"UsrMobileNotesModuleConfig"
]
}
Але фільтр не працює. Допоможіть, будь ласка.
Like
Доброго дня,
Наведений вами приклад актуальний для класичних секцій мобільного додатку, однак, вочевидь ви використовуєте інтерфейс Freedom UI для мобільного розділу вашого об'єкту.
Для реалізації вашої задачі в даному випадку необхідно змінити схему Mobile[Object]GridPageSettings[Workplace].
В цій схемі всередині масиву [ ] необхідно додати блок з кодом фільтру:
{
"operation": "merge",
"name": "settings",
"values": {
"viewModelConfigDiff": "[{\"operation\":\"merge\",\"name\":\"Attribute_Items_ModelConfig\",\"values\":{\"filterAttributes\":[]}},{\"operation\":\"insert\",\"name\":\"MyFilter\",\"values\":{},\"parentName\":\"Attribute_Items_ModelConfig\",\"propertyName\": \"filterAttributes\"},{\"operation\":\"merge\",\"name\":\"Attributes\",\"values\":{\"MyFilter\":{ ВАШ ФІЛЬТР }}}]"
}
}
Для отримання самого фільтру варто використати наступний метод:
1) В дизайнері Freedom UI для довільної сторінки додаєте новий список на ваш об'єкт
2) В цьому списку налаштовуєте фільтр, який який ви хочете застосувати в мобільному додатку
3) Зберігаєте фільтр і саму сторінку
4) Відкриваєте код самої сторінки і всередині неї можете знайти повний код фільтру:
5) Цей код і треба вставити всередину {\"MyFilter\":{ ВАШ ФІЛЬТР }}.
Важливо, в ньому треба екранувати символи " за допомогою штриха \, тобто таким чином \" і код фільтру не повинен містити табуляцій.
В результаті ваша сторінка Mobile[Object]GridPageSettings[Workplace] має виглядати приблизно наступним чином:
[
{
"operation": "merge",
"name": "settings",
"values": {
"viewModelConfigDiff": "[{\"operation\":\"merge\",\"name\":\"Attribute_Items_ModelConfig\",\"values\":{\"filterAttributes\":[]}},{\"operation\":\"insert\",\"name\":\"MyFilter\",\"values\":{},\"parentName\":\"Attribute_Items_ModelConfig\",\"propertyName\": \"filterAttributes\"},{\"operation\":\"merge\",\"name\":\"Attributes\",\"values\":{\"MyFilter\":{\"value\": {\"items\": {\"154ca683-b9f9-4359-88ca-e9dfbd10481a\": {\"filterType\": 4,\"comparisonType\": 3,\"isEnabled\": true,\"trimDateTimeParameterToDate\": false,\"leftExpression\": {\"expressionType\": 0,\"columnPath\": \"Status\"},\"isAggregative\": false,\"dataValueType\": 10,\"referenceSchemaName\": \"CaseStatus\",\"rightExpressions\": [{\"expressionType\": 2,\"parameter\": {\"dataValueType\": 10,\"value\": {\"Name\": \"In progress\",\"IsFinal\": false,\"Id\": \"7e9f1204-f46b-1410-fb9a-0050ba5d6c38\",\"Image\": \"\",\"StatusColor\": \"#FFAC07\",\"value\": \"7e9f1204-f46b-1410-fb9a-0050ba5d6c38\",\"displayValue\": \"In progress\"}}}]},\"d819453a-7122-4f49-92e8-3b0d7e4601f5\": {\"filterType\": 4,\"comparisonType\": 3,\"isEnabled\": true,\"trimDateTimeParameterToDate\": false,\"leftExpression\": {\"expressionType\": 0,\"columnPath\": \"Status\"},\"isAggregative\": false,\"dataValueType\": 10,\"referenceSchemaName\": \"CaseStatus\",\"rightExpressions\": [{\"expressionType\": 2,\"parameter\": {\"dataValueType\": 10,\"value\": {\"Name\": \"New\",\"IsFinal\": false,\"Id\": \"ae5f2f10-f46b-1410-fd9a-0050ba5d6c38\",\"Image\": \"\",\"StatusColor\": \"#0058EF\",\"value\": \"ae5f2f10-f46b-1410-fd9a-0050ba5d6c38\",\"displayValue\": \"New\"}}}]}},\"logicalOperation\": 1,\"isEnabled\": true,\"filterType\": 6,\"rootSchemaName\": \"Case\"}}}}]"}
}
]
Після цього зберігаєте зміни і синхронізуєте мобільний додаток, в результаті розділ має бути відфільтрованим.