Skip to content

Меню

После создания плагина через 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 пустой и задан eventName
  • Map<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 можете подставить другой корневой раздел.