Добавление кнопки в карточку редактирования

Не получается добавить кнопку в карточку редактирования Лида рядом с Сохранить и тп
В файл LeadPageV2, в diff добавил

{
                "operation": "insert",
                "parentName": "LeftContainer",
                "propertyName": "items",
                "name": "CalculateButton",
                "values": {
                        "itemType": Terrasoft.ViewItemType.BUTTON,
                        "caption": "Calculate",
                        "classes": {"textClass": "actions-button-margin-right"},
                        "click": {"bindTo": "GetDeliveryPrice"},
                        "style": Terrasoft.controls.ButtonEnums.style.GREEN,
                        "visible": "true"
                },
                "index": 2
        },

Кнопка не появляется. Какие еще действия необходимо проделать?

Нравится

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

Кнопка, которую вы прописали, будет появляться на странице редактирования при добавлении записи, например.

Я думаю то, что вам нужно это замещение LeadSectionV2. Попробуйте:

{
	"operation": "insert",
	"name": "CalculateButton",
	"parentName": "CombinedModeActionButtonsCardLeftContainer",
	"propertyName": "items",
	"values": {
		"itemType": Terrasoft.ViewItemType.BUTTON,
		"caption": "Calculate",
		"style": Terrasoft.controls.ButtonEnums.style.GREEN,
		"visible": true
	}
}

"Толмачев Дмитрий Юрьевич" написал:

Кнопка, которую вы прописали, будет появляться на странице редактирования при добавлении записи, например.

Я думаю то, что вам нужно это замещение LeadSectionV2.


Спасибо. Попробовал Ваш способ. С тем же результатом, не появляется кнопка

Здравствуйте, Эмин.

После добавления кнопки необходимо полностью очистить кэш страницы, чтобы браузер выгрузил старый код и загрузил обновленный.

В Google Chrome нажмите F12, правой кнопкой на кнопке перезагрузки страницы - Очистка кэша и аппаратная перезагрузка.
Либо попробуйте в режиме Инкогнито.

"Безродный Андрей" написал:После добавления кнопки необходимо полностью очистить кэш страницы, чтобы браузер выгрузил старый код и загрузил обновленный.

Добрый день, Андрей.
Все эти действия я проделывал и раньше.
Попробовал добавить кнопку в Заказы. Кнопка добавилась корректно

diff: /**SCHEMA_DIFF*/[
			{
					"operation": "insert",
					"name": "CalculateButton",
					"values": {
			                "itemType": Terrasoft.ViewItemType.BUTTON,
			                "caption": "Calculate",
			                "style": Terrasoft.controls.ButtonEnums.style.BLUE,
			                "visible": true,
							"click": {"bindTo": "GetDeliveryPrice"},
			        },
					"parentName": "CombinedModeActionButtonsCardLeftContainer",//"CombinedModeActionButtonsSectionContainer",
					"propertyName": "items",
				},
		]/**SCHEMA_DIFF*/,

Но тот же самый код в Лидах. И кнопка не появляется. Подозреваю, что кнопка "Квалифицировать" мешает отрисовке.

Здравствуйте, Эмин.

Попробовал на 7.5.0.627.

Получилось:

[URL=http://fastpic.ru/view/60/2015/0319/b7c3974c7ba4bdb754f6e43695dc8920.pn…]

Код замещающего клиентского модуля:

define("LeadSectionV2", ["LeadSectionV2Resources", "terrasoft", "ProcessModuleUtilities", "LeadConfigurationConst",
		"ControlGridModule", "BaseProgressBarModule", "css!BaseProgressBarModule",
		"css!LeadQualificationModuleStyles"],
	function(resources, Terrasoft, ProcessModuleUtilities, LeadConfigurationConst) {
		return {
			entitySchemaName: "Lead",
			diff: /**SCHEMA_DIFF*/[
				{
                                        "operation": "insert",
                                        "name": "CalculateButton",
                                        "values": {
                                        "itemType": Terrasoft.ViewItemType.BUTTON,
                                        "caption": "Calculate",
                                        "style": Terrasoft.controls.ButtonEnums.style.BLUE,
                                        "visible": true,
                                },
                                        "parentName": "CombinedModeActionButtonsCardLeftContainer",//"CombinedModeActionButtonsSectionContainer",
                                        "propertyName": "items",
               },
			]
		};
	});

"Безродный Андрей" написал:Попробовал на 7.5.0.627.

Получилось


Спасибо, кнопка появилась. Но возникла следующая проблема:
Функция обработки нажатия кнопки прописана на LeadPageV2. Существует ли способ вызова этой функции из LeadSectionV2? Т.к. в LeadSectionV2 не удается получить значения полей через this.get().

Эмин, здравствуйте.

Вместо this.get('Id') попробуйте написать this.get("ActiveRow")

"Безродный Андрей" написал:

Эмин, здравствуйте.

Вместо this.get('Id') попробуйте написать this.get("ActiveRow")


Спасибо. Да, ActiveRow тоже работает. Т.е. Id я получить могу. Но мне нужны значения полей, которых нет на Section(с помощью this.getActiveRow("") можно получить только значения со страницы реестра), есть только в карточке редактирования. Понятно, что с помощью запроса к бд я получу все необходимые данные. Но как-то глупо получается. Вот она карточка, в ней все данные уже лежат, а я вынужден делать запрос к базе, чтобы еще раз их получить

Эмин,

без запроса к базе Вы можете получить разве что те данные, которые выведены в реестр.

Остальные данные можно получить только запросом к базе.

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