В JIRA есть (в настоящее время недокументированная) подключаемая точка для вставки основных компонентов навигации, <top-navigation>
.
Вы можете использовать этот плагин, чтобы добавить свою собственную панель навигации и, возможно, скрыть обычную панель, используя встроенную таблицу стилей CSS. В следующем примере это поведение вызывается с помощью параметра запроса ?hideit=true
, который является наиболее простым способом решения проблемы «встроить в iframe». Вы можете сделать это «липким», сохранив его в сеансе или файле cookie.
Как только вы создали плагин, который подключается к <top-navigation>
, скрыть верхнюю панель просто. Вот скрипт скорости, который делает это:
#if ($hideHeaderHack)
<style>
\#header {display:none;}
</style>
HIDDEN (remove this message eventually)
#else
NORMAL (remove this message eventually)
#end
Для создания такого плагина используйте Atlassian Plugin SDK (используйте atlas-create-jira-plugin
). Ваш atlassian-plugin.xml
должен выглядеть так:
<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2">
<plugin-info>
<description>${project.description}</description>
<version>${project.version}</version>
<vendor name="${project.organization.name}" url="${project.organization.url}" />
</plugin-info>
<top-navigation key="standard-navigation-top"
name="Tigerblood"
class="com.madbean.topnavhack.TopNav" state='enabled'>
<resource type="velocity" name="view" location="topnav.vm"/>
<order>5</order>
</top-navigation>
</atlassian-plugin>
Ваш класс реализации верхней навигации (называемый com.madbean.topnavhack.TopNav
выше) должен выглядеть следующим образом:
public class TopNav implements PluggableTopNavigation {
private TopNavigationModuleDescriptor descriptor;
public void init(TopNavigationModuleDescriptor descriptor)
{
this.descriptor = descriptor;
}
public String getHtml(HttpServletRequest request) {
Map<String,Object> params = new HashMap<String, Object>();
params.put("hideHeaderHack", "true".equals(request.getParameter("hideit")));
return descriptor.getTopNavigationHtml(request, params);
}
}
Ваш плагин будет выложен примерно так:
./pom.xml
./src/main/java/com/madbean/topnavhack/TopNav.java
./src/main/resources/atlassian-plugin.xml
./src/main/resources/topnav.vm
Отказ от ответственности Я работаю в Atlassian в качестве разработчика в команде JIRA.