From 342c81516a6e7518f6634f9ced2878bf39cc8626 Mon Sep 17 00:00:00 2001 From: Ludeeus Date: Sat, 29 Aug 2020 08:17:51 +0000 Subject: [PATCH 1/3] hassio-addon-config feedback --- .../addon-view/config/hassio-addon-config.ts | 89 +++++++++++-------- 1 file changed, 50 insertions(+), 39 deletions(-) diff --git a/hassio/src/addon-view/config/hassio-addon-config.ts b/hassio/src/addon-view/config/hassio-addon-config.ts index 2e3e4ee0cd50..dc92feafc81d 100644 --- a/hassio/src/addon-view/config/hassio-addon-config.ts +++ b/hassio/src/addon-view/config/hassio-addon-config.ts @@ -21,6 +21,8 @@ import { HassioAddonSetOptionParams, setHassioAddonOption, } from "../../../../src/data/hassio/addon"; +import "../../../../src/components/buttons/ha-progress-button"; + import { showConfirmationDialog } from "../../../../src/dialogs/generic/show-dialog-box"; import { haStyle } from "../../../../src/resources/styles"; import type { HomeAssistant } from "../../../../src/types"; @@ -55,50 +57,20 @@ class HassioAddonConfig extends LitElement { ${valid ? "" : html`
Invalid YAML
`}
- + Reset to defaults - - + Save - +
`; } - static get styles(): CSSResult[] { - return [ - haStyle, - hassioStyle, - css` - :host { - display: block; - } - ha-card { - display: block; - } - .card-actions { - display: flex; - justify-content: space-between; - } - .errors { - color: var(--error-color); - margin-top: 16px; - } - iron-autogrow-textarea { - width: 100%; - font-family: monospace; - } - .syntaxerror { - color: var(--error-color); - } - `, - ]; - } - protected updated(changedProperties: PropertyValues): void { super.updated(changedProperties); if (changedProperties.has("addon")) { @@ -111,7 +83,10 @@ class HassioAddonConfig extends LitElement { this.requestUpdate(); } - private async _resetTapped(): Promise { + private async _resetTapped(ev: CustomEvent): Promise { + const button = ev.target as any; + button.progress = true; + const confirmed = await showConfirmationDialog(this, { title: this.addon.name, text: "Are you sure you want to reset all your options?", @@ -120,6 +95,7 @@ class HassioAddonConfig extends LitElement { }); if (!confirmed) { + button.progress = false; return; } @@ -141,9 +117,13 @@ class HassioAddonConfig extends LitElement { err.body?.message || err }`; } + button.progress = false; } - private async _saveTapped(): Promise { + private async _saveTapped(ev: CustomEvent): Promise { + const button = ev.target as any; + button.progress = true; + let data: HassioAddonSetOptionParams; this._error = undefined; try { @@ -163,14 +143,45 @@ class HassioAddonConfig extends LitElement { path: "options", }; fireEvent(this, "hass-api-called", eventdata); + if (this.addon?.state === "started") { + await suggestAddonRestart(this, this.hass, this.addon); + } } catch (err) { this._error = `Failed to save addon configuration, ${ err.body?.message || err }`; } - if (!this._error && this.addon?.state === "started") { - await suggestAddonRestart(this, this.hass, this.addon); - } + button.progress = false; + } + + static get styles(): CSSResult[] { + return [ + haStyle, + hassioStyle, + css` + :host { + display: block; + } + ha-card { + display: block; + } + .card-actions { + display: flex; + justify-content: space-between; + } + .errors { + color: var(--error-color); + margin-top: 16px; + } + iron-autogrow-textarea { + width: 100%; + font-family: monospace; + } + .syntaxerror { + color: var(--error-color); + } + `, + ]; } } From 37f14b9d6e58c21b21adb3de3672998403114503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 3 Sep 2020 10:39:02 +0200 Subject: [PATCH 2/3] Update hassio/src/addon-view/config/hassio-addon-config.ts Co-authored-by: Bram Kragten --- hassio/src/addon-view/config/hassio-addon-config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/src/addon-view/config/hassio-addon-config.ts b/hassio/src/addon-view/config/hassio-addon-config.ts index dc92feafc81d..c4f360d623f1 100644 --- a/hassio/src/addon-view/config/hassio-addon-config.ts +++ b/hassio/src/addon-view/config/hassio-addon-config.ts @@ -84,7 +84,7 @@ class HassioAddonConfig extends LitElement { } private async _resetTapped(ev: CustomEvent): Promise { - const button = ev.target as any; + const button = ev.currentTarget as any; button.progress = true; const confirmed = await showConfirmationDialog(this, { From 9406f3fbbdc98a91e71918e9f0e7daff361f1234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 3 Sep 2020 10:43:43 +0200 Subject: [PATCH 3/3] Update hassio/src/addon-view/config/hassio-addon-config.ts Co-authored-by: Bram Kragten --- hassio/src/addon-view/config/hassio-addon-config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hassio/src/addon-view/config/hassio-addon-config.ts b/hassio/src/addon-view/config/hassio-addon-config.ts index c4f360d623f1..4fa442e3a3f9 100644 --- a/hassio/src/addon-view/config/hassio-addon-config.ts +++ b/hassio/src/addon-view/config/hassio-addon-config.ts @@ -121,7 +121,7 @@ class HassioAddonConfig extends LitElement { } private async _saveTapped(ev: CustomEvent): Promise { - const button = ev.target as any; + const button = ev.currentTarget as any; button.progress = true; let data: HassioAddonSetOptionParams;