diff --git a/src/panels/developer-tools/logs/developer-tools-logs.ts b/src/panels/developer-tools/logs/developer-tools-logs.ts
index 6bc7190ffd..5f6a0a5c91 100644
--- a/src/panels/developer-tools/logs/developer-tools-logs.ts
+++ b/src/panels/developer-tools/logs/developer-tools-logs.ts
@@ -5,6 +5,8 @@ import {
css,
TemplateResult,
property,
+ query,
+ customElement,
} from "lit-element";
import { HomeAssistant } from "../../../types";
@@ -12,10 +14,22 @@ import { haStyle } from "../../../resources/styles";
import "../logs/system-log-card";
import "../logs/error-log-card";
+// tslint:disable-next-line
+import { SystemLogCard } from "../logs/system-log-card";
-class HaPanelDevLogs extends LitElement {
+@customElement("developer-tools-logs")
+export class HaPanelDevLogs extends LitElement {
@property() public hass!: HomeAssistant;
+ @query("system-log-card") private systemLog?: SystemLogCard;
+
+ public connectedCallback() {
+ super.connectedCallback();
+ if (this.systemLog && this.systemLog.loaded) {
+ this.systemLog.fetchData();
+ }
+ }
+
protected render(): TemplateResult | void {
return html`
@@ -48,5 +62,3 @@ declare global {
"developer-tools-logs": HaPanelDevLogs;
}
}
-
-customElements.define("developer-tools-logs", HaPanelDevLogs);
diff --git a/src/panels/developer-tools/logs/system-log-card.ts b/src/panels/developer-tools/logs/system-log-card.ts
index 1d3e264e46..1406e26f3b 100644
--- a/src/panels/developer-tools/logs/system-log-card.ts
+++ b/src/panels/developer-tools/logs/system-log-card.ts
@@ -5,6 +5,7 @@ import {
css,
PropertyDeclarations,
TemplateResult,
+ customElement,
} from "lit-element";
import "@polymer/paper-icon-button/paper-icon-button";
import "@polymer/paper-item/paper-item-body";
@@ -29,8 +30,10 @@ const formatLogTime = (date, language: string) => {
: formatTime(dateTime, language);
};
-class SystemLogCard extends LitElement {
+@customElement("system-log-card")
+export class SystemLogCard extends LitElement {
public hass?: HomeAssistant;
+ public loaded = false;
private _items?: LoggedError[];
static get properties(): PropertyDeclarations {
@@ -40,6 +43,11 @@ class SystemLogCard extends LitElement {
};
}
+ public async fetchData(): Promise
{
+ this._items = undefined;
+ this._items = await fetchSystemLog(this.hass!);
+ }
+
protected render(): TemplateResult | void {
return html`
@@ -91,7 +99,7 @@ class SystemLogCard extends LitElement {
service="clear"
>Clear
- Refresh
@@ -103,7 +111,8 @@ class SystemLogCard extends LitElement {
protected firstUpdated(changedProps): void {
super.firstUpdated(changedProps);
- this._fetchData();
+ this.fetchData();
+ this.loaded = true;
this.addEventListener("hass-service-called", (ev) =>
this.serviceCalled(ev)
);
@@ -119,11 +128,6 @@ class SystemLogCard extends LitElement {
}
}
- private async _fetchData(): Promise {
- this._items = undefined;
- this._items = await fetchSystemLog(this.hass!);
- }
-
private _openLog(ev: Event): void {
const item = (ev.currentTarget as any).logItem;
showSystemLogDetailDialog(this, { item });
@@ -153,4 +157,8 @@ class SystemLogCard extends LitElement {
}
}
-customElements.define("system-log-card", SystemLogCard);
+declare global {
+ interface HTMLElementTagNameMap {
+ "system-log-card": SystemLogCard;
+ }
+}