2012-05-27 2 views
1

패널이 통신 할 수있는 방법이 생겨나 고 있음을 알고 있습니다. 그때까지, 나는 기본 환경과 약간의 기본적인 의사 소통을 할 수 있다고 생각했다.가난한 사람 대시 보드 앱 통신 제공

그러나 앱이있는 대시 보드의 고유 ID는 어떻게 찾습니까?

환경 설정 객체를 통해 정보를 공유하는 것보다 더 나은 해결책이있을 수 있으므로 해결하려는 특정 문제에 대해 설명하겠습니다. 프로젝트 구조 내의 특정 프로젝트는 "통계" 대시 보드 "- 대시 보드는 공유 대시 보드의 여러 응용 프로그램으로 구성됩니다. 그러나 프로그램은 랠리 프로젝트 계층 구조에서 일관된 수준이 아니며 우리는 많은 랠리 프로젝트가 있지만 약 4 개의 프로그램 만 있습니다.

이 때문에이 코드 메트릭 대시 보드를 랠리에서 한 페이지로 만들고 싶습니다.이 페이지는 우리가 보유한 다양한 프로그램간에 쉽게 전환 할 수 있습니다. 우리가 프로젝트를 많이 가지고 있고 프로그램을 찾고 선택하는 데 많은 시간과 까다 로움이 있기 때문에 프로젝트 계층 구조를 사용하지 않는 것이 좋습니다.

+1

당신이 랠리 개발자들에게이를 보낼 예정나요 그것의 요점을 찾을 수 있습니까? –

+0

우리는 여기에 숨어 ​​있으므로 우리에게 질문을하는 것이 좋습니다. –

답변

2

샘플을 해킹하여 두 패널간에 이벤트를 전달할 수있는 앱의 예를 만들었습니다. 이것은 현재로서는 매우 지원되지 않으며 우리는 경고없이 원할 때마다 중단 할 권리가 있습니다.

Apps ID를 얻을 수있는 현재 지원되지 않는 방법을 볼 수 있으며이 앱을 두 장 복사하면 전역 Rally 메시지 버스에서 통신하는 Apps의 결과를 콘솔에서 볼 수 있습니다.

당신은 here

<!DOCTYPE html> 
<html> 
<head> 
    <title>My Custom App</title> 

    <!--Include SDK--> 
    <script type="text/javascript" src="/apps/2.0p/sdk.js"></script> 

    <!--App code--> 
    <script type="text/javascript"> 

     Rally.onReady(function() { 

      Ext.define('CustomApp', { 
       extend: 'Rally.app.App', 
       componentCls: 'app', 
       mixins:['Rally.Messageable'], 
       launch: function() { 
        var brokenInTheFutureIdThatWillWorkForNow = Ext.Object.fromQueryString(window.location.href); 
        window.parent.Rally.Messages.subscribe("test",function(){console.error(brokenInTheFutureIdThatWillWorkForNow.panelOid,arguments);}); 
        window.parent.Rally.Messages.publish("test",brokenInTheFutureIdThatWillWorkForNow.panelOid); 
        //Write app code here 
       } 
      }); 

      Rally.launchApp('CustomApp', { 
       name: 'My Custom App' 
      }); 

     }); 

    </script> 

    <!--App styles--> 
    <style type="text/css"> 

     .app { 
      /* Add app styles here */ 
     } 

    </style> 

</head> 
<body class="myApp"> 
</body> 
</html> 
+0

이것은 아주 멋지다. 나는 몇 가지 좋은 정보를 하나의 앱에 쿼리하고, 데이터 저장소를 만든 다음 여러 데이터 저장소에 동일한 앱을 공유하는 멋진 커뮤니케이션 앱을 만들 수 있었다. 나에게 나는 메시지 버스가 앱을 중심으로하는 집회 전략을위한 핵심 기술이라고 생각한다. – kimon

+0

메시지 버스에 몇 가지 문제점을 발견했다. 전체 페이지를 새로 고치면 애플리케이션이 제대로 작동한다. 그러나 내가 랠리 메뉴를 통해 다른 랠리 페이지에서이 페이지로 이동하면 새 메시지를 게시 할 때 예외가 발생합니다. 예외를 잡아 전체 페이지 (parent.location.reload (true))를 새로 고침으로써이 문제를 해결할 수 있었지만 분명히 이상적이지는 않습니다. 이것에 대한 지원되는 솔루션을 기다릴 수 없습니다. – kimon

+0

그래, 우리는 그것을 강력하고 사용하기 쉬운 것으로 만들기 위해 노력하고 있습니다. 바로 지금 거기에 몇 가지 문제가있을 것이고 당신이 그것에 대해 할 수있는 톤이 없습니다. 이 예외는 앱이 삭제 될 때 이벤트가 등록 취소되지 않았을 가능성이 높습니다. 작동 시키려면 마술을 할 수 있습니다. 작업중인 Apps를 공유 할 수 있습니까? 나는 당신이하는 것에 매우 관심이 있습니다. #RallyApps 태그로 트윗하거나 GitHub에 올려 놓는 것이 좋습니다. 그래서 다른 사람들은 그 태그를 벗겨 낼 수 있습니다. –