是否可以为JIRA项目使用特定于项目的样式表?
例如,如果我想在iframe中包含项目X,我想隐藏徽标和可能的JIRA工具栏 - 例如,对于特定的用户组(它仅用于查看目的,它不是安全功能)
当然,我必须自己实现(例如通过webservice api) - 是否有标准问题页面的模板?
提前致谢!
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
Run Code Online (Sandbox Code Playgroud)
要创建这样的插件,请使用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>
Run Code Online (Sandbox Code Playgroud)
您的顶级导航实现类(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);
}
}
Run Code Online (Sandbox Code Playgroud)
你的插件将被布置为:
./pom.xml
./src/main/java/com/madbean/topnavhack/TopNav.java
./src/main/resources/atlassian-plugin.xml
./src/main/resources/topnav.vm
Run Code Online (Sandbox Code Playgroud)
免责声明我作为JIRA团队的开发人员为Atlassian工作.