Allow viewing supervisor logs

https://www.pivotaltracker.com/story/show/145177223
This commit is contained in:
Paulus Schoutsen 2017-05-11 21:29:53 -07:00
parent 1f6f2c9260
commit 9bde68c4cc
4 changed files with 108 additions and 5 deletions

View File

@ -107,7 +107,7 @@ Polymer({
},
storeTapped: function () {
this.fire('hassio-show-store');
this.fire('hassio-show-page', { page: 'addon-store' });
},
});
</script>

View File

@ -35,6 +35,7 @@
</table>
</div>
<div class="card-actions">
<paper-button on-tap='supervisorLogsTapped'>View logs</paper-button>
<template is='dom-if' if='[[computeUpdateAvailable(data)]]'>
<ha-call-api-button
hass='[[hass]]'
@ -69,5 +70,9 @@ Polymer({
computeUpdateAvailable: function (data) {
return data.version !== data.last_version;
},
supervisorLogsTapped: function () {
this.fire('hassio-show-page', { page: 'supervisor' });
}
});
</script>

View File

@ -3,6 +3,7 @@
<link rel="import" href="./dashboard/hassio-dashboard.html">
<link rel="import" href="./addon-view/hassio-addon-view.html">
<link rel="import" href="./addon-store/hassio-addon-store.html">
<link rel="import" href="./supervisor/hassio-supervisor.html">
<link rel="import" href="./hassio-loading.html">
<link rel="import" href="./hassio-data.html">
@ -52,11 +53,17 @@
<template is='dom-if' if='[[addonStoreSelected(currentPage)]]'>
<hassio-addon-store
id='addon-store'
hass='[[hass]]'
supervisor-info='[[supervisorInfo]]'
></hassio-addon-store>
</template>
<template is='dom-if' if='[[supervisorSelected(currentPage)]]'>
<hassio-supervisor
hass='[[hass]]'
supervisor-info='[[supervisorInfo]]'
></hassio-supervisor>
</template>
</template>
</dom-module>
@ -121,7 +128,7 @@ Polymer({
listeners: {
'hassio-select-addon': 'addonSelected',
'hassio-show-store': 'showStore',
'hassio-show-page': 'showPage',
'hass-api-called': 'apiCalled',
},
@ -167,8 +174,8 @@ Polymer({
}
},
showStore: function () {
this.currentPage = 'addon-store';
showPage: function (ev) {
this.currentPage = ev.detail.page;
},
dashboardSelected: function (currentPage) {
@ -183,5 +190,9 @@ Polymer({
return currentPage === 'addon-view';
},
supervisorSelected: function (currentPage) {
return currentPage === 'supervisor';
},
});
</script>

View File

@ -0,0 +1,87 @@
<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../../bower_components/app-layout/app-header-layout/app-header-layout.html">
<link rel="import" href="../../../bower_components/app-layout/app-header/app-header.html">
<link rel="import" href="../../../bower_components/app-layout/app-toolbar/app-toolbar.html">
<link rel="import" href="../../../bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="../../../src/components/ha-menu-button.html">
<dom-module id="hassio-supervisor">
<template>
<style include="iron-flex ha-style">
.content {
padding: 16px;
margin: 0;
white-space: pre-wrap;
}
</style>
<app-header-layout has-scrolling-region>
<app-header fixed>
<app-toolbar>
<paper-icon-button
icon='mdi:arrow-left'
on-tap='backTapped'
></paper-icon-button>
<div main-title>Supervisor Logs</div>
<paper-icon-button
icon="mdi:refresh"
on-tap="refreshTapped"
></paper-icon-button>
</app-toolbar>
</app-header>
<pre class='content'>[[logs]]</pre>
</app-header-layout>
</template>
</dom-module>
<script>
Polymer({
is: 'hassio-supervisor',
properties: {
hass: {
type: Object,
},
narrow: {
type: Boolean,
},
showMenu: {
type: Boolean,
value: false,
},
supervisorInfo: {
type: Object,
},
logs: {
type: String,
value: '',
},
},
attached: function () {
this.loadData();
},
loadData: function () {
this.hass.callApi('get', 'hassio/supervisor/logs')
.then(function (info) {
this.logs = info;
}.bind(this), function () {
this.logs = 'Error fetching logs';
}.bind(this));
},
refreshTapped: function () {
this.loadData();
},
backTapped: function () {
this.fire('hassio-select-addon', { addon: null });
},
});
</script>