Добавить пользовательскую кнопку в инструментальную панель действий (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.