Меню
После создания плагина через SDK, у вас уже будет примеры WebSection и WebItem.
Для добавления разделов или элементов меню, реализуйте следующие интерфейсы
WebSection- для добавления секций(если у вашего плагина есть много страниц с настройками, вы можете объединить их меню в одну секцию)WebItem- добавляет в секцию элементы, можете добавлять как в существующие секции так и в своиWebSectionProvider- если у вас много секций или они динамические, можете создать генератор секцийWebItemProvider- генератор, но для элементов меню
Основные методы для WebSection и WebItem:
String getName()- название секции/элемента менюString getLocation()- родитель для секции/элементаint getOrder()- порядок, чем меньше - тем вышеboolean isVisible(WebContext context)- переопределите, если ходите добавить условия для отображения(по умолчаниюtrue)String getIconUrl()- переопределите, если хотите добавить значекString getIconTitle()- переопределите, если хотите добавить к значку описание(появляется при наведении)
Специфичные методы для WebItem:
String getHint()- переопределите, если хотите добавить подсказку при наведении(по умолчаниюnull)String getRouteName()- название маршрута для vue-router(см. раздел Пути). Верните null если хотите вызвать событие.String getEventName()- название событие, которое будет вызываться при клике(если не задан routeName)Map<String, String> getRouteParams()- параметры для<router-link to='{..., params: {...}}'>либо для события, еслиrouteNameпустой и заданeventNameMap<String, String> getRouteQuery()- параметры для<router-link to='{..., query: {...}}'>
Инфо
Для использования событий, вы можете зарегистрировать vue-компонент без шаблона и подписаться на события. См. раздел Ресурсы
Примеры разделов
top/projects- меню проекты на верхней панелиtop/projects/recent_projects- меню проекты/недавниеtop/issues- меню задач на верхней панелиtop/boards- меню доски на верхней панелиissue/actions- меню задачи(там где кнопки редактировать/назначить и т.д.)admin/plugins- раздел с плагинами в админке
Что бы посмотреть текущие разделы, вы можете в браузере открыть <luna-site>/rest/web/nodes?location=admin/plugins. Вместо admin/plugins можете подставить другой корневой раздел.