From 25a579f7eda4d753f9f0227b4817a0922231e93e Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 1 Feb 2019 09:40:57 -0800 Subject: [PATCH] Fixes (#2643) * Sort areas alphabetically in device card * Fix background color of registry editors when using themes * Fix area/entity reg dialog being disabled after deletion * Better fix card background * Warn user when system health component not loaded --- src/data/system_health.ts | 23 ++++++++++--------- .../dialog-area-registry-detail.ts | 12 ++++++++-- .../area_registry/ha-config-area-registry.ts | 1 - .../config-entries/ha-config-entries.js | 2 +- .../dialog-entity-registry-detail.ts | 14 ++++++----- .../ha-config-entity-registry.ts | 1 - src/panels/dev-info/system-health-card.ts | 11 ++++++++- src/translations/en.json | 1 + 8 files changed, 42 insertions(+), 23 deletions(-) diff --git a/src/data/system_health.ts b/src/data/system_health.ts index 7d6073f4d7..fdf5007d10 100644 --- a/src/data/system_health.ts +++ b/src/data/system_health.ts @@ -1,17 +1,18 @@ import { HomeAssistant } from "../types"; +export interface HomeAssistantSystemHealthInfo { + version: string; + dev: boolean; + hassio: boolean; + virtualenv: string; + python_version: string; + docker: boolean; + arch: string; + timezone: string; + os_name: string; +} + export interface SystemHealthInfo { - homeassistant: { - version: string; - dev: boolean; - hassio: boolean; - virtualenv: string; - python_version: string; - docker: boolean; - arch: string; - timezone: string; - os_name: string; - }; [domain: string]: { [key: string]: string | number | boolean }; } diff --git a/src/panels/config/area_registry/dialog-area-registry-detail.ts b/src/panels/config/area_registry/dialog-area-registry-detail.ts index 2c4114fbe1..bf8e0d8425 100644 --- a/src/panels/config/area_registry/dialog-area-registry-detail.ts +++ b/src/panels/config/area_registry/dialog-area-registry-detail.ts @@ -97,6 +97,7 @@ class DialogAreaDetail extends LitElement { } private async _updateEntry() { + this._submitting = true; try { const values: AreaRegistryEntryMutableParams = { name: this._name.trim(), @@ -109,12 +110,19 @@ class DialogAreaDetail extends LitElement { this._params = undefined; } catch (err) { this._error = err; + } finally { + this._submitting = false; } } private async _deleteEntry() { - if (await this._params!.removeEntry()) { - this._params = undefined; + this._submitting = true; + try { + if (await this._params!.removeEntry()) { + this._params = undefined; + } + } finally { + this._submitting = false; } } diff --git a/src/panels/config/area_registry/ha-config-area-registry.ts b/src/panels/config/area_registry/ha-config-area-registry.ts index 1abc25091f..8fe412539e 100644 --- a/src/panels/config/area_registry/ha-config-area-registry.ts +++ b/src/panels/config/area_registry/ha-config-area-registry.ts @@ -162,7 +162,6 @@ All devices in this area will become unassigned.`) display: block; max-width: 600px; margin: 16px auto; - background-color: white; } .empty { text-align: center; diff --git a/src/panels/config/config-entries/ha-config-entries.js b/src/panels/config/config-entries/ha-config-entries.js index c60c338f0a..ec69a18267 100644 --- a/src/panels/config/config-entries/ha-config-entries.js +++ b/src/panels/config/config-entries/ha-config-entries.js @@ -145,7 +145,7 @@ class HaConfigEntries extends NavigateMixin(PolymerElement) { }); fetchAreaRegistry(this.hass).then((areas) => { - this._areas = areas; + this._areas = areas.sort((a, b) => compare(a.name, b.name)); }); } diff --git a/src/panels/config/entity_registry/dialog-entity-registry-detail.ts b/src/panels/config/entity_registry/dialog-entity-registry-detail.ts index b980befb94..a15660a065 100644 --- a/src/panels/config/entity_registry/dialog-entity-registry-detail.ts +++ b/src/panels/config/entity_registry/dialog-entity-registry-detail.ts @@ -123,25 +123,27 @@ class DialogEntityRegistryDetail extends LitElement { } private async _updateEntry(): Promise { + this._submitting = true; try { - this._submitting = true; await this._params!.updateEntry({ name: this._name.trim() || null, new_entity_id: this._entityId.trim(), }); this._params = undefined; } catch (err) { - this._submitting = false; this._error = err; + } finally { + this._submitting = false; } } private async _deleteEntry(): Promise { this._submitting = true; - - if (await this._params!.removeEntry()) { - this._params = undefined; - } else { + try { + if (await this._params!.removeEntry()) { + this._params = undefined; + } + } finally { this._submitting = false; } } diff --git a/src/panels/config/entity_registry/ha-config-entity-registry.ts b/src/panels/config/entity_registry/ha-config-entity-registry.ts index c4401dd20b..eba77883c1 100644 --- a/src/panels/config/entity_registry/ha-config-entity-registry.ts +++ b/src/panels/config/entity_registry/ha-config-entity-registry.ts @@ -150,7 +150,6 @@ Deleting an entry will not remove the entity from Home Assistant. To do this, yo } paper-card { display: block; - background-color: white; } paper-icon-item { cursor: pointer; diff --git a/src/panels/dev-info/system-health-card.ts b/src/panels/dev-info/system-health-card.ts index 2214d9c452..753a2aa851 100644 --- a/src/panels/dev-info/system-health-card.ts +++ b/src/panels/dev-info/system-health-card.ts @@ -95,7 +95,16 @@ class SystemHealthCard extends LitElement { } private async _fetchInfo() { - this._info = await fetchSystemHealthInfo(this.hass!); + try { + this._info = await fetchSystemHealthInfo(this.hass!); + } catch (err) { + this._info = { + system_health: { + error: + "System Health component is not loaded. Add 'system_health:' to configuration.yaml", + }, + }; + } } static get styles(): CSSResult { diff --git a/src/translations/en.json b/src/translations/en.json index 0dfe51640a..778a4258d4 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -35,6 +35,7 @@ "sensor": "Sensor", "sun": "Sun", "switch": "Switch", + "system_health": "System Health", "updater": "Updater", "vacuum": "Vacuum", "weblink": "Weblink",