Здравствуйте,

Как добавить пользовательскую кнопку (чтобы начать процесс для данной активности) в панель действий только для одного раздела (например, для Case)?Изображение удалено.

 

Заранее благодарю за ваши ответы.

Нравится

1 комментарий

Мария, этот механизм реализован во многих схемах. Для плитки активности интерфейс описан в схеме 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.

 

Показать все комментарии

Добрый день. Требуется скрывать содержимое ContentContainer инструментальной панели действий в зависимости от значения атрибута карточки редактирования. Я переопределил объявление модуля в карточке, добавив свойство  contentVisible с привязкой к атрибуту, но теперь содержимого ContentContainer не видно никогда.  Подскажите как добиться, чтобы содержимое отображалось в зависимости от значения атрибута карточки редактирования. Ниже привожу код, который я модифицировал

        modules: /**SCHEMA_MODULES*/{

            "ActionsDashboardModule": {

                "config": {

                    "isSchemaConfigInitialized": true,

                    "schemaName": "OpportunityActionsDashboard",

                    "useHistoryState": false,

                    "parameters": {

                        "viewModelConfig": {

                            "entitySchemaName": "Opportunity",

                            "actionsConfig": {

                                "schemaName": "OpportunityStage",

                                "columnName": "Stage",

                                "colorColumnName": "Color",

                                "filterColumnName": "ShowInProgressBar",

                                "orderColumnName": "Number",

                                "innerOrderColumnName": "End",

                                "decouplingConfig": {

                                    "name": "OppStageDecoupling",

                                    "masterColumnName": "CurrentStage",

                                    "referenceColumnName": "AvailableStage"

                                }

                            },

                            "contentVisible": {bindTo: "NrbIsOpportunity"},

                            "dashboardConfig": {

                                "Activity": {

                                    "masterColumnName": "Id",

                                    "referenceColumnName": "Opportunity"

                                }

                            }

                        }

                    }

                }

            }

        }/**SCHEMA_MODULES*/,

Нравится

3 комментария

Попробуй по изменению атрибута вызывать обновление  твоей детали:

this.updateDetail({detail: "Relationships"});

Решил свою проблему с помощью сообщений. Пришлось сделать два встречно направленных сообщения, чтобы корректно отрабатывало во всех возможных вариантах просмотра: combined mode с вертикальным реестром и без, separate mode. Ниже код замещающей схемы инструментальной панели действий

define("OpportunityActionsDashboard", [], function() {
	return {
		messages: {
			"InitVisibilityByRights": {
				mode: this.Terrasoft.MessageMode.BROADCAST,
				direction: this.Terrasoft.MessageDirectionType.SUBSCRIBE
			},
			"GetInitVisibilityByRights": {
				mode: this.Terrasoft.MessageMode.BROADCAST,
				direction: this.Terrasoft.MessageDirectionType.PUBLISH
			}
		},
		methods: {
			/**
			 * @inheritdoc Terrasoft.BaseActionsDashboard#subscribeSandboxEvents
			 * @overridden
			 */
			subscribeSandboxEvents: function() {
				this.callParent(arguments);
				var sandbox = this.sandbox;
				var tags = [sandbox.id];
				sandbox.subscribe("InitVisibilityByRights", this.initVisibilityByRights, this, tags);
				sandbox.publish("GetInitVisibilityByRights");
			},
 
			/**
			 * Инициализирует видимость содержимого панели
			 */
			initVisibilityByRights: function(value) {
				this.set("ContentVisible", value);
			}
		},
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
	};
});

В карточке редактирования продажи необходимы следующие модификации

		messages: {
			"InitVisibilityByRights": {
				mode: this.Terrasoft.MessageMode.BROADCAST,
				direction: this.Terrasoft.MessageDirectionType.PUBLISH
			},
			"GetInitVisibilityByRights": {
				mode: this.Terrasoft.MessageMode.BROADCAST,
				direction: this.Terrasoft.MessageDirectionType.SUBSCRIBE
			}
		},
 
		attributes: {
			// это и есть атрибут, который определяет видимость
			"IsColumnVisibleByOwnerOrFuncRole": {
				dependencies: [{
					columns: ["IsColumnVisibleByOwnerOrFuncRole"],
					methodName: "publishVisibilityByRights"
				}]
			}
		},
		methods: {
 
			subscribeSandboxEvents: function() {
				this.callParent(arguments);
				this.sandbox.subscribe("GetInitVisibilityByRights", this.publishVisibilityByRights, this);
			},
 
			/**
			 * Публикует признак видимости в другие модули
			 */
			publishVisibilityByRights: function() {
				var moduleIds = this.getModuleIds();
				moduleIds.push(this.sandbox.id);
				var value = this.get("IsColumnVisibleByOwnerOrFuncRole");
				this.sandbox.publish("InitVisibilityByRights", value, moduleIds);
			}
 
		},

 

