7.4
кнопка в карточке редактирования
Технические вопросы
7.x

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

Не получается добавить кнопку в карточку редактирования Лида рядом с Сохранить и тп
В файл 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. Попробуйте:

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

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

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

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


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

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

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

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

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

Добрый день, Андрей.
Все эти действия я проделывал и раньше.
Попробовал добавить кнопку в Заказы. Кнопка добавилась корректно
[javascript]
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*/,
[/javascript]
Но тот же самый код в Лидах. И кнопка не появляется. Подозреваю, что кнопка "Квалифицировать" мешает отрисовке.

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

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

Получилось:

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

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

[javascript]
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",
},
]
};
});
[/javascript]

"Безродный Андрей" написал:Попробовал на 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("") можно получить только значения со страницы реестра), есть только в карточке редактирования. Понятно, что с помощью запроса к бд я получу все необходимые данные. Но как-то глупо получается. Вот она карточка, в ней все данные уже лежат, а я вынужден делать запрос к базе, чтобы еще раз их получить

Эмин,

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

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

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