diff --git a/hassio/src/dialogs/snapshot/dialog-hassio-snapshot.ts b/hassio/src/dialogs/snapshot/dialog-hassio-snapshot.ts
index f844c22289..e9f0291280 100755
--- a/hassio/src/dialogs/snapshot/dialog-hassio-snapshot.ts
+++ b/hassio/src/dialogs/snapshot/dialog-hassio-snapshot.ts
@@ -10,6 +10,7 @@ import {
internalProperty,
LitElement,
property,
+ query,
TemplateResult,
} from "lit-element";
import { fireEvent } from "../../../../src/common/dom/fire_event";
@@ -90,6 +91,8 @@ class HassioSnapshotDialog extends LitElement {
@internalProperty() private _restoreHass: boolean | null | undefined = true;
+ @query("#download", true) private _downloadBtn!: HTMLAnchorElement;
+
public async showDialog(params: HassioSnapshotDialogParams) {
this._snapshot = await fetchHassioSnapshotInfo(this.hass, params.slug);
this._folders = _computeFolders(
@@ -231,6 +234,7 @@ class HassioSnapshotDialog extends LitElement {
Delete Snapshot
`
: ""}
+
`;
}
@@ -269,6 +273,9 @@ class HassioSnapshotDialog extends LitElement {
--mdc-theme-primary: var(--mdc-theme-surface);
flex-shrink: 0;
}
+ #download {
+ display: none;
+ }
/* overrule the ha-style-dialog max-height on small screens */
@media all and (max-width: 450px), all and (max-height: 500px) {
ha-header-bar {
@@ -457,12 +464,10 @@ class HassioSnapshotDialog extends LitElement {
}
const name = this._computeName.replace(/[^a-z0-9]+/gi, "_");
- const a = document.createElement("a");
- a.href = signedPath.path;
- a.download = `Hass_io_${name}.tar`;
- this.shadowRoot!.appendChild(a);
- a.click();
- this.shadowRoot!.removeChild(a);
+
+ this._downloadBtn.href = signedPath.path;
+ this._downloadBtn.download = `Snapshot_${name}.tar`;
+ this._downloadBtn.click();
}
private get _computeName() {
@@ -487,6 +492,8 @@ class HassioSnapshotDialog extends LitElement {
}
private _closeDialog() {
+ this._downloadBtn.href = "";
+ this._downloadBtn.download = "";
this._dialogParams = undefined;
this._snapshot = undefined;
this._snapshotPassword = "";