Публикация

Добавляем действие в деталь

Добавляем действие перехода к контакту на деталь «Карьера контакта»

Чтобы добавить кнопку «Перейти к контакту» необходимо реализовать несложный замещающий модуль страницы детали «Деталь карьера контакта».

define('ContactCareerDetail', ['terrasoft', 'ContactCareer', 'ContactCareerDetailStructure',
'ContactCareerDetailResources'],
function(Terrasoft, ContactCareer, structure, resources) {
    structure.userCode = function() {
        //в этом методе можно работать со списком действий детали
        this.modifyUtilsButton = function(utilsButton) {
            //получаем список действий
            var utilsMenuItems = utilsButton.menu.items;
            //добавляем новый пункт в начало списка
            utilsMenuItems.unshift(actionGoToContact);
            return utilsButton;
        };
        var actionGoToContact = {
            caption: resources.localizableStrings.GoToContact,
            click: {
                bindTo: 'goToContact'
            },
            enabled: {
                bindTo: 'isAnySelected'
            }
        };
        this.methods.goToContact = function() {
            var selectedRows = this.GetSelectedItems();
            if (Ext.isEmpty(selectedRows)) {
                return;
            }
            var viewModel = this;
            var cardSchemaName;
            var moduleStructure = Terrasoft.configuration.ModuleStructure.Contact;
            var config = Terrasoft.configuration.EntityStructure[this.entitySchema.columns.Contact.name];
            if (config) {
                cardSchemaName = config.pages[0].cardSchema;
            }
            var gridData = this.get('gridData');
            var contactId;
            gridData.collection.items.forEach( function(item) {
                if (item.values.Id == selectedRows[0]) {
                    contactId = item.values.Contact.value;
                }
            });
            if (contactId) {
                var token = moduleStructure.cardModule + '/' + cardSchemaName + '/view/' + contactId;
                Terrasoft.Router.pushState(null, null, token);
            }
            else {
                return;
            }
        };
    };
return structure;
});

 

Нравится

Поделиться

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