2012-09-11 2 views
2

랠리에서 골판지를 만들어 특정 프로젝트에 지정된 스토리 (주어진 릴리스 내에서)를 표시하려고합니다.프로젝트 별 이야기를위한 골판지

우리는 프로젝트 필드를 사용하여 세 가지 스크럼 팀 중 특정 스토리를 작업하고있는 팀을 식별합니다. 보드 스타일의 디스플레이를 사용하여 팀에서 팀으로 빠르게 스토리를 옮기고 주어진 릴리스에 대한 각 팀 플레이트의 목록을 표시 할 수 있습니다.

나는 다음과 같은 사용자 정의 HTML 앱 내놓았다 :

function cardboardOnLoad(cardboard, args) { 
    var items = args.items; 
    var itemsByType = cardboard.getItems(null, "Defect"); 
    var itemsByState = cardboard.getItems("Accepted"); 
    var itemsByTypeAndState = cardboard.getItems("Backlog", "Defect"); 
} 

function onLoad() { 
    var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__', 
          '__PROJECT_OID__', '__PROJECT_SCOPING_DOWN__'); 
    var cardboardConfig = { 
     types : ["Defect", "HierarchicalRequirement"], 
     attribute: "Project", 
     fetch : "Name,FormattedID,Owner,ObjectID", 
     query : 'Release.Name = "RI 3.1.0"', 
     order : 'Rank' 
    }; 

    var cardboard = new rally.sdk.ui.CardBoard(cardboardConfig, rallyDataSource); 
    cardboard.addEventListener(cardboard.getValidEvents().onLoad, cardboardOnLoad); 
    cardboard.display("cardboard"); 
} 

rally.addOnLoad(onLoad); 

만 문제가 실제로 내 이야기 ​​... 단지 프로젝트 열 이름 ...

이 이야기를 표시하지 않는다는 것입니다 속성 값을 "ScheduleState"로 변경하고 "Project"를 변경하지 않은 경우 표시됩니다. 이유는 확실하지 않습니다.

도움이 될 것입니다.

감사합니다.

+0

바닐라 판지로이 작업을 수행 할 수 있을지 확신하지 못합니다. Project는 Object 필드입니다. 즉, 실제로 매핑하려는 것은 Project.Name입니다. 그러나 내 테스트에서이를 속성으로 사용하지 못합니다. 즉, cardboardConfig의 구문 분석이 구성원 객체의 하위 속성을 통과하도록 설정되어 있지 않습니다. –

+0

나는 그것이 작동하지 않는 이유가 있다고 생각합니다. 특정 페이지에서 볼 수있는 데이터를 보면, 일반적으로 먼저 프로젝트 선택 (왼쪽 위)에 의해 필터링되므로, 선택한 프로젝트에 대해 카드가 나타나도 데이터는 여전히 제약을받으며, 해당 필터에서 반환 된 범용 집합 외부의 사용자 스토리/결함에 액세스 할 수 없게됩니다. 이것은 분명히 때로는 방해가 될 수 있으며, 보편적 인 세트를 제외하고 초기 선택을 뺀 옵션이 있다면 그것은 분명 좋을 것입니다. 그러나 그것은 개별 애플 리케이션의 영역 밖에서 작동합니다. – user1417835

답변

0

이렇게하려면 열을 수동으로 쿼리하는 곳에서 약간 더 고급 사용이 필요합니다. 위의 주석은 다른 이상한 프로젝트 범위 지정 동작을 실행할 수 있다는 점에서 옳습니다.

다음 앱은 현재 범위가 지정된 프로젝트의 모든 직접 하위 프로젝트에 대한 보드를 작성합니다.

프로젝트 계층과 같이이 가정 :

프로젝트 1
+ - 프로젝트 2
+ - 프로젝트 3
+ - 프로젝트 4

열 프로젝트를 포함 보드 2, 프로젝트 3 및 프로젝트 4를 프로젝트 1로 범위를 정했습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
     <title>Release Project Board</title> 
     <meta name="Name" content="Release Project Board" /> 
     <script type="text/javascript" src="/apps/1.32/sdk.js"></script> 
     <script type="text/javascript"> 

      var rallyDataSource; 
      var cardBoard; 
      var releaseDropdown; 

      function onLoad() { 
       rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__', 
        '__PROJECT_OID__', 
        '__PROJECT_SCOPING_UP__', 
        '__PROJECT_SCOPING_DOWN__'); 
       releaseDropdown = new rally.sdk.ui.ReleaseDropdown({}, rallyDataSource); 
       releaseDropdown.addEventListener("onLoad", findProjects); 
       releaseDropdown.addEventListener("onChange", onReleaseChanged); 
       releaseDropdown.display("release"); 
      } 

      function onReleaseChanged(rd, args) { 
       var config = cardboard.getConfiguration(); 
       config.query = releaseDropdown.getQueryFromSelected(); 
       cardboard.refresh(config); 
      } 

      function findProjects() { 
       rallyDataSource.find({ 
        key: "projects", 
        type: "project", 
        query: new rally.sdk.util.Query('Parent = /project/__PROJECT_OID__'), 
        fetch: true 
       }, onProjectsRetrieved); 
      } 

      function onProjectsRetrieved(results) { 
       var columns = {}; 
       rally.forEach(results.projects, function(project) { 
        columns[rally.sdk.util.Ref.getRelativeRef(project)] = { 
         displayValue: project.Name 
        }; 
       }); 

       var cardboardConfig = { 
        types : ["Defect", "HierarchicalRequirement"], 
        attribute: "Project", 
        fetch : "Name,FormattedID,Owner,ObjectID,Project", 
        query: releaseDropdown.getQueryFromSelected(), 
        columns: columns 
       }; 

       cardboard = new rally.sdk.ui.CardBoard(cardboardConfig, rallyDataSource); 
       cardboard.display("cardboard"); 
      } 

      rally.addOnLoad(onLoad); 

     </script> 
    </head> 
    <body> 
     <div id="release"></div> 
     <div id="cardboard"></div> 
    </body> 
</html> 
+0

그게 정확히 내가 원하는 걸. 감사 – user1664218

관련 문제