diff --git a/panels/hassio/addon-store/hassio-addon-store.html b/panels/hassio/addon-store/hassio-addon-store.html index afe5defebc..22b18292f3 100644 --- a/panels/hassio/addon-store/hassio-addon-store.html +++ b/panels/hassio/addon-store/hassio-addon-store.html @@ -47,6 +47,11 @@ Polymer({ type: Object, }, + visible: { + type: Boolean, + observer: '_visibleChanged', + }, + route: Object, _routeData: Object, _routeMatches: Boolean, @@ -78,16 +83,18 @@ Polymer({ apiCalled: function (ev) { if (ev.detail.success) { - this.loadData(); + this._loadData(); } }, - attached: function () { - this.loadData(); + _visibleChanged: function (visible) { + if (visible) { + this._loadData(); + } }, - loadData: function () { - this.hass.callApi('get', 'hassio/supervisor/addons') + _loadData: function () { + this.hass.callApi('get', 'hassio/addons') .then(function (info) { this.addons = info.data.addons; this.repos = info.data.repositories; @@ -120,7 +127,7 @@ Polymer({ refreshData: function () { this.hass.callApi('post', 'hassio/supervisor/reload') .then(function () { - this.loadData(); + this._loadData(); }.bind(this)); }, }); diff --git a/panels/hassio/addon-view/hassio-addon-info.html b/panels/hassio/addon-view/hassio-addon-info.html index 272d62fa91..ee23ed1a66 100644 --- a/panels/hassio/addon-view/hassio-addon-info.html +++ b/panels/hassio/addon-view/hassio-addon-info.html @@ -3,14 +3,13 @@ + - + - - - - + + @@ -49,17 +154,54 @@ Polymer({ is: 'hassio-addon-info', properties: { - hass: { - type: Object, - }, + hass: Object, + addonInfo: Object, + addonState: Object, - addonInfo: { - type: Object, + _isRunning: { + type: Boolean, + computed: '_computeIsRunning(addonState)', }, }, - computeInstallStatus: function (addon) { - return (addon && addon.installed) || 'Not installed'; + _computeIsRunning: function (addonState) { + return addonState && addonState.state === 'started'; }, + + _computeUpdateAvailable: function (data) { + return data && !data.detached && data.version !== data.last_version; + }, + + _pathStart: function (addon) { + return 'hassio/addons/' + addon + '/start'; + }, + + _pathStop: function (addon) { + return 'hassio/addons/' + addon + '/stop'; + }, + + _pathRestart: function (addon) { + return 'hassio/addons/' + addon + '/restart'; + }, + + _pathUninstall: function (addon) { + return 'hassio/addons/' + addon + '/uninstall'; + }, + + _pathUpdate: function (addon) { + return 'hassio/addons/' + addon + '/update'; + }, + + _pathAddonOptions: function (addon) { + return 'hassio/addons/' + addon + '/options'; + }, + + _dataToggleAutoUpdate: function (addon, addonState) { + return addonState && { auto_update: !addonState.auto_update }; + }, + + _dataToggleBoot: function (addon, addonState) { + return addonState && { boot: addonState.boot === 'manual' ? 'auto' : 'manual' }; + } }); diff --git a/panels/hassio/addon-view/hassio-addon-state.html b/panels/hassio/addon-view/hassio-addon-state.html deleted file mode 100644 index 7efdae14ca..0000000000 --- a/panels/hassio/addon-view/hassio-addon-state.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - diff --git a/panels/hassio/addon-view/hassio-addon-view.html b/panels/hassio/addon-view/hassio-addon-view.html index 6591469108..b5c1f02a1c 100644 --- a/panels/hassio/addon-view/hassio-addon-view.html +++ b/panels/hassio/addon-view/hassio-addon-view.html @@ -7,17 +7,13 @@ - @@ -96,15 +70,6 @@ Polymer({ type: Object, }, - narrow: { - type: Boolean, - }, - - showMenu: { - type: Boolean, - value: false, - }, - route: Object, _routeData: { type: Object, @@ -138,6 +103,8 @@ Polymer({ apiCalled: function (ev) { var path = ev.detail.path; + if (!path) return; + if (path.substr(path.lastIndexOf('/') + 1) === 'uninstall') { this.backTapped(); } else { diff --git a/panels/hassio/advanced/hassio-advanced.html b/panels/hassio/advanced/hassio-advanced.html index 6afaaff87a..15cf4c7013 100644 --- a/panels/hassio/advanced/hassio-advanced.html +++ b/panels/hassio/advanced/hassio-advanced.html @@ -75,15 +75,6 @@ Polymer({ type: Object, }, - narrow: { - type: Boolean, - }, - - showMenu: { - type: Boolean, - value: false, - }, - supervisorInfo: { type: Object, value: {}, diff --git a/panels/hassio/hassio-main.html b/panels/hassio/hassio-main.html index 7b2da67435..8cb2d6d5bb 100644 --- a/panels/hassio/hassio-main.html +++ b/panels/hassio/hassio-main.html @@ -81,8 +81,6 @@ Looks like you don't have any snapshots yet.

-