Добавление своего пункта меню в выпадающие списки Битрикс24 (CRM Грид, Пункт меню Еще)

23
Есть небольшая особенность, получения объекта меню, для добавление пунктов в Гридах и выпадающего пункта меню Еще(или любого другого)
25ebbd25931233d10ca5c8c25009a567.png

Задача решается через обработчики onPopupFirstShow (Возникает при первом показе popup) и onPopupShow (при каждом)
BX.addCustomEvent('onPopupFirstShow', function(p) {
 
	if (p.uniquePopupId/*Индификатор меню*/) {

		/*Если мы работаем с меню в Гридах, то необходимо обработать ID меню для получения объекта*/
		var popupId = p.uniquePopupId.substr(11);
		
		/*Получим меню*/
		var popup = BX.PopupMenu.getMenuById(popupId); /*Если работаем с меню ЕЩЕ, то можно сразу передавать p.uniquePopupId*/

		if (popup) {

			/*popup.getMenuItems(); - так можно получить текущие пукнты меню */
			/*popup.removeMenuItem(id); - так можно удалить пункт меню */
		
		/*такая конструкция добавит вложенное меню Parent -> item1..*/
			popup.addMenuItem({
				text: 'parent',
				items: [{
					text: 'item1',
					href: "/services/",
					},
					{
						text: 'item2',
						href: "/lists",
					},
					{
						text: 'item3',
						href: "/bp_start/",
					}]
			});
		/*
		или же пример без вложенности:
		 menu.addMenuItem({ 
			text: 'Скачать как PDF', 
			href: href + (href.indexOf('?') === -1 ? '?' : '&') + 'task=' + taskId + '&' + 'pdf=1&sessid=' + BX.bitrix_sessid(), 
			className: 'menu-popup-item-create' 
		}); 
		*/
		}
	}
});

Яндекс.Метрика