blob: 3977a91e6b081e6310ee006aaf3754ea4ddd8682 [file] [log] [blame]
<!--
This in an HTML Import-able file that contains the JS and HTML Templates for
the version-sk element.
To use this file import it:
<link href="/res/imp/version-sk.html" rel="import" />
Properties:
commit - The Git commit hash of the running code.
short_commit - A shortened versioned of commit.
date - The build date of the running code.
Methods:
None.
Events:
None.
-->
<link rel="import" href="/res/imp/bower_components/polymer/polymer.html">
<link rel="import" href="/res/imp/bower_components/iron-icons/iron-icons.html">
<link rel="import" href="/res/imp/bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="/res/imp/bower_components/paper-tooltip/paper-tooltip.html">
<dom-module id="version-sk">
<template>
<style>
:host {
font-size: 15px;
color: var(--version-sk-color, #000000);
}
paper-icon-button {
--iron-icon-height: 15px;
--iron-icon-width: 15px;
padding: 0px;
}
.hidden {
visibility: hidden;
}
</style>
<span>
<paper-icon-button id="reloadButton" icon="icons:refresh" on-click="_reload" class$="{{_buttonClass(_needReload)}}"></paper-icon-button>
<paper-tooltip for="reloadButton">A new version is available. Click to reload.</paper-tooltip>
version: <a id="link" href$="{{_commitUrl(commit)}}" title$="{{date}}" target="_blank">{{short_commit}}</a>
</span>
</template>
<script>
(function() {
Polymer({
is: "version-sk",
properties: {
/**
* The Git commit hash of the running code.
*/
commit: {
type: String,
value: "???",
readOnly: true,
},
/**
* A shortened versioned of commit.
*/
short_commit: {
type: String,
computed: "_shortCommit(commit)",
},
/**
* The build date of the running code.
*/
date: {
type: String,
value: "???",
readOnly: true,
},
_needReload: {
type: Boolean,
value: false,
},
},
ready: function() {
this._getVersion();
setInterval(function() {
this._getVersion();
}.bind(this), 300000);
},
_buttonClass: function(needReload) {
if (!needReload) {
return "hidden";
}
return "";
},
_commitUrl: function(commit) {
return "https://skia.googlesource.com/buildbot/+show/" + commit;
},
_getVersion: function() {
sk.get("/json/version").then(JSON.parse).then(function(json) {
if (this.commit == "???") {
this._setCommit(json.commit);
this._setDate(json.date);
} else if (this.commit != json.commit) {
console.log("Need reload!");
this._needReload = true;
}
}.bind(this));
},
_reload: function() {
window.location.href = window.location.href;
},
_shortCommit: function(commit) {
return commit.substring(0, 7);
},
});
}());
</script>
</dom-module>