Публикация

Добавление пользовательской кнопки для запуска БП

1. В код страницы, на которой мы будем добавлять нашу кнопку, добавляем зависимость страницы от модуля ProcessModuleUtilities. Пример:

define("ContractPageV2", ["RightUtilities","ProcessModuleUtilities"], function(RightUtilities,ProcessModuleUtilities)

2. Добавляем в блок diff[] страницы редактирования раздела следующий код:

{
    "operation": "insert",
    "name": "YourButtonName", // название нашей кнопки (используется в коде, пользователь не видит)
    "values": {
        "itemType": 5,
        "style": "green", //цвет кнопки. Выбор из наших стандартных
        "classes": {
            "textClass": ["actions-button-margin-right"], //чтобы при добавлении еще одной кнопки был отступ справа
            "wrapperClass": ["actions-button-margin-right"]
        },
        "caption": { // заголовок вашей кнопки (который отображается пользователю)
            "bindTo": "Resources.Strings.YourButtoncaptionLocalizableString"    // можно задать явно. Например, "caption": "Красивая кнопка"
        },
        "click": {
            "bindTo": "onYourButtonClick" // Название метода, который будет отрабатывать при клике на кнопку
        },
        "visible": true, //Отвечает за видимость кнопки
        "enabled": true    //для ознакомления, можно удалить. Отвечает за активность кнопки
    },
    "parentName": "LeftContainer",
    "propertyName": "items",
    "index": 10 //следующая кнопка будет иметь индекс 11 и т.д.
}

3. Добавляем в блок methods{} страницы редактирования раздела следующий код:

onYourButtonClick: function() { //название метода, указанное при добавлении кнопки
    ProcessModuleUtilities.executeProcess({
        sysProcessName: "YourProcessName", //имя вашего процесса
        parameters: {
            ParamName: this.get("Id"), //слева название параметра процесса, в который мы передаем то, что справа
        },
        callback: function(item) { //этот блок не обязательнен
            this.onReloadCard(); //перезагружает страницу после окончания БП
            this.hideBodyMask(); //не выводит заглушку загрузки на карточке
        }.bind(this)
    });
}

4. Дублируем код для кнопки из пункта 2 в блок diff[] секции раздела. Все тоже самое, кроме атрибута "click": и нового "tag" (в блоке "values"):

"click": { "bindTo": "onCardAction" },
"tag": "onYourButtonClick",             //название метода, указанное при добавлении кнопки

 

Нравится

Поделиться

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