import '@polymer/paper-button/paper-button.js';
import '@polymer/paper-card/paper-card.js';
import { html } from '@polymer/polymer/lib/utils/html-tag.js';
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
import '../../src/components/buttons/ha-call-api-button.js';
import '../../src/util/hass-mixins.js';
class HassioSupervisorInfo extends window.hassMixins.EventsMixin(PolymerElement) {
static get template() {
return html`
Hass.io supervisor
Version |
[[data.version]]
|
Latest version |
[[data.last_version]] |
Channel |
[[data.channel]] |
Error: [[errors]]
Reload
Update
Leave beta channel
Join beta channel
`;
}
static get properties() {
return {
hass: Object,
data: Object,
errors: String,
leaveBeta: {
type: Object,
value: { channel: 'stable' },
},
};
}
ready() {
super.ready();
this.addEventListener('hass-api-called', ev => this.apiCalled(ev));
}
apiCalled(ev) {
if (ev.detail.success) {
this.errors = null;
return;
}
var response = ev.detail.response;
if (typeof response.body === 'object') {
this.errors = response.body.message || 'Unknown error';
} else {
this.errors = response.body;
}
}
computeUpdateAvailable(data) {
return data.version !== data.last_version;
}
_equals(a, b) {
return a === b;
}
_joinBeta() {
if (!confirm(`WARNING:
Beta releases are for testers and early adopters and can contain unstable code changes. Make sure you have backups of your data before you activate this feature.
This inludes beta releases for:
- Home Assistant (Release Candidates)
- Hass.io supervisor
- Host system`)) {
return;
}
const method = 'post';
const path = 'hassio/supervisor/options';
const data = { channel: 'beta' };
const eventData = {
method: method,
path: path,
data: data,
};
this.hass.callApi(method, path, data)
.then((resp) => {
eventData.success = true;
eventData.response = resp;
}, (resp) => {
eventData.success = false;
eventData.response = resp;
}).then(() => {
this.fire('hass-api-called', eventData);
});
}
}
customElements.define('hassio-supervisor-info', HassioSupervisorInfo);