Видимость кнопки "Удалить"
Добрый день.
Пытаюсь сделать видимость кнопки "удалить" (DataGridActiveRowDeleteAction) в разделе у активной строки, однако не срабатывает биндинг на visible.
define("OpportunitySectionV2", [], function () { return { entitySchemaName: "Opportunity", details: /**SCHEMA_DETAILS*/ {} /**SCHEMA_DETAILS*/ , attributes: { "IsDeleteButtonVisible": { "dataValueType": Terrasoft.DataValueType.BOOLEAN, "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, "value": true } }, diff: /**SCHEMA_DIFF*/ [{ "operation": "set", "name": "CreateOrderFromOpportunityButton", "parentName": "CombinedModeActionButtonsCardLeftContainer", "propertyName": "items", "index": 5, "values": { "visible": false } }, { "operation": "merge", "name": "DataGridActiveRowDeleteAction", "values": { "visible": {"bindTo": "IsDeleteButtonVisible"}, } } ] /**SCHEMA_DIFF*/ , methods: { init: function () { this.callParent(arguments); this.set("IsDeleteButtonVisible", false); } } }; });
В чем проблема?
Нравится
Здравствуйте! Можно разграничить доступ по операциям на запись для определённых ролей.
Нигрескул Алексей,
да, в этом случае при удалении будет выдана ошибка об
отсутствии прав, но так же надо скрывать эту кнопку
А другие свойства этой кнопки аналогично тоже не меняются, или дело только в видимости? А видимость других кнопок рядом тоже не срабатывает? Может, это не стандартная кнопка удаления, а та полностью удалена, а вместо неё добавлена в дочерних пакетах другая со своей логикой удаления?
а что за операция такая "set"?
свойство "enabled" также не отрабатывает?
Видимость элемента "DataGridActiveRowDeleteAction" в коробке привязана к методу "canDeleteRecords" - его замещение также не отрабатывает? Не забывайте про пункт удалить при мульвыборе
Кстати, действительно, проверьте, отрабатывает ли Ваша логика или только стандартная из BaseDataView пакета NUI, которую имел в виду Вадим (и какая из них раньше).
Там своя функция, всегда возвращающая истину:
canDeleteRecords: function() { return true; }, ... isVisibleDeleteAction: function() { return this.get("MultiSelect") && this.canDeleteRecords(); }, ... createDeleteRecordButton: function() { return this.getButtonMenuItem({ "Caption": {bindTo: "Resources.Strings.DeleteRecordButtonCaption"}, "Enabled": {bindTo: "isAnySelected"}, "Visible": {bindTo: "isVisibleDeleteAction"}, "Click": {bindTo: "deleteRecords"}, "IsEnabledForSelectedAll": true }); },
Идея добавить логику скрытия кнопки из реестра (например, удаления записи), если у пользователя нету прав на данную операцию в разделе, уже зарегистрирована.
в разделе для выделенной строке, я так кнопки удалял (Копировать, Открыть, Удалить):
{
"operation": "remove",
"name": "DataGridActiveRowCopyAction"
},
{
"operation": "remove",
"name": "DataGridActiveRowOpenAction"
},
{
"operation": "remove",
"name": "DataGridActiveRowDeleteAction"
},