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

Нужно добавить кнопку на страницу редактирования в bpmonline 7.0. Как это сделать? Добавить к существующим кнопкам

Нравится

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

Здравствуйте, Антон! Предоставляю пример добавления кнопки на "AccountPage".

Код замещающего модуля:

define('AccountPage', ['terrasoft', 'Account', 'AccountPageStructure', 'AccountPageResources'],
    function(Terrasoft, Account, structure, resources) {
    var viewModel;
    structure.userCode = function() {
        //помещение ссылки на текущий объект вызова в переменную
        var parentThis = this;
        //помещение ссылки на метод init-a в переменную
        //и последующий его вызов из функции
        //таким образом происходит переопределение метода
        var baseInit = this.methods.init;
        this.methods.init = function() {
            if (Ext.isFunction(baseInit)) {
                baseInit.call(this);
            }
        //снова сохраняем ссылку на объект вызова
            viewModel = this;
        //добавление контрола кнопки
            var button = Ext.create('Terrasoft.controls.Button', {
                renderTo: Ext.get('utils-left'),
                caption: "Основной контакт"
            });
        //подписываемся на событие клика
            button.addListener("click", parentThis.methods.move, parentThis);
        };
        //описываем функцию-обработчик события клика
        this.methods.move = function() {
            var primaryId = this.get('PrimaryContact').value;
            if (primaryId) {
                var URL = Terrasoft.workspaceBaseUrl + 'Nui/ViewModule.aspx#CardModule/ContactPage/view/' + primaryId;
                document.location.replace(URL);
            }
        };
    };
    return structure;
});

Ext.get() возвращает элемент страницы по идентификатору, который можно получить используя инспектор элементов в инструментах разработчика браузера (F12 в Chrome):

Большое спасибо, а теперь как мне скрывать и открывать добавленные кнопки:sad:

Антон, с помощью свойства visible при определении кнопки:

var button = Ext.create('Terrasoft.controls.Button', {
                renderTo: Ext.get('utils-left'),
                caption: "Основной контакт",
                visible: false
            });

а также, с помощью метода setVisible( visible ), где visible: boolean:

button.setVisible(true);
Показать все комментарии