From 0164bafbf11b4962210bf6d3eca38be768417473 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 1 Oct 2020 11:24:13 -0500 Subject: [PATCH 01/10] Fix reversal in power icon (#7188) --- src/common/entity/binary_sensor_icon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/entity/binary_sensor_icon.ts b/src/common/entity/binary_sensor_icon.ts index 1affd4016f..1e0c5c5c7a 100644 --- a/src/common/entity/binary_sensor_icon.ts +++ b/src/common/entity/binary_sensor_icon.ts @@ -18,7 +18,7 @@ export const binarySensorIcon = (state?: string, stateObj?: HassEntity) => { case "garage_door": return is_off ? "hass:garage" : "hass:garage-open"; case "power": - return is_off ? "hass:power-plug" : "hass:power-plug-off"; + return is_off ? "hass:power-plug-off" : "hass:power-plug"; case "gas": case "problem": case "safety": From 6d3010dcc78ffe32d962622c49b632a50596c11d Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Fri, 2 Oct 2020 07:57:42 -0500 Subject: [PATCH 02/10] Logbook: Fix for no state obj (#7191) --- src/data/logbook.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/data/logbook.ts b/src/data/logbook.ts index 5d66e4ce14..74d2231f4a 100644 --- a/src/data/logbook.ts +++ b/src/data/logbook.ts @@ -44,11 +44,12 @@ export const getLogbookData = async ( ); for (const entry of logbookData) { - if (entry.state) { + const stateObj = hass!.states[entry.entity_id!]; + if (entry.state && stateObj) { entry.message = getLogbookMessage( hass, entry.state, - hass!.states[entry.entity_id!], + stateObj, computeDomain(entry.entity_id!) ); } From ecc7925d03bf784a3947e9f0ea7ec88d5204c3c6 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Fri, 2 Oct 2020 11:29:29 -0500 Subject: [PATCH 03/10] Warning Element: Fix Overflow in Entity Row (#7193) --- src/panels/lovelace/components/hui-warning.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/panels/lovelace/components/hui-warning.ts b/src/panels/lovelace/components/hui-warning.ts index 5dac061e58..05732f51b1 100644 --- a/src/panels/lovelace/components/hui-warning.ts +++ b/src/panels/lovelace/components/hui-warning.ts @@ -1,3 +1,4 @@ +import { STATE_NOT_RUNNING } from "home-assistant-js-websocket"; import { css, CSSResult, @@ -7,7 +8,6 @@ import { TemplateResult, } from "lit-element"; import { HomeAssistant } from "../../../types"; -import { STATE_NOT_RUNNING } from "home-assistant-js-websocket"; export const createEntityNotFoundWarning = ( hass: HomeAssistant, @@ -35,6 +35,7 @@ export class HuiWarning extends LitElement { color: black; background-color: #fce588; padding: 8px; + word-break: break-word; } `; } From 60969b09163ab28edbfc64404bb92e9ba0b586c2 Mon Sep 17 00:00:00 2001 From: Ryan Meek <25127328+maykar@users.noreply.github.com> Date: Sun, 4 Oct 2020 16:15:14 -0400 Subject: [PATCH 04/10] Styling fixes for hui-masonry-view (#7226) --- src/panels/lovelace/views/hui-masonry-view.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/panels/lovelace/views/hui-masonry-view.ts b/src/panels/lovelace/views/hui-masonry-view.ts index f31c903894..4f8547c93e 100644 --- a/src/panels/lovelace/views/hui-masonry-view.ts +++ b/src/panels/lovelace/views/hui-masonry-view.ts @@ -261,7 +261,9 @@ export class MasonryView extends LitElement implements LovelaceViewElement { :host { display: block; background: var(--lovelace-background); + padding-top: 4px; height: 100%; + box-sizing: border-box; } #badges { From 47773e9caee5f46dcd944bd56c5fce1e996252ad Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Fri, 2 Oct 2020 03:12:55 -0500 Subject: [PATCH 05/10] Fix entities Card toggle (#7192) --- src/panels/lovelace/cards/hui-entities-card.ts | 2 +- .../lovelace/components/hui-entities-toggle.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/panels/lovelace/cards/hui-entities-card.ts b/src/panels/lovelace/cards/hui-entities-card.ts index 2ef80eaa7f..81080552d6 100644 --- a/src/panels/lovelace/cards/hui-entities-card.ts +++ b/src/panels/lovelace/cards/hui-entities-card.ts @@ -204,7 +204,7 @@ class HuiEntitiesCard extends LitElement implements LovelaceCard { "type" in conf + (conf) => !("type" in conf) ) as EntityConfig[]).map((conf) => conf.entity)} > `} diff --git a/src/panels/lovelace/components/hui-entities-toggle.ts b/src/panels/lovelace/components/hui-entities-toggle.ts index 35fe8910b5..b1d56f8626 100644 --- a/src/panels/lovelace/components/hui-entities-toggle.ts +++ b/src/panels/lovelace/components/hui-entities-toggle.ts @@ -3,9 +3,9 @@ import { CSSResult, customElement, html, + internalProperty, LitElement, property, - internalProperty, PropertyValues, TemplateResult, } from "lit-element"; @@ -18,9 +18,9 @@ import { turnOnOffEntities } from "../common/entity/turn-on-off-entities"; @customElement("hui-entities-toggle") class HuiEntitiesToggle extends LitElement { - @property() public entities?: string[]; + @property({ type: Array }) public entities?: string[]; - @property() protected hass?: HomeAssistant; + @property({ attribute: false }) protected hass?: HomeAssistant; @internalProperty() private _toggleEntities?: string[]; @@ -36,7 +36,7 @@ class HuiEntitiesToggle extends LitElement { } protected render(): TemplateResult { - if (!this._toggleEntities) { + if (!this._toggleEntities?.length) { return html``; } @@ -45,11 +45,11 @@ class HuiEntitiesToggle extends LitElement { aria-label=${this.hass!.localize( "ui.panel.lovelace.card.entities.toggle" )} - .checked="${this._toggleEntities!.some((entityId) => { + .checked=${this._toggleEntities!.some((entityId) => { const stateObj = this.hass!.states[entityId]; return stateObj && stateObj.state === "on"; - })}" - @change="${this._callService}" + })} + @change=${this._callService} > `; } From f1980730d23f4e871fcaa478f0f3e4c3a1a7a54b Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 5 Oct 2020 15:54:32 +0200 Subject: [PATCH 06/10] Fix Apple not showing cards (#7232) --- src/panels/lovelace/views/hui-masonry-view.ts | 16 ++++++++-------- src/translations/en.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/panels/lovelace/views/hui-masonry-view.ts b/src/panels/lovelace/views/hui-masonry-view.ts index 4f8547c93e..fb3290fff7 100644 --- a/src/panels/lovelace/views/hui-masonry-view.ts +++ b/src/panels/lovelace/views/hui-masonry-view.ts @@ -98,10 +98,9 @@ export class MasonryView extends LitElement implements LovelaceViewElement { } protected firstUpdated(): void { - this._updateColumns = this._updateColumns.bind(this); this._mqls = [300, 600, 900, 1200].map((width) => { - const mql = matchMedia(`(min-width: ${width}px)`); - mql.addEventListener("change", this._updateColumns); + const mql = window.matchMedia(`(min-width: ${width}px)`); + mql.addListener(() => this._updateColumns()); return mql; }); this._updateColumns(); @@ -120,10 +119,7 @@ export class MasonryView extends LitElement implements LovelaceViewElement { if (changedProperties.has("hass")) { const oldHass = changedProperties.get("hass") as HomeAssistant; - if ( - (oldHass && this.hass!.dockedSidebar !== oldHass.dockedSidebar) || - (!oldHass && this.hass) - ) { + if (oldHass && this.hass!.dockedSidebar !== oldHass.dockedSidebar) { this._updateColumns(); } @@ -155,6 +151,10 @@ export class MasonryView extends LitElement implements LovelaceViewElement { } private async _createColumns() { + if (!this._columns) { + return; + } + this._createColumnsIteration++; const iteration = this._createColumnsIteration; const root = this.shadowRoot!.getElementById("columns")!; @@ -168,7 +168,7 @@ export class MasonryView extends LitElement implements LovelaceViewElement { const columnSizes: number[] = []; const columnElements: HTMLDivElement[] = []; // Add columns to DOM, limit number of columns to the number of cards - for (let i = 0; i < Math.min(this._columns!, this.cards.length); i++) { + for (let i = 0; i < Math.min(this._columns, this.cards.length); i++) { const columnEl = document.createElement("div"); columnEl.classList.add("column"); root.appendChild(columnEl); diff --git a/src/translations/en.json b/src/translations/en.json index 690c71de3e..e0d6f97e1a 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -2331,7 +2331,7 @@ "toggle": "Toggle entities.", "description": "The Entities card is the most common type of card. It groups items together into lists.", "special_row": "special row", - "edit_special_row": "Edit row using the code editor", + "edit_special_row": "View the details of this row by clicking the edit button", "entity_row_editor": "Entity Row Editor", "secondary_info_values": { "none": "No Secondary Info", From d437dd591931af2fb21d01d087f308fe11d64de2 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Mon, 5 Oct 2020 16:00:40 +0200 Subject: [PATCH 07/10] Bumped version to 20201001.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b8d1a90487..dd7c90a4d8 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20201001.0", + version="20201001.1", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors", From cce7ad449abfe36168cdde347c3d177b45aa5d41 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Fri, 2 Oct 2020 15:09:27 +0200 Subject: [PATCH 08/10] Set hass when creating card (#7187) --- cast/src/receiver/layout/hc-lovelace.ts | 3 +-- src/panels/lovelace/views/hui-view.ts | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/cast/src/receiver/layout/hc-lovelace.ts b/cast/src/receiver/layout/hc-lovelace.ts index 0151f39073..3812da11d0 100644 --- a/cast/src/receiver/layout/hc-lovelace.ts +++ b/cast/src/receiver/layout/hc-lovelace.ts @@ -49,7 +49,6 @@ class HcLovelace extends LitElement { .hass=${this.hass} .lovelace=${lovelace} .index=${index} - columns="2" > `; } @@ -67,7 +66,7 @@ class HcLovelace extends LitElement { if (configBackground) { (this.shadowRoot!.querySelector( - "hui-view, hui-panel-view" + "hui-view" ) as HTMLElement)!.style.setProperty( "--lovelace-background", configBackground diff --git a/src/panels/lovelace/views/hui-view.ts b/src/panels/lovelace/views/hui-view.ts index de0bae5ea6..3a8dcbcd04 100644 --- a/src/panels/lovelace/views/hui-view.ts +++ b/src/panels/lovelace/views/hui-view.ts @@ -164,14 +164,12 @@ export class HUIView extends UpdatingElement { return; } - const elements: HUIView["_badges"] = []; const badges = processConfigEntities(config.badges as any); - badges.forEach((badge) => { + this._badges = badges.map((badge) => { const element = createBadgeElement(badge); element.hass = this.hass; - elements.push(element); + return element; }); - this._badges = elements; } private _createCards(config: LovelaceViewConfig): void { @@ -180,9 +178,11 @@ export class HUIView extends UpdatingElement { return; } - this._cards = config.cards.map((cardConfig) => - this.createCardElement(cardConfig) - ); + this._cards = config.cards.map((cardConfig) => { + const element = this.createCardElement(cardConfig); + element.hass = this.hass; + return element; + }); } private _rebuildCard( @@ -190,6 +190,7 @@ export class HUIView extends UpdatingElement { config: LovelaceCardConfig ): void { const newCardEl = this.createCardElement(config); + newCardEl.hass = this.hass; if (cardElToReplace.parentElement) { cardElToReplace.parentElement!.replaceChild(newCardEl, cardElToReplace); } @@ -203,7 +204,13 @@ export class HUIView extends UpdatingElement { config: LovelaceBadgeConfig ): void { const newBadgeEl = this.createBadgeElement(config); - badgeElToReplace.parentElement!.replaceChild(newBadgeEl, badgeElToReplace); + newBadgeEl.hass = this.hass; + if (badgeElToReplace.parentElement) { + badgeElToReplace.parentElement!.replaceChild( + newBadgeEl, + badgeElToReplace + ); + } this._badges = this._cards!.map((curBadgeEl) => curBadgeEl === badgeElToReplace ? newBadgeEl : curBadgeEl ); From 0e10c8102517801fb720206f2bdafa18a1c2c5d1 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 8 Oct 2020 10:33:06 +0200 Subject: [PATCH 09/10] Fix cloud webhooks (#7261) --- src/panels/config/cloud/account/cloud-webhooks.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/panels/config/cloud/account/cloud-webhooks.ts b/src/panels/config/cloud/account/cloud-webhooks.ts index 9918fabcfd..cdd35749a4 100644 --- a/src/panels/config/cloud/account/cloud-webhooks.ts +++ b/src/panels/config/cloud/account/cloud-webhooks.ts @@ -89,7 +89,7 @@ export class CloudWebhooks extends LitElement { ` : this._localHooks.map( (entry) => html` - + ${entry.name} ${entry.domain !== entry.name.toLowerCase() @@ -157,7 +157,7 @@ export class CloudWebhooks extends LitElement { } private async _enableWebhook(ev: MouseEvent) { - const entry = (ev.currentTarget as any).parentElement.entry; + const entry = (ev.currentTarget as any).parentElement!.entry as Webhook; this._progress = [...this._progress, entry.webhook_id]; let updatedWebhook; From b5b1849ab35f74314831ce9e997281f5ef243dc6 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 8 Oct 2020 15:12:18 +0200 Subject: [PATCH 10/10] Bumped version to 20201001.2 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index dd7c90a4d8..aeca082009 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20201001.1", + version="20201001.2", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors",