From 07a4505f1e4bd8e9b854007fce4b5b1f07ae750e Mon Sep 17 00:00:00 2001 From: Ian Richardson Date: Thu, 10 Jan 2019 15:33:34 -0600 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20add=20`resources`?= =?UTF-8?q?=20to=20lovelace=20struct=20=20(#2439)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🛠️ add `resources` to lovelace struct `resources` are being removed by Raw Config Editor on save * make resources optional * Prevent removal of extra keys --- src/panels/lovelace/hui-editor.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/panels/lovelace/hui-editor.ts b/src/panels/lovelace/hui-editor.ts index f2ac450904..fe7260ba4a 100644 --- a/src/panels/lovelace/hui-editor.ts +++ b/src/panels/lovelace/hui-editor.ts @@ -18,9 +18,10 @@ import "../../components/ha-icon"; const TAB_INSERT = " "; -const lovelaceStruct = struct.partial({ +const lovelaceStruct = struct.interface({ title: "string?", views: ["object"], + resources: struct.optional(["object"]), }); class LovelaceFullConfigEditor extends hassLocalizeLitMixin(LitElement) { From 1d4f74cda314674fa052e845a0a3250b0f429271 Mon Sep 17 00:00:00 2001 From: yosilevy <37745463+yosilevy@users.noreply.github.com> Date: Fri, 11 Jan 2019 01:39:41 +0200 Subject: [PATCH 2/4] Force dev panels to LTR even in RTL language to make it usable. Same for logbook. (#2432) --- src/panels/dev-event/ha-panel-dev-event.js | 1 + src/panels/dev-info/ha-panel-dev-info.js | 2 ++ src/panels/dev-mqtt/ha-panel-dev-mqtt.js | 1 + src/panels/dev-service/ha-panel-dev-service.js | 1 + .../dev-template/ha-panel-dev-template.js | 1 + src/panels/logbook/ha-logbook.js | 18 ++++++++++++++++++ 6 files changed, 24 insertions(+) diff --git a/src/panels/dev-event/ha-panel-dev-event.js b/src/panels/dev-event/ha-panel-dev-event.js index 255f728c1c..9fddd75adf 100644 --- a/src/panels/dev-event/ha-panel-dev-event.js +++ b/src/panels/dev-event/ha-panel-dev-event.js @@ -30,6 +30,7 @@ class HaPanelDevEvent extends EventsMixin(PolymerElement) { .content { @apply --paper-font-body1; padding: 16px; + direction: ltr; } .ha-form { diff --git a/src/panels/dev-info/ha-panel-dev-info.js b/src/panels/dev-info/ha-panel-dev-info.js index 72945f4cb0..0bf12ed769 100644 --- a/src/panels/dev-info/ha-panel-dev-info.js +++ b/src/panels/dev-info/ha-panel-dev-info.js @@ -35,6 +35,7 @@ class HaPanelDevInfo extends EventsMixin(LocalizeMixin(PolymerElement)) { .content { padding: 16px 0px 16px 0; + direction: ltr; } .about { @@ -90,6 +91,7 @@ class HaPanelDevInfo extends EventsMixin(LocalizeMixin(PolymerElement)) { paper-dialog { border-radius: 2px; + direction: ltr; } @media all and (max-width: 450px), all and (max-height: 500px) { diff --git a/src/panels/dev-mqtt/ha-panel-dev-mqtt.js b/src/panels/dev-mqtt/ha-panel-dev-mqtt.js index d50dc289cc..2d8647179e 100644 --- a/src/panels/dev-mqtt/ha-panel-dev-mqtt.js +++ b/src/panels/dev-mqtt/ha-panel-dev-mqtt.js @@ -26,6 +26,7 @@ class HaPanelDevMqtt extends PolymerElement { padding: 24px 0 32px; max-width: 600px; margin: 0 auto; + direction: ltr; } paper-card { diff --git a/src/panels/dev-service/ha-panel-dev-service.js b/src/panels/dev-service/ha-panel-dev-service.js index 9c590e1f55..f249a5de69 100644 --- a/src/panels/dev-service/ha-panel-dev-service.js +++ b/src/panels/dev-service/ha-panel-dev-service.js @@ -25,6 +25,7 @@ class HaPanelDevService extends PolymerElement { .content { padding: 16px; + direction: ltr; } .ha-form { diff --git a/src/panels/dev-template/ha-panel-dev-template.js b/src/panels/dev-template/ha-panel-dev-template.js index ace78a48cf..61a07919ab 100644 --- a/src/panels/dev-template/ha-panel-dev-template.js +++ b/src/panels/dev-template/ha-panel-dev-template.js @@ -24,6 +24,7 @@ class HaPanelDevTemplate extends PolymerElement { .content { padding: 16px; + direction: ltr; } .edit-pane { diff --git a/src/panels/logbook/ha-logbook.js b/src/panels/logbook/ha-logbook.js index 18a87f5a47..1c30cfe6b1 100644 --- a/src/panels/logbook/ha-logbook.js +++ b/src/panels/logbook/ha-logbook.js @@ -7,6 +7,7 @@ import formatTime from "../../common/datetime/format_time"; import formatDate from "../../common/datetime/format_date"; import EventsMixin from "../../mixins/events-mixin"; import domainIcon from "../../common/entity/domain_icon"; +import { computeRTL } from "../../common/util/compute_rtl"; /* * @appliesMixin EventsMixin @@ -20,6 +21,10 @@ class HaLogbook extends EventsMixin(PolymerElement) { display: block; } + :host([rtl]) { + direction: ltr; + } + .entry { @apply --paper-font-body1; line-height: 2em; @@ -31,6 +36,10 @@ class HaLogbook extends EventsMixin(PolymerElement) { color: var(--secondary-text-color); } + :host([rtl]) .date { + direction: rtl; + } + iron-icon { margin: 0 8px 0 16px; color: var(--primary-text-color); @@ -83,6 +92,11 @@ class HaLogbook extends EventsMixin(PolymerElement) { type: Array, value: [], }, + rtl: { + type: Boolean, + reflectToAttribute: true, + computed: "_computeRTL(hass)", + }, }; } @@ -109,6 +123,10 @@ class HaLogbook extends EventsMixin(PolymerElement) { return domainIcon(domain); } + _computeRTL(hass) { + return computeRTL(hass); + } + entityClicked(ev) { ev.preventDefault(); this.fire("hass-more-info", { entityId: ev.model.item.entity_id }); From 94df67a7cb4cc914679a025cb1037583d7a7bdb6 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 10 Jan 2019 16:21:26 -0800 Subject: [PATCH 3/4] Correctly wrap weblink entities (#2440) --- .../lovelace/common/generate-lovelace-config.ts | 15 +++++++++++++-- src/panels/lovelace/entity-rows/types.ts | 3 +++ .../lovelace/special-rows/hui-weblink-row.ts | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/panels/lovelace/common/generate-lovelace-config.ts b/src/panels/lovelace/common/generate-lovelace-config.ts index def2e228dd..9357526bdf 100644 --- a/src/panels/lovelace/common/generate-lovelace-config.ts +++ b/src/panels/lovelace/common/generate-lovelace-config.ts @@ -13,6 +13,7 @@ import computeObjectId from "../../../common/entity/compute_object_id"; import computeStateDomain from "../../../common/entity/compute_state_domain"; import { LocalizeFunc } from "../../../mixins/localize-base-mixin"; import computeDomain from "../../../common/entity/compute_domain"; +import { EntityRowConfig, WeblinkConfig } from "../entity-rows/types"; const DEFAULT_VIEW_ENTITY_ID = "group.default_view"; const DOMAINS_BADGES = [ @@ -32,9 +33,9 @@ const computeCards = ( const cards: LovelaceCardConfig[] = []; // For entity card - const entities: string[] = []; + const entities: Array = []; - for (const [entityId /*, stateObj */] of states) { + for (const [entityId, stateObj] of states) { const domain = computeDomain(entityId); if (domain === "alarm_control_panel") { @@ -67,6 +68,16 @@ const computeCards = ( type: "weather-forecast", entity: entityId, }); + } else if (domain === "weblink") { + const conf: WeblinkConfig = { + type: "weblink", + url: stateObj.state, + name: computeStateName(stateObj), + }; + if ("icon" in stateObj.attributes) { + conf.icon = stateObj.attributes.icon; + } + entities.push(conf); } else { entities.push(entityId); } diff --git a/src/panels/lovelace/entity-rows/types.ts b/src/panels/lovelace/entity-rows/types.ts index c73cf9ef50..48e9363a14 100644 --- a/src/panels/lovelace/entity-rows/types.ts +++ b/src/panels/lovelace/entity-rows/types.ts @@ -7,12 +7,15 @@ export interface EntityConfig { icon?: string; } export interface DividerConfig { + type: string; style: string; } export interface SectionConfig { + type: string; label: string; } export interface WeblinkConfig { + type: string; name?: string; icon?: string; url: string; diff --git a/src/panels/lovelace/special-rows/hui-weblink-row.ts b/src/panels/lovelace/special-rows/hui-weblink-row.ts index 2b42031240..c54beba2fb 100644 --- a/src/panels/lovelace/special-rows/hui-weblink-row.ts +++ b/src/panels/lovelace/special-rows/hui-weblink-row.ts @@ -35,7 +35,7 @@ class HuiWeblinkRow extends LitElement implements EntityRow { return html` ${this.renderStyle()} - +
${this._config.name}
From 339a0f70e3db8ecbf3b340c85c95456d65393a3a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Fri, 11 Jan 2019 11:47:27 -0800 Subject: [PATCH 4/4] Bumped version to 20190109.1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 2e7e3fb2a4..9fd8600663 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20190109.0", + version="20190109.1", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors",