ガジェットの 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();
},