提供穷人的仪表板应用程序通信

Providing Poor man's dashboard app communication

本文关键字:仪表板 应用程序 通信      更新时间:2023-09-26

我知道你正在想出一种面板交流的方法。 在那之前,我一直在想我可以用偏好对象进行一些基本的交流。

但是,如何找到应用所在的仪表板的唯一 ID?

如果有比通过首选项对象共享信息更好的解决方案,让我描述一下我们想要解决的具体问题:项目结构中的某些项目表示我们希望为其显示"指标仪表板"的"程序"——该仪表板将由共享仪表板上的多个应用程序组成。 但是程序在拉力赛项目层次结构中并不处于一致的水平,尽管我们有很多拉力赛项目,但我们只有大约四个项目。

因此,我希望这个代码度量仪表板是 Rally 中的一个页面,它可以轻松地在我们拥有的各种程序之间切换。 我宁愿不使用项目层次结构来执行此操作,因为我们有很多项目,查找和选择程序既耗时又棘手。

我破解了示例,以创建一个可以在两个面板之间传递事件的应用程序示例。这目前非常不受支持,我们保留随时打破它的权利,恕不另行通知。

话虽如此,您可以看到当前不受支持的获取应用程序ID的方式,如果您制作此应用程序的两个副本,则可以在控制台中看到应用程序在全球拉力赛消息总线上通信的结果。

你可以在这里找到它的要点

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