Добавить пункт в подменю

Доброго времени суток.

Версия 7.9.

Необходимо на странице Лида добавить пункт в существующее подменю Дисквалификации.

В качестве примера воспользовались реализацией добавления остальных пунктов из файла LeadPageV2 в пакете Lead (при этом от этого файла уже создан наследник в нашем рабочем пакете).

getActions: function() {
                                                var actionMenuItems = this.callParent(arguments);
                                                var disqualifyMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");
                                                disqualifyMenuItems.addItem(this.getActionsMenuItem({
                                                        Caption: {bindTo: "Resources.Strings.DisqualifyLeadDouble"},
                                                        Tag: "disqualifyDouble"
                                                }));
                                                return actionMenuItems;
                                        },

Но это не помогло. Пока добавили пункт в основное меню. Можно ли как-нибудь добавить его именно в подменю?

Нравится

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

пакет CoreLead, схема LeadPageV2, обратите внимание на метод

getActions: function() {
	var actionMenuItems = this.callParent(arguments);
	var menuSeparator = this.getActionsMenuItem({
		"Type": "Terrasoft.MenuSeparator"
	});
	actionMenuItems.addItem(menuSeparator);
	var disqualificationMenuItems = this.get("DisqualificationMenuItems");
	disqualificationMenuItems.each(function(item) {
		actionMenuItems.addItem(item);
	});
	return actionMenuItems;
}

Все пункты подменю валяются в this.model.attributes.DisqualificationMenuItems. Попробуйте туда добавить свой пункт меню. Скорее всего все это надо будет делать до callParent.

Попробовал разные варианты:

Вот так:

getActions: function() {
 
				var disqualificationMenuItems = this.get("DisqualificationMenuItems");
				disqualificationMenuItems.addItem(this.getActionsMenuItem({
					Caption: {bindTo: "Дубль 2 тест"},
					Tag: "changeLeadStatus"
				}));
 
				var actionMenuItems = this.callParent(arguments);
 
				actionMenuItems.addItem(this.getButtonMenuItem({
                    // Привязка заголовка пункта меню к локализуемой строке схемы.
                    "Caption": {bindTo: "Resources.Strings.DisqualifyLeadDuplicate"},
                    // Привязка метода-обработчика действия.
                    "Tag": "changeLeadStatus",
                }));
 
				return actionMenuItems;
			},

Добавляется, но в основное меню. Если то же самое вызову после this.callParents:

var disqualificationMenuItems = this.get("DisqualificationMenuItems");
				disqualificationMenuItems.addItem(this.getActionsMenuItem({
					Caption: {bindTo: "Дубль 2 тест"},
					Tag: "changeLeadStatus"
				}));

то не добавляется вообще никуда.

Всё, нашёл.

Не DisqualificationMenuItems, а DisqualificationReasonsMenuItems :)

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