Вот так это выглядит в интерфейсе

Когда показано содержимое панели действий

 и 

Когда скрыто

Показать все комментарии

Доброго времени суток, пытаюсь добавить инструментальную панель действий по инструкции к разделу, добавил объект для блока actions добавил код для отображения на странице но при добавлении замещающей схемы для BaseActionsDashboard появляются ошибки в консоли и перестают работать панели в разделах продажи и лиды, может я где ошибся или про что то забыл.
исходный код страницы где добавляю панель

define("UsrNewProject1Page", [], function () {
    return {
        entitySchemaName: "UsrNewProject",
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        diff: /**SCHEMA_DIFF*/[
        {
            "operation": "insert",
            "name": "UsrName775893ec-c3ee-4b03-ac06-5ca0e94ff464",
            "values": {
                "layout": {
                    "colSpan": 24,
                    "rowSpan": 1,
                    "column": 0,
                    "row": 0,
                    "layoutName": "ProfileContainer"
                },
                "bindTo": "UsrName"
            },
            "parentName": "ProfileContainer",
            "propertyName": "items",
            "index": 0
        },
        {
            "operation": "insert",
            "name": "UsrExpiredDaye043ad41-e3b7-46d1-b221-3a1cf5d64146",
            "values": {
                "layout": {
                    "colSpan": 24,
                    "rowSpan": 1,
                    "column": 0,
                    "row": 1,
                    "layoutName": "ProfileContainer"
                },
                "labelConfig": {},
                "enabled": true,
                "bindTo": "UsrExpiredDay"
            },
            "parentName": "ProfileContainer",
            "propertyName": "items",
            "index": 1
        },
        {
            "operation": "insert",
            "name": "UsrName5843e32c-549d-48aa-8d7d-c07e5584aeca",
            "values": {
                "layout": {
                    "colSpan": 24,
                    "rowSpan": 1,
                    "column": 0,
                    "row": 0,
                    "layoutName": "Header"
                },
                "bindTo": "UsrName"
            },
            "parentName": "Header",
            "propertyName": "items",
            "index": 0
        },
        {
            "operation": "insert",
            "name": "UsrStartDate200b3c57-08fe-4665-b708-c4336f718188",
            "values": {
                "layout": {
                    "colSpan": 12,
                    "rowSpan": 1,
                    "column": 0,
                    "row": 1,
                    "layoutName": "Header"
                },
                "labelConfig": {},
                "enabled": true,
                "bindTo": "UsrStartDate"
            },
            "parentName": "Header",
            "propertyName": "items",
            "index": 1
        },
        {
            "operation": "insert",
            "name": "UsrEndDate4cde4389-4e4e-4ca0-9b76-ad1f13ca558e",
            "values": {
                "layout": {
                    "colSpan": 12,
                    "rowSpan": 1,
                    "column": 12,
                    "row": 1,
                    "layoutName": "Header"
                },
                "labelConfig": {},
                "enabled": true,
                "bindTo": "UsrEndDate"
            },
            "parentName": "Header",
            "propertyName": "items",
            "index": 2
        },
        {
            "operation": "insert",
            "name": "UsrAccount7384ebef-b099-488f-8080-10f796183284",
            "values": {
                "layout": {
                    "colSpan": 12,
                    "rowSpan": 1,
                    "column": 0,
                    "row": 2,
                    "layoutName": "Header"
                },
                "labelConfig": {},
                "enabled": true,
                "contentType": 5,
                "bindTo": "UsrAccount"
            },
            "parentName": "Header",
            "propertyName": "items",
            "index": 3
        },
        {
            "operation": "insert",
            "name": "UsrOpportunity30132ad3-ba84-48a5-95dd-fe7c67b8e730",
            "values": {
                "layout": {
                    "colSpan": 12,
                    "rowSpan": 1,
                    "column": 12,
                    "row": 2,
                    "layoutName": "Header"
                },
                "labelConfig": {},
                "enabled": true,
                "contentType": 5,
                "bindTo": "UsrOpportunity"
            },
            "parentName": "Header",
            "propertyName": "items",
            "index": 4
        },
        {
            "operation": "insert",
            "name": "UsrStatus342c5df5-b3dd-45b3-a0b8-85744e37e684",
            "values": {
                "layout": {
                    "colSpan": 12,
                    "rowSpan": 1,
                    "column": 0,
                    "row": 3,
                    "layoutName": "Header"
                },
                "bindTo": "UsrStatus"
            },
            "parentName": "Header",
            "propertyName": "items",
            "index": 5
        },
    { // добавление панели
        "operation": "insert",
        "name": "ActionsDashboardModule",
        "values": {
            "classes": {
                "wrapClassName": [
                                        "actions-dashboard-module"
                ]
            },
            "itemType": 4
        },
        "parentName": "ActionDashboardContainer",
        "propertyName": "items",
        "index": 0
    }
        ]/**SCHEMA_DIFF*/,
        methods: {},
        rules: {},
        modules: /**SCHEMA_MODULES*/{
            "ActionsDashboardModule": {
                "config": {
                    "isSchemaConfigInitialized": true,
                    // Имя схемы.
                    "schemaName": "NewProjectActionsDashboard",
                    "useHistoryState": false,
                    "parameters": {
                        // Конфигурационный объект схемы модуля.
                        "viewModelConfig": {
                            // Имя схемы сущности страницы.
                            "entitySchemaName": "UsrNewProject",
                            // Конфигурационный объект блока Actions.
                            "actionsConfig": {
                                // Имя схемы для загрузки элементов в Actions.
                                "schemaName": "UsrNewProjectStatus",
                                // Имя колонки в родительской схеме, ссылающейся на схему, содержащую элементы Actions.
                                // Если не указана, берет значение равное schemaName.
                                "columnName": "UsrStatus",
                                // Имя колонки для сортировки элементов.
                                "orderColumnName": "Position",
                                // Имя колонки для сортировки элементов в меню элемента.
                                "innerOrderColumnName": "Position"
                            },
                            // Отвечает за отображение модуля панели действий, значение [true] по умолчанию.
                            "useDashboard": true,
                            // Отвечает за отображение блока Content, значение [true] по умолчанию.
                            "contentVisible": true,
                            // Отвечает за отображение блока Header, значение [true] по умолчанию.
                            "headerVisible": true,
                            "dashboardConfig": {
                                // Связь активностей с объектом страницы.
                                "Activity": {
                                    // Имя колонки объекта страницы.
                                    "masterColumnName": "Id",
                                    // Имя колонки в объекте [Activity].
                                    "referenceColumnName": "UsrNewProject"
                                }
                            }
                        }
                    }
                }
            }
        }/**SCHEMA_MODULES*/
    };
});

