Добавить пользовательскую кнопку в инструментальную панель действий (action dashboard))
Здравствуйте,
Как добавить пользовательскую кнопку (чтобы начать процесс для данной активности) в панель действий только для одного раздела (например, для Case)?![]()
Заранее благодарю за ваши ответы.
Нравится
Мария, этот механизм реализован во многих схемах. Для плитки активности интерфейс описан в схеме BaseDashboardItemViewConfig, а логика — в ActivityDashboardItemViewModel и её родителях EntityDashboardItemViewModel и BaseDashboardItemViewModel. В них можно увидеть кнопку «Завершить» (Execute) и её логику заголовка, видимости и нажатия. А сами названия этих схем прописаны в схеме SectionActionsDashboard в пакете ActionsDashboard в функции:
/**
* @inheritdoc Terrasoft.BaseActionsDashboard#initDashboardConfig
* @override
*/
initDashboardConfig: function() {
this.callParent(arguments);
const dashboardConfig = this.get("DashboardConfig");
const processItemsConfig = {
"VwProcessDashboard": {
masterColumnName: "Id",
referenceColumnName: "EntityId",
viewModelClassName: "Terrasoft.ProcessDashboardItemViewModel",
viewConfigClassName: "Terrasoft.BaseDashboardItemViewConfig"
}
};
const activityItemsConfig = {
"Activity": {
viewModelClassName: "Terrasoft.ActivityDashboardItemViewModel",
viewConfigClassName: "Terrasoft.BaseDashboardItemViewConfig"
}
};
const approvalItemsConfig = this._getApprovalItemsConfig();
const extendedConfig = this.values.dashboardConfig || {};
Ext.merge(dashboardConfig, processItemsConfig);
Ext.merge(dashboardConfig, activityItemsConfig);
Ext.merge(dashboardConfig, extendedConfig);
Ext.merge(dashboardConfig, approvalItemsConfig);
this.set("DashboardConfig", dashboardConfig);
},
/**
* Returns approval items config.
* @private
* @return {Object}
*/
_getApprovalItemsConfig: function() {
const config = {};
const approvalSchemaName = this.get("ApprovalSchemaName");
if (approvalSchemaName) {
config[approvalSchemaName] = {
masterColumnName: "Id",
referenceColumnName: this.get("ApprovalReferenceColumnName"),
viewModelClassName: "Terrasoft.ApprovalDashboardItemViewModel",
viewConfigClassName: "Terrasoft.ApprovalDashboardItemViewConfig"
};
}
return config;
},Соответственно, Вам надо будет делать свои схемы-наследники этих, добавлять там кнопку и заместить SectionActionsDashboard на версию с их упоминанием. Для примера, для виз в схемах ApprovalDashboardItemViewModel и ApprovalDashboardItemViewConfig сделана своя логика с несколькими кнопками, а те схемы унаследованы от тех же EntityDashboardItemViewModel и BaseDashboardItemViewConfig.