From 09f4922ad3222ef9b54558330f960ae3fc1bebf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Tue, 15 Jun 2021 15:44:59 +0000 Subject: [PATCH] change --- hassio/src/dashboard/hassio-update.ts | 21 ++++++++++++- .../update/dialog-supervisor-update.ts | 30 ++----------------- .../src/dialogs/update/show-dialog-update.ts | 5 ++-- hassio/src/hassio-panel.ts | 2 +- hassio/src/system/hassio-core-info.ts | 24 +++++++++++++-- src/translations/en.json | 1 - 6 files changed, 47 insertions(+), 36 deletions(-) diff --git a/hassio/src/dashboard/hassio-update.ts b/hassio/src/dashboard/hassio-update.ts index 21836b1c1a..6a3535c651 100644 --- a/hassio/src/dashboard/hassio-update.ts +++ b/hassio/src/dashboard/hassio-update.ts @@ -220,10 +220,29 @@ export class HassioUpdate extends LitElement { } private async _updateCore(): Promise { - await updateCore(this.hass); + try { + await updateCore(this.hass); + } catch (err) { + if (this.hass.connection.connected && !ignoreSupervisorError(err)) { + showAlertDialog(this, { + title: this.supervisor.localize( + "common.failed_to_update_name", + "name", + "Home Assistant Core" + ), + text: extractApiErrorMessage(err), + }); + return; + } + } + fireEvent(this, "supervisor-collection-refresh", { collection: "core", }); + fireEvent(this, "supervisor-applying-update", { + name: "Home Assistant Core", + version: this.supervisor.core.version_latest, + }); } static get styles(): CSSResultGroup { diff --git a/hassio/src/dialogs/update/dialog-supervisor-update.ts b/hassio/src/dialogs/update/dialog-supervisor-update.ts index b37a49b048..6e7d04925b 100644 --- a/hassio/src/dialogs/update/dialog-supervisor-update.ts +++ b/hassio/src/dialogs/update/dialog-supervisor-update.ts @@ -7,17 +7,12 @@ import "../../../../src/components/ha-dialog"; import "../../../../src/components/ha-settings-row"; import "../../../../src/components/ha-svg-icon"; import "../../../../src/components/ha-switch"; -import { - extractApiErrorMessage, - ignoreSupervisorError, -} from "../../../../src/data/hassio/common"; +import { extractApiErrorMessage } from "../../../../src/data/hassio/common"; import { createHassioPartialSnapshot } from "../../../../src/data/hassio/snapshot"; import { haStyle, haStyleDialog } from "../../../../src/resources/styles"; import type { HomeAssistant } from "../../../../src/types"; import { SupervisorDialogSupervisorUpdateParams } from "./show-dialog-update"; -const BLOCKING_UPDATES: string[] = ["Home Assistant Core"]; - @customElement("dialog-supervisor-update") class DialogSupervisorUpdate extends LitElement { public hass!: HomeAssistant; @@ -38,13 +33,6 @@ class DialogSupervisorUpdate extends LitElement { ): Promise { this._opened = true; this._dialogParams = params; - this.addEventListener("supervisor-applying-update", (ev) => { - fireEvent( - this._dialogParams!.element, - "supervisor-applying-update", - ev.detail - ); - }); await this.updateComplete; } @@ -162,21 +150,7 @@ class DialogSupervisorUpdate extends LitElement { } this._action = "update"; - try { - await this._dialogParams!.updateHandler!(); - } catch (err) { - if (this.hass.connection.connected && !ignoreSupervisorError(err)) { - this._error = extractApiErrorMessage(err); - this._action = null; - return; - } - } - if (BLOCKING_UPDATES.includes(this._dialogParams!.name)) { - fireEvent(this, "supervisor-applying-update", { - name: this._dialogParams!.name, - version: this._dialogParams!.version, - }); - } + await this._dialogParams!.updateHandler!(); this.closeDialog(); } diff --git a/hassio/src/dialogs/update/show-dialog-update.ts b/hassio/src/dialogs/update/show-dialog-update.ts index 65bf28a67a..9c6c17fa88 100644 --- a/hassio/src/dialogs/update/show-dialog-update.ts +++ b/hassio/src/dialogs/update/show-dialog-update.ts @@ -1,12 +1,12 @@ import { fireEvent } from "../../../../src/common/dom/fire_event"; +import { HassioPartialSnapshotCreateParams } from "../../../../src/data/hassio/snapshot"; import { Supervisor } from "../../../../src/data/supervisor/supervisor"; export interface SupervisorDialogSupervisorUpdateParams { supervisor: Supervisor; name: string; version: string; - snapshotParams: any; - element: HTMLElement; + snapshotParams: HassioPartialSnapshotCreateParams; updateHandler: () => Promise; } @@ -14,7 +14,6 @@ export const showDialogSupervisorUpdate = ( element: HTMLElement, dialogParams: Partial ): void => { - dialogParams.element = element; fireEvent(element, "show-dialog", { dialogTag: "dialog-supervisor-update", dialogImport: () => import("./dialog-supervisor-update"), diff --git a/hassio/src/hassio-panel.ts b/hassio/src/hassio-panel.ts index 6ed4588a4e..23494cae04 100644 --- a/hassio/src/hassio-panel.ts +++ b/hassio/src/hassio-panel.ts @@ -56,7 +56,7 @@ class HassioPanel extends LitElement { if (this._applyingUpdate !== undefined) { return html` - ${this.supervisor.localize("common.applying_update", { + ${this.supervisor.localize("dialog.update.updating", { name: this._applyingUpdate.name, version: this._applyingUpdate.version, })} diff --git a/hassio/src/system/hassio-core-info.ts b/hassio/src/system/hassio-core-info.ts index e335a1df78..a97a13d31f 100644 --- a/hassio/src/system/hassio-core-info.ts +++ b/hassio/src/system/hassio-core-info.ts @@ -11,6 +11,7 @@ import { extractApiErrorMessage, fetchHassioStats, HassioStats, + ignoreSupervisorError, } from "../../../src/data/hassio/common"; import { restartCore, updateCore } from "../../../src/data/supervisor/core"; import { Supervisor } from "../../../src/data/supervisor/supervisor"; @@ -150,7 +151,7 @@ class HassioCoreInfo extends LitElement { title: this.supervisor.localize( "common.failed_to_restart_name", "name", - "Home AssistantCore" + "Home Assistant Core" ), text: extractApiErrorMessage(err), }); @@ -175,10 +176,29 @@ class HassioCoreInfo extends LitElement { } private async _updateCore(): Promise { - await updateCore(this.hass); + try { + await updateCore(this.hass); + } catch (err) { + if (this.hass.connection.connected && !ignoreSupervisorError(err)) { + showAlertDialog(this, { + title: this.supervisor.localize( + "common.failed_to_update_name", + "name", + "Home Assistant Core" + ), + text: extractApiErrorMessage(err), + }); + return; + } + } + fireEvent(this, "supervisor-collection-refresh", { collection: "core", }); + fireEvent(this, "supervisor-applying-update", { + name: "Home Assistant Core", + version: this.supervisor.core.version_latest, + }); } static get styles(): CSSResultGroup { diff --git a/src/translations/en.json b/src/translations/en.json index 3350c57ffa..9977b10956 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3779,7 +3779,6 @@ "update_available": "{count, plural,\n one {Update}\n other {{count} updates}\n} pending", "update": "Update", "version": "Version", - "applying_update": "Applying update to {version} for {name}", "error": { "unknown": "Unknown error", "update_failed": "Update failed"