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]]
Reload
`; } 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);