【问题标题】:Jira Gadget Plugin - Javascript DRYJira 小工具插件 - Javascript DRY
【发布时间】:2011-05-26 10:03:36
【问题描述】:

我在小工具 xml 文件中看到,我在其中编写视图部分以创建图表,该图表对于每个小工具始终是相同的代码,是否可以更清楚地说明?像创建一个外部 Javascript 文件来导入?可能是外部文件的问题是获取数据。

代码如下:

view: {
                        enableReload: true,
                        onResizeReload: true,
                        onResizeAdjustHeight: true,
                        template: function (args) {
                            var gadget = this;
                            gadget.getView().empty();
                            gadget.projectOrFilterName = args.chart.filterName;

                            var container = AJS.$("<div id='chart_div'/>");
                            gadget.getView().append(container);

                            if(args.chart.data && args.chart.data.length > 0) {
                                var data = new google.visualization.DataTable();
                                data.addColumn('string', this.getMsg("gadget.user.activity.time.label"));
                                data.addColumn('number', this.getMsg("gadget.user.activity.issues.solving.label"));
                                data.addColumn('number', this.getMsg("gadget.user.activity.sum.label"));
                                data.addRows(args.chart.data);

                                switch(gadget.getPref("chartType"))
                                {
                                    case "ColumnChart":
                                        var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
                                        break;
                                    case "AreaChart":
                                        var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
                                        break;
                                    case "LineChart":
                                        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
                                        break;
                                }

                                var width = gadgets.window.getViewportDimensions().width;
                                var height = width * 3/4;
                                chart.draw(
                                    data,
                                    {width: width, height: height,
                                    curveType: "function",
                                    legend: 'bottom',
                                    backgroundColor:{fill:'#DDE8FF'},
                                    vAxis: {  textStyle:{fontSize:10},
                                            baseline:0,
                                            baselineColor:'#9F0000'},
                                    hAxis: {textStyle:{fontSize:10},
                                            slantedText:'true',
                                            slantedTextAngle:45},
                                    colors:['#566D7E','orange'],
                                    fontName:'Trebuchet MS',
                                    pointSize: 2
                                });
                            }
                            else {
                                gadget.getView().append("<p>No Data available</p>");
                            }

                            gadget.resize();
                        },

【问题讨论】:

    标签: javascript ajax plugins jira jira-plugin


    【解决方案1】:

    你应该像这样在你的 atlassian-plugin.xml 中包含你自己的 JS:

      <!-- GADGET WEB RESOURCES -->
      <web-resource key="resources">
        <resource type="download" name="javascript/common.js" location="javascript/MyCustomLibrary.js">
          <property key="content-type" value="text/javascript"/>
        </resource>
        <!-- ... -->
      </web-resource>
    

    然后,将其添加到您的 plugin.xml 中

    #requireResource("plugin-key:resources")
    

    最后,从您的小工具对象视图部分调用您的 JS 函数:

    CustomFunction(gadget, data);
    

    希望对你有所帮助, 问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 2015-01-15
      相关资源
      最近更新 更多