summaryrefslogtreecommitdiff
path: root/query/chart_port_downtime.js
diff options
context:
space:
mode:
Diffstat (limited to 'query/chart_port_downtime.js')
-rw-r--r--query/chart_port_downtime.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/query/chart_port_downtime.js b/query/chart_port_downtime.js
new file mode 100644
index 0000000..2de421d
--- /dev/null
+++ b/query/chart_port_downtime.js
@@ -0,0 +1,47 @@
+function GrasChartPortDowntime(args, panel)
+{
+ //input checking
+ if (args.block_ids.length != 1) throw gras_error_dialog(
+ "GrasChartPortDowntime",
+ "Error making port downtime chart.\n"+
+ "Specify only one block for this chart."
+ );
+
+ //save enable
+ this.block_id = args.block_ids[0];
+
+ //make new chart
+ this.chart = new google.visualization.PieChart(panel);
+
+ this.title = "Port Downtime - " + this.block_id;
+ this.default_width = GRAS_CHARTS_STD_WIDTH;
+}
+
+GrasChartPortDowntime.prototype.update = function(point)
+{
+ var block_data = point.blocks[this.block_id];
+ if (!block_data) return;
+
+ var raw_data = new Array();
+ raw_data.push(['Port', 'Percent']); //key
+
+ //now add input and output port data
+ $.each(block_data.inputs_idle, function(index, downtime)
+ {
+ raw_data.push(['Input'+index.toString(), downtime/block_data.tps]);
+ });
+ $.each(block_data.outputs_idle, function(index, downtime)
+ {
+ raw_data.push(['Output'+index.toString(), downtime/block_data.tps]);
+ });
+
+ //update the chart from raw data
+ var data = google.visualization.arrayToDataTable(raw_data);
+ var options = {
+ chartArea:{left:5,top:0,right:5,bottom:0,width:"100%",height:"100%"},
+ };
+ if (this.gc_resize) options.width = 50;
+ if (this.gc_resize) options.height = 50;
+
+ this.chart.draw(data, options);
+};