Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: status/res/imp/bar-chart-sk.html

Issue 1051173003: Add controls to buildbot dashboard (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Simplify promise Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « status/elements.html ('k') | status/res/imp/buildbot-dash-sk.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: status/res/imp/bar-chart-sk.html
diff --git a/status/res/imp/bar-chart-sk.html b/status/res/imp/bar-chart-sk.html
index 9cb0f79947030c041bd7f5cad859c971f3abfb85..c886b87a179bd7c1de0bbfb15e997ad23bbbc1a7 100644
--- a/status/res/imp/bar-chart-sk.html
+++ b/status/res/imp/bar-chart-sk.html
@@ -20,13 +20,13 @@
Properties:
heading: string; title of the chart.
colors: array of strings; colors to use in the chart.
+ columns: array of arrays indicating the types and names of the columns, eg:
+ [["string", "seriesName"], ["number", "dataPoint"]].
+ data: array of arrays containing data for each column, eg:
+ [["series1", 42], ["series2", 7]].
Methods:
- draw: render the chart using the given columns and data. The 'columns'
- parameter is an array of arrays indicating the types and names of the
- columns, eg: [["string", "seriesName"], ["number", "dataPoint"]].
- The 'data' parameter is an array of arrays containing data for each
- column, eg: [["series1", 42], ["series2", 7]].
+ draw: render the chart.
-->
<polymer-element name="bar-chart-sk">
<template>
@@ -35,6 +35,10 @@
border: 1px solid #eeeeee;
margin: 5px;
padding: 10px;
+ font-size: 12px;
+ }
+ h2 {
+ font-size: 16px;
}
.collapseHeader {
cursor: pointer;
@@ -43,17 +47,23 @@
padding: 10px;
}
</style>
- <div class="chart">
- <div class="collapseHeader" on-click="{{toggle}}">
- {{heading}}
+ <div class="chart" id="host">
+ <div class="collapseHeader" on-click="{{toggle}}" horizontal layout center>
+ <h2 flex>{{heading}}</h2>
+ <core-icon icon="{{icon}}"></core-icon>
</div>
- <core-collapse id="collapse">
+ <core-collapse id="collapse" on-core-collapse-open="{{collapseOpen}}">
<div class="collapseBody" id="chartcontainer"></div>
</core-collapse>
</div>
</template>
<script>
+ (function() {
+ var chartsReady = new Promise(function(resolve, reject) {
+ google.setOnLoadCallback(resolve);
+ });
+
Polymer({
publish: {
heading: {
@@ -64,43 +74,90 @@
value: [],
reflect: false,
},
+ columns: {
+ value: null,
+ reflect: false,
+ },
+ data: {
+ value: null,
+ reflect: false,
+ },
+ },
+
+ created: function() {
+ this.icon = "arrow-drop-down";
+ },
+
+ ready: function() {
+ var that = this;
+ window.addEventListener("resize", function() {
+ that.draw();
+ });
},
toggle: function() {
this.$.collapse.toggle();
},
- draw: function(columns, data) {
- var table = new google.visualization.DataTable();
- for (var i = 0; i < columns.length; i++) {
- table.addColumn(columns[i][0], columns[i][1]);
+ colorsChanged: function() {
+ this.draw();
+ },
+
+ columnsChanged: function() {
+ this.draw();
+ },
+
+ dataChanged: function() {
+ this.draw();
+ },
+
+ collapseOpen: function() {
+ if (this.$.collapse.opened) {
+ this.icon = "arrow-drop-up";
+ } else {
+ this.icon = "arrow-drop-down";
}
- table.addRows(data);
-
- var headerHeight = 0;
- var chartWidth = 400;
- var chartHeight = 15 * data.length;
- var labelWidth = 410;
- var options = {
- "chartArea": {
- "top": headerHeight,
- "left": labelWidth,
- "width": chartWidth,
- "height": chartHeight,
- },
- "legend": { "position": "none" },
- "width": labelWidth + chartWidth,
- "height": headerHeight + chartHeight,
- "fontSize": 12,
- "titleTextStyle": { "fontSize": 18 },
- };
- if (this.colors) {
- options["colors"] = this.colors;
+ },
+
+ draw: function() {
+ if (!this.columns || !this.data) {
+ return;
}
+ var that = this;
+ chartsReady.then(function() {
+ var table = new google.visualization.DataTable();
+ for (var i = 0; i < that.columns.length; i++) {
+ table.addColumn(that.columns[i][0], that.columns[i][1]);
+ }
+ table.addRows(that.data);
+
+ var totalWidth = that.$.host.offsetWidth;
+ var headerHeight = 0;
+ var labelWidth = 410;
+ var chartWidth = totalWidth - labelWidth;
+ var chartHeight = 15 * that.data.length;
+ var options = {
+ "chartArea": {
+ "top": headerHeight,
+ "left": labelWidth,
+ "width": chartWidth,
+ "height": chartHeight,
+ },
+ "legend": { "position": "none" },
+ "width": totalWidth,
+ "height": headerHeight + chartHeight,
+ "fontSize": 12,
+ "titleTextStyle": { "fontSize": 18 },
+ };
+ if (that.colors) {
+ options["colors"] = that.colors;
+ }
- var chart = new google.visualization.BarChart(this.$.chartcontainer);
- chart.draw(table, options);
+ var chart = new google.visualization.BarChart(that.$.chartcontainer);
+ chart.draw(table, options);
+ });
},
});
+ })();
</script>
</polymer-element>
« no previous file with comments | « status/elements.html ('k') | status/res/imp/buildbot-dash-sk.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698