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

Unified Diff: appengine/swarming/ui/res/imp/botpage/device-summary.html

Issue 2768893002: Add device-summary to bot-page (Closed)
Patch Set: Address feedback Created 3 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 | « appengine/swarming/ui/res/imp/botpage/bot-page.html ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/swarming/ui/res/imp/botpage/device-summary.html
diff --git a/appengine/swarming/ui/res/imp/botpage/device-summary.html b/appengine/swarming/ui/res/imp/botpage/device-summary.html
new file mode 100644
index 0000000000000000000000000000000000000000..3725c51747ca3ab10ffa4cee6f547bbc56c93449
--- /dev/null
+++ b/appengine/swarming/ui/res/imp/botpage/device-summary.html
@@ -0,0 +1,124 @@
+<!--
+ This in an HTML Import-able file that contains the definition
+ of the following elements:
+
+ <device-summary>
+
+ Usage:
+
+ <device-summary></device-summary>
+
+ Shows a summary of Android devices, given the state variable from a bot.
+ It assumes that all the devices attached to one machine are the same type.
+
+ Properties:
+ state: A state Object, as sent by the server. For bots with Android devices,
+ this is expected include at least the following fields:
+ {
+ devices:{
+ [id]:{
+ battery: {
+ level: Integer
+ },
+ state: String,
+ temp: {
+ [sensor_name]: Float
+ }
+ },
+ [id]:{
+ // same as above
+ },
+ }
+ }
+
+
+ Methods:
+ None.
+
+ Events:
+ None.
+-->
+
+<link rel="import" href="/res/imp/common/single-page-style.html">
+
+<dom-module id="device-summary">
+ <template>
+ <style include="single-page-style">
+ :host {
+ display: block;
+ }
+ </style>
+
+ <template is="dom-if" if="[[_devices.length]]">
+
+ <span class="title">Android Devices</span>
+
+ <table>
+ <thead>
+ <tr>
+ <th>ID</th>
+ <th>Battery</th>
+ <th>Avg Temp. (°C)</th>
+ <th>State</th>
+ </tr>
+ </thead>
+ <tbody>
+ <template is="dom-repeat" items="[[_devices]]" as="device">
+ <tr>
+ <td>[[device.id]]</td>
+ <td>[[device.battery]]</td>
+ <td>[[device.temp]]</td>
+ <td>[[device.state]]</td>
+ </tr>
+ </template>
+ </tbody>
+ </table>
+ </template>
+
+
+ </template>
+ <script>
+ Polymer({
+ is: 'device-summary',
+
+ properties: {
+ state: {
+ type: Object,
+ },
+ _devices: {
+ type: Array,
+ computed: "_getDevices(state.*)",
+ },
+ },
+
+ _getDevices() {
+ var arr = [];
+ if (!this.state || !this.state.devices) {
+ return arr;
+ }
+ for (var id in this.state.devices) {
+ if (this.state.devices.hasOwnProperty(id)) {
+ var d = this.state.devices[id];
+ var device = {
+ id: id,
+ battery: d.battery.level,
+ state: d.state,
+ };
+ var count = 0;
+ var totalTemp = 0;
+ for (var t in d.temp) {
+ totalTemp += parseFloat(d.temp[t]);
+ count++;
+ }
+ // Report the average temperature of all sensors.
+ if (count) {
+ device.temp = (totalTemp/count).toFixed(1);
+ }
+ arr.push(device);
+ }
+ }
+ return arr;
+ }
+ });
+ </script>
+</dom-module>
« no previous file with comments | « appengine/swarming/ui/res/imp/botpage/bot-page.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698