Для того чтобы убрать кнопку "Запустить процесс", необходимо перегрузить класс Terrasoft.LeftPanelTopMenuModuleViewModel, в котором описан метод getTopMenuConfig. В нем создается и возвращается массив, хранящий объекты, содержащие информацию об элементах в верхнем меню панели: Меню, Запустить процесс, Добавить и Свернуть панель разделов.
В перегруженном методе нового класса необходимо вызвать базовый метод модуля (callParent), возвращающий массив объектов. В этом массиве требуется удалить объект с идентификатором "menu-startprocess-button", а затем вернуть измененный массив.
Далее необходимо заместить схему, в которой будет указана зависимость от перегруженного класса. Схема должна отрабатывать до создания панели, чтобы отработал метод getTopMenuConfig. Для этого подходит схема BootstrapModulesV2. Замещаем эту схему в Custom по аналогии с BaseSectionV2 в примере, а в зависимости указываем имя переопределенного класса.
После сохранения и входа на сайт изменения будут видны.
Пример перегрузки:
Override Ext.js class
Example override class SummaryModule
SummaryModuleV2.js
define("UsrSummaryModuleV2", ["SummaryModuleV2"],
function() {
Ext.define("Terrasoft.SummaryModuleOverrided", {
override: "Terrasoft.SummaryModule",
/*
* @override
*/
getESQ: function() {
var esq = this.callParent(arguments);
esq.queryKind = Terrasoft.QueryKind.LIMITED;
return esq;
}
});
}
);
On the page, which use base class you need to add dependency to overridden class:
BaseSectionV2
define("BaseSectionV2", ["UsrSummaryModuleV2"], function() {
return {
methods: {},
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
};
});
Так где же мы "В этом массиве требуется удалить объект с идентификатором "menu-startprocess-button", а затем вернуть измененный массив."?