Как убрать возможность быстрое добавление записей (действие New/Создать) в справочном поле
Вопрос
Можно ли убрать эту всплывающую подсказку New ... ?
правильно ли я понимаю, что getPreventQuickAddSchemaNames нужно добавлять в конкретные страницы карточек, откуда необходимо исключить добавление новых элементов справочников?
Нельзя ли это исключить один раз в LookupQuickAddMixin ?
Ответ
Если во всем приложении, то можете попробовать перекрыть метод onLookupDataLoaded
(код ниже и UsrLookupQuickAddMixin - название пользовательской схемы):
define("UsrLookupQuickAddMixin", ["LookupQuickAddMixin"], function() { Ext.define("Terrasoft.UsrLookupQuickAddMixin", { override: "Terrasoft.LookupQuickAddMixin", onLookupDataLoaded: Terrasoft.emptyFn }); });
и затем подключить модуль в BootstrapModulesV2 (необходимо заместить)
define("BootstrapModulesV2", ["UsrLookupQuickAddMixin"], function() { return {}; });
после этого очистить кэш.
А как это делать после 7.13, когда нельзя замещать модули?
Владимир, BootstrapModulesV2 замещать как раз можно.
Функциональность схемы BootstrapModulesV2, заключается в том, что она загружается сразу при логине. Соответственно в ней можно инициализировать модули логику которых потом можно будет использовать.
Это часто используется как замена запрещённому замещению модулей, когда делают свой аналог в схеме с другим названием, замещают им стандартный при помощи override, а затем подключают в BootstrapModulesV2, чтобы доработанная версия грузилась при старте.
Ещё один пример этого подхода для доработки стандартных элементов есть тут в нижнем комментарии.
Можно, например, вместо onLookupDataLoaded, заместить getPreventQuickAddSchemaNames добавим нужные сущности, например Продажи - "Opportunity":
define("UsrLookupQuickAddMixin", ["LookupQuickAddMixin"], function() {
Ext.define("Terrasoft.UsrLookupQuickAddMixin", {
override: "Terrasoft.LookupQuickAddMixin",
getPreventQuickAddSchemaNames: function() {
return ["SysAdminUnit", "VwSysSchemaInfo", "VwQueueSysProcess", "Opportunity"];
},
});
});