Добрый день. Возникли у меня вопросы по работе с деталями в мобильном приложении, по которым не удалось найти примеры или документацию.
1. Можно ли использовать для детали filterMethod, как в основной версии, или каким-либо образом использовать произвольный фильтр, а не только по колонке родительской страницы?
2. Как отключить возможность добавлять, удалять и редактировать записи детали, в зависимости от значений на родительской странице?
Заранее спасибо.
Нравится
Здравствуйте!
1. Для деталей можно указывать фильтры, используя метод configure() соотв. sdk-класса:
Terrasoft.sdk.Details.configure("Contact", "ActivityDetailV2StandartDetail", {
filters: Ext.create("Terrasoft.Filter", {
type: Terrasoft.FilterTypes.Group,
subfilters: [
Ext.create("Terrasoft.Filter", {
compareType: Terrasoft.ComparisonTypes.NotEqual,
property: "Type",
value: Terrasoft.GUID.ActivityTypeEmail
})
]
})
});2. В целом, изменение режима работы детали делается так:
Terrasoft.sdk.Details.setChangeModes("Contact", "ActivityDetailV2StandartDetail", [Terrasoft.ChangeModes.Read]);Но если нужно менять режим работы от условия, то для этого в контроллерах страниц есть метод getChangeModes(). Т.е. в контроллерах соотв. страниц (грида, просмотра, редактирования) нужно расширить этот метод:
getChangeModeOperations: function() {
var detailConfig = this.getDetailConfig();
if (detailConfig) {
var parentRecord = detailConfig.parentRecord;
if (parentRecord.get("IsNonActualEmail") === false) {
return {
canCreate: false,
canUpdate: false,
canDelete: false
};
}
}
return this.callParent(arguments);
}