2011-03-23 4 views
3

JIRA 프로젝트에 프로젝트 별 스타일 시트를 사용할 수 있습니까?프로젝트 별 JIRA 레이아웃

예를 들어, 프로젝트 X를 iframe에 포함 시키려면 로고와 JIRA 툴바를 숨기고 싶습니다. 예를 들어 특정 사용자 그룹에 대해서는 (단지보기 목적 일 뿐이지 만, 보안 기능)

내가 (예를 들어 webservice api를 통해) 이것을 구현해야한다는 것을 인정했다. 표준 문제 페이지 용 템플릿이 있는가?

미리 감사드립니다.

+0

단지 프로젝트를 읽기 전용으로 만들려고한다면 CSS를 해킹하는 것이 좋은 방법이 아닙니다. –

+0

아니요 권한 구성표가 확실하지 않아 사람들은 툴바가 필요하지 않습니다. 또한 다른 포털에 임베드되어 있으므로이 특정 프로젝트에 동일한 스타일 시트를 적용하는 것이 좋습니다. –

+0

자바 스크립트를 사용하여 출력을 변경하거나 CSS를 시도해 볼 수 있습니다. –

답변

9

JIRA에는 상위 탐색 컴포넌트 인 <top-navigation>을 삽입하기위한 (현재 문서화되지 않은) 플러그인 포인트가 있습니다.

이 플러그인 포인트를 에 추가하면 고유 탐색 모음이 표시되고 인라인 CSS 스타일 시트를 사용하여 일반 막대는 숨길 수 있습니다. 다음 예제에서는 ?hideit=true 쿼리 매개 변수를 사용하여이 동작을 트리거합니다.이 매개 변수는 "iframe에 포함"문제에 가장 쉽게 접근 할 수있는 방법입니다. 쿠키를 세션이나 쿠키에 저장하여 "고정"할 수 있습니다.

<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이 같이 나타납니다 (위 com.madbean.topnavhack.TopNav이라고 함)

<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> 

최상위 탐색 구현 클래스처럼 보일 것입니다 :

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 

면책 조항 JIRA 팀에서 Atlassian 개발자로 일합니다.

+1

+1 - 아주 흥미롭고 도움이되었습니다. 감사합니다. * 현재 문서화되지 않은 * 것은 언젠가 공식적으로 문서화 될 것이므로 안정적인 것으로 간주 될 수 있습니까, 아니면 앞으로의 JIRA 버전에서이 플러그인 포인트가 여전히 사라질 수 있습니다. –

2

이 기능이 직접 노출되어 있다고 생각하지 않으며 사용중인 JIRA 버전을 나타내지는 않지만 \ atlassian-jira \ includes \ decorators의 4.x에는 bodytop.jsp라는 파일이 있습니다

// Render all the top nav plugins for (Iterator iterator = topNavPlugins.iterator(); iterator.hasNext();) { TopNavigationModuleDescriptor topNavModuleDescriptor = (TopNavigationModuleDescriptor) iterator.next(); PluggableTopNavigation pluggableTopNavigation = (PluggableTopNavigation) topNavModuleDescriptor.getModule();

%> <%= pluggableTopNavigation.getHtml(request) %> <% } %>

당신이 전혀 렌더링하지 않는 수정 bodytop.jsp를 호출하는 대시 보드 렌더링 JSP의 버전을 만들 수 있습니다 당신에게 원하는 경우 :은 최고 수준의 탐색 및 도구 모음 요소를 렌더링하는 다음 조각을 가지고 일반적인 nav 요소.

0

현재 Jira 4.2.2를 실행 중이며 사용자 정의 탐색 모음에 PluggableTopNavigation을 구현하는 플러그인을 작성했습니다.유감스럽게도, 수여 된 질문에 설명 된대로이 기능은 현재 가치가 떨어집니다.

내 플러그인은 개발 페이지에서 사용할 수있는 멋진 메뉴를 만든 Jira 헤더 맨 위에 div을 추가했습니다. 메뉴 소스는 플러그인에 하드 코딩되어 다른 페이지에서 공유 할 수 있도록 서버에 고정 menu.html 파일로 저장됩니다.

Jira 5.2 플러그인을 완전히 다시 설계해야하기 때문에 메뉴를 다시 구현하는 다른 방법을 찾기 시작했습니다. 여기에 내가 정착 한 것이있다. 그것은 꽤 아니지만 플러그인을 작성하지 않아도됩니다.

는 다음에 (빨리 다음 발표 배너를 검색, 'GG'를 입력하여 거기에 도착) 공지 사항 배너를 변경

:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery.get("http://path.to.server/menu.html", function(data){ 
     jQuery("#header").prepend('<nav class="global" role="navigation">'+data+'</nav>'); 
     jQuery("#top-level-id-of-navbar a").css("color", "white") 
    }); 
    }); 
</script> 

자신의 링크가있는 menu.html 링크를 교체합니다. 헤더의 색상은 내 메뉴의 링크에 의해 상속되었으므로 html 페이지를 삽입 한 후 흰색으로 다시 변경해야했습니다.

결과는 Jira 4.2.2와 동일하므로 잘되었습니다.

관련 문제