Нравится

6 комментариев

Дмитрий, здравствуйте!

Непонятно зачем вы замещаете базовую схему BaseActionsDashboard. В инструкции о ней ни слова.
Там достаточно создать схему модели представления, унаследованную от SectionActionsDashboard. и Создать замещающую схему страницы раздела (если ее нет).

"Мотков Илья" написал:

Дмитрий, здравствуйте!

Непонятно зачем вы замещаете базовую схему BaseActionsDashboard. В инструкции о ней ни слова.

Там достаточно создать схему модели представления, унаследованную от SectionActionsDashboard. и Создать замещающую схему страницы раздела (если ее нет).


Здравствуйте Илья,
В списке Родительских объектов нету SectionActionsDashboard я нашел ее в пакете ActionsDashboard она наследуется от BaseActionsDashboard думал что пойдет если сделать наследование от него

"Головачев Дмитрий Александрович" написал:
Мотков Илья пишет:

Дмитрий, здравствуйте!

Непонятно зачем вы замещаете базовую схему BaseActionsDashboard. В инструкции о ней ни слова.

Там достаточно создать схему модели представления, унаследованную от SectionActionsDashboard. и Создать замещающую схему страницы раздела (если ее нет).

Здравствуйте Илья,

В списке Родительских объектов нету SectionActionsDashboard я нашел ее в пакете ActionsDashboard она наследуется от BaseActionsDashboard думал что пойдет если сделать наследование от него

А какую версию продукта Вы используйте? Так как в родительских объектах она есть. Убедитесь, что Вы вводите название без пробелов.

"Головачев Дмитрий Александрович" написал:

7.8.0 SalesEnterprise

Проверил. В 7.8. отображается BaseActionsDashboard (фильтрация происходит по Title объекта). В 7.9 видимо переименовали.

Но увидел, что Вы замещаете (признак "Замещать") а не наследуете (это разные вещи). Это может приводить к ошибкам.
На SDK рекомендую ознакомиться.

Примечание. Используйте последнюю версию приложения Там много всяких "плюшек".

"Мотков Илья" написал:
Головачев Дмитрий Александрович пишет:

7.8.0 SalesEnterprise

Проверил. В 7.8. отображается BaseActionsDashboard (фильтрация происходит по Title объекта). В 7.9 видимо переименовали.

Но увидел, что Вы замещаете (признак "Замещать") а не наследуете (это разные вещи). Это может приводить к ошибкам.

На SDK рекомендую ознакомиться.

Примечание. Используйте последнюю версию приложения Там много всяких "плюшек".


Спасибо Илья, действительно проблема была в том что я замещал а не наследовался от BaseActionsDashboard

Показать все комментарии