Видимость кнопки "Удалить"
Добрый день.
Пытаюсь сделать видимость кнопки "удалить" (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"
},