blob: f20835baad363e7f771849072be47bb82554fa1d [file] [log] [blame]
<!--
This in an HTML Import-able file that contains the definition
of the following elements:
<list-tasks-sk>
This element displays all waiting and running tasks being processed by the
Android Compile Server.
To use this file import it:
<link href="list-tasks-sk.html" rel="import" />
Usage:
<list-tasks-sk></list-tasks-sk>
Attributes:
androidCompileInstances - An array of Android compile instances.
unownedPendingTasks - An array of compile tasks waiting to be picked up.
ownedPendingTasks - An array of currently running compile tasks.
Events:
None
-->
<link rel="import" href="/res/imp/bower_components/iron-flex-layout/iron-flex-layout-classes.html">
<link rel="import" href="/res/common/imp/app-sk.html" />
<dom-module id="list-tasks-sk">
<template>
<style include="iron-positioning android-compile-app-style">
.current-time {
padding-right: 3em;
}
table.tasktable {
border:solid black 1px;
border-spacing: 0px;
width: 80%;
}
tr.headers {
background-color: #CCCCFF;
text-align: center;
}
tr {
text-align: center;
}
td {
white-space: nowrap;
}
</style>
<app-sk class="fit" header_height="60px">
<span header class="title">Android Compile Server</span>
<span rtoolbar class="current-time">Current time: [[ _displayCurrentTime() ]]</span>
<compile-menu-sk navigation></compile-menu-sk>
<br/><br/>
<force-sync-sk android-compile-instances="[[androidCompileInstances]]">
</force-sync-sk>
<br/><br/>
<table class="tasktable" cellpadding="5" border="1">
<col width = "50%">
<col width = "50%">
<tr class="headers">
<td colspan=2>
[[unownedPendingTasks.length]] Tasks Waiting in Queue
</td>
</tr>
<template is="dom-repeat" items="{{unownedPendingTasks}}">
<tr>
<td>
<template is="dom-if" if="[[item.hash]]">
<a href="[[ _getHashLink(item.hash) ]]" target="_blank">[[ _getShortHash(item.hash) ]]</a>
</template>
<template is="dom-if" if="[[item.issue]]">
<a href="[[ _getGerritLink(item.issue, item.patchset) ]]" target="_blank">skrev/[[item.issue]]/[[item.patchset]]</a>
</template>
</td>
<td>
Created: [[ _formatTimestamp(item.created) ]]
</td>
</tr>
</template>
</table>
<br/><br/>
<table class="tasktable" cellpadding="5" border="1">
<col width = "50%">
<col width = "50%">
<tr class="headers">
<td colspan=2>
[[ownedPendingTasks.length]] Tasks Currently Running
</td>
</tr>
<template is="dom-repeat" items="{{ownedPendingTasks}}">
<tr>
<td>
Running on [[item.compile_server_instance]] ([[item.checkout]]):
<a href="[[ _getGerritLink(item.issue, item.patchset) ]]" target="_blank">skrev/[[item.issue]]/[[item.patchset]]</a>
</td>
<td>
Created: [[ _formatTimestamp(item.created) ]]
</td>
</tr>
</template>
</table>
</app-sk>
</template>
<script>
Polymer({
is: "list-tasks-sk",
properties: {
androidCompileInstances: {
type: Array,
value: [],
},
unownedPendingTasks: {
type: Array,
value: [],
},
ownedPendingTasks: {
type: Array,
value: [],
},
},
_getShortHash: function(hash) {
return hash.substring(0, 7);
},
_getHashLink: function(hash) {
return "https://skia.googlesource.com/skia/+/" + hash;
},
_getGerritLink: function(issue, patchset) {
return "https://skia-review.googlesource.com/c/skia/+/" + issue +
"/" + patchset;
},
_formatTimestamp: function(timestamp) {
if (!timestamp) {
return timestamp;
}
const d = new Date(timestamp);
return d.toUTCString();
},
_displayCurrentTime: function() {
const d = new Date();
return d.toUTCString();
},
});
</script>
</dom-module>