Документация по разработке bpm’online
PDF
Разработка в bpm'online на примерах
Конфигурирование страницы

Как добавить кнопку в режиме добавления новой записи

Glossary Item Box

Описание примера

На страницу добавления нового контрагента необходимо добавить кнопку, которая будет открывать страницу редактирования основного контакта.

ВАЖНО

По умолчанию для добавления нового контрагента используется миникарточка. Чтобы для добавления контрагента использовать страницу добавления, необходимо установить значение false в поле [Значение по умолчанию] системной настройки [Использовать миникарточку добавления контрагента] (HasAccountMiniPageAddMode). Для того, чтобы изменение системной настройки вступило в силу, следует выполнить выход и вход пользователя.

Для выполнения этого примера нужно использовать страницу добавления.

К СВЕДЕНИЮ

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

Исходный код

Пакет с реализацией примера можно скачать по ссылке.

Алгоритм реализации примера

1. Создать замещающую страницу редактирования контрагента

Создайте замещающий клиентский модуль, в котором в качестве родительского объекта укажите схему [Страница редактирования контрагента] ([Account edit page], AccountPageV2) (рис. 1). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".

Рис. 1. — Свойства замещающей страницы редактирования

2. В коллекцию локализуемых строк замещающей схемы страницы добавить строку с заголовком кнопки

Создайте новую локализуемую строку (рис. 2).

Рис. 2. — Добавление в схему локализуемой строки

Для созданной строки укажите (рис. 3):

  • [Название] ([Name]) — "OpenPrimaryContactButtonCaption";
  • [Значение] ([Value]) — "Основной контакт" ("Primary Contact”).

Рис. 3. — Свойства пользовательской локализуемой строки

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

  • isAccountPrimaryContactSet() — проверяет, заполнено ли поле [Основной контакт] страницы.
  • onOpenPrimaryContactClick() — метод-обработчик нажатия кнопки, который выполняет переход на страницу редактирования основного контакта.

4.Добавить кнопку на страницу редактирования

В массив diff добавьте объект с необходимыми настройками расположения кнопки на странице редактирования контрагента.

Исходный код замещающей схемы:

define("AccountPageV2", [], function() {
    return {
        // Название схемы объекта страницы редактирования.
        entitySchemaName: "Account",
        // Методы модели представления страницы редактирования.
        methods: {
            // Проверяет, заполнено ли поле [Основной контакт] страницы.
            isAccountPrimaryContactSet: function() {
                return this.get("PrimaryContact") ? true : false;
            },
            // Метод-обработчик нажатия кнопки.
            onOpenPrimaryContactClick: function() {
                var primaryContactObject = this.get("PrimaryContact");
                if (primaryContactObject) {
                    // Определение идентификатора основного контакта.
                    var primaryContactId = primaryContactObject.value;
                    // Формирование строки адреса.
                    var requestUrl = "CardModuleV2/ContactPageV2/edit/" + primaryContactId;
                    // Публикация сообщения и переход на страницу редактирования
                    // основного контакта.
                    this.sandbox.publish("PushHistoryState", {
                        hash: requestUrl
                    });
                }
            }
        },
        //Отображение кнопки на странице редактирования.
        diff: [
            // Метаданные для добавления на страницу пользовательской кнопки.
            {
                // Выполняется операция добавления компонента на страницу.
                "operation": "insert",
                // Мета-имя родительского контейнера, в который добавляется кнопка.
                "parentName": "LeftContainer",
                // Кнопка добавляется в коллекцию компонентов
                // родительского элемента.
                "propertyName": "items",
                // Мета-имя добавляемой кнопки.
                "name": "PrimaryContactButton",
                // Свойства, передаваемые в конструктор компонента.
                "values": {
                    // Тип добавляемого элемента — кнопка.
                    itemType: Terrasoft.ViewItemType.BUTTON,
                    // Привязка заголовка кнопки к локализуемой строке схемы.
                    caption: {bindTo: "Resources.Strings.OpenPrimaryContactButtonCaption"},
                    // Привязка метода-обработчика нажатия кнопки.
                    click: {bindTo: "onOpenPrimaryContactClick"},
                    // Привязка свойства доступности кнопки.
                    enabled: {bindTo: "isAccountPrimaryContactSet"},
                    // Стиль отображения кнопки.
                    "style": Terrasoft.controls.ButtonEnums.style.BLUE
                }
            }
        ]
    };
});

После сохранения схемы и обновления страницы приложения, на странице создания нового контрагента появится кнопка [Основной контакт] ([Primary contact]), которая будет активизироваться после заполнения у контрагента поля [Основной контакт] ([Primary contact]) (рис. 4).

Рис. 4. — Демонстрация результата выполнения примера

Смотрите также:

© Terrasoft 2002-2019.

Был ли данный материал полезен?

Как можно улучшить эту статью?