From a88937e5b548669374895f206c3281c6ec5c388c Mon Sep 17 00:00:00 2001 From: Wendelin Date: Fri, 8 Nov 2024 11:40:39 +0100 Subject: [PATCH] Fix system-log-card ios download --- src/panels/config/logs/system-log-card.ts | 64 ++++++++++++++++++----- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/src/panels/config/logs/system-log-card.ts b/src/panels/config/logs/system-log-card.ts index 60ef7284d0..a625b0d792 100644 --- a/src/panels/config/logs/system-log-card.ts +++ b/src/panels/config/logs/system-log-card.ts @@ -1,6 +1,6 @@ import "@material/mwc-list/mwc-list"; import { mdiDotsVertical, mdiDownload, mdiRefresh, mdiText } from "@mdi/js"; -import type { CSSResultGroup } from "lit"; +import type { CSSResultGroup, PropertyValues } from "lit"; import { css, html, LitElement, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; @@ -23,7 +23,10 @@ import { isCustomIntegrationError, } from "../../../data/system_log"; import type { HomeAssistant } from "../../../types"; -import { fileDownload } from "../../../util/file_download"; +import { + downloadFileSupported, + fileDownload, +} from "../../../util/file_download"; import { showSystemLogDetailDialog } from "./show-dialog-system-log-detail"; import { formatSystemLogTime } from "./util"; @@ -39,6 +42,10 @@ export class SystemLogCard extends LitElement { @state() private _items?: LoggedError[]; + @state() private _downloadSupported?: boolean; + + @state() private _downloadUrl?: string; + public async fetchData(): Promise { this._items = undefined; this._items = await fetchSystemLog(this.hass!); @@ -97,6 +104,12 @@ export class SystemLogCard extends LitElement { const integrations = filteredItems.length ? filteredItems.map((item) => getLoggedErrorIntegration(item)) : []; + + const downloadButton = html` `; return html`
@@ -110,13 +123,21 @@ export class SystemLogCard extends LitElement {

${this.header || "Logs"}

- + ${this._downloadUrl + ? html` + ${!this._downloadSupported + ? html` + ${downloadButton} + ` + : downloadButton} + ` + : nothing}