From 1dc68b72da6e229e31d9aab4c89db0249e3cbd6b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 27 Jul 2022 12:30:22 -0700 Subject: [PATCH 01/10] Pass translation placeholders to repair title translations (#13289) --- src/panels/config/repairs/dialog-repairs-issue.ts | 3 ++- src/panels/config/repairs/ha-config-repairs.ts | 3 ++- src/translations/en.json | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/panels/config/repairs/dialog-repairs-issue.ts b/src/panels/config/repairs/dialog-repairs-issue.ts index 43c02074aa..9be79deb63 100644 --- a/src/panels/config/repairs/dialog-repairs-issue.ts +++ b/src/panels/config/repairs/dialog-repairs-issue.ts @@ -48,7 +48,8 @@ class DialogRepairsIssue extends LitElement { this.hass.localize( `component.${this._issue.domain}.issues.${ this._issue.translation_key || this._issue.issue_id - }.title` + }.title`, + this._issue.translation_placeholders || {} ) || this.hass!.localize("ui.panel.config.repairs.dialog.title") )} > diff --git a/src/panels/config/repairs/ha-config-repairs.ts b/src/panels/config/repairs/ha-config-repairs.ts index e516822113..e7fc178d3c 100644 --- a/src/panels/config/repairs/ha-config-repairs.ts +++ b/src/panels/config/repairs/ha-config-repairs.ts @@ -66,7 +66,8 @@ class HaConfigRepairs extends LitElement { >${this.hass.localize( `component.${issue.domain}.issues.${ issue.translation_key || issue.issue_id - }.title` + }.title`, + issue.translation_placeholders || {} )} diff --git a/src/translations/en.json b/src/translations/en.json index 117feb5073..e20154fb45 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -577,7 +577,7 @@ "title": "Media Management", "manage": "Manage", "no_items": "No media items found", - "folders_not_supported": "Folders can not be managed via the UI.", + "folders_not_supported": "Folders cannot be managed via the UI.", "highlight_button": "Click here to upload your first media", "upload_failed": "Upload failed: {reason}", "add_media": "Add Media", @@ -1246,7 +1246,7 @@ "learn": "Learn more", "ignore": "Ignore", "unignore": "Unignore", - "alert_not_fixable": "We can not repair this issue for you.", + "alert_not_fixable": "We cannot repair this issue for you.", "breaks_in_version": "This will break in version {version}. Please fix this issue before upgrading.", "ignored_in_version_short": "Ignored in version {version}", "ignored_in_version": "This issue was ignored in version {version}." From 0769b14566c61b9ec86d34c64fa57c34d9740d81 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 27 Jul 2022 22:30:51 +0200 Subject: [PATCH 02/10] Add Bluetooth as discovery source (#13291) --- src/data/config_flow.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/data/config_flow.ts b/src/data/config_flow.ts index c236a1b05c..001b321dce 100644 --- a/src/data/config_flow.ts +++ b/src/data/config_flow.ts @@ -6,16 +6,17 @@ import { DataEntryFlowProgress, DataEntryFlowStep } from "./data_entry_flow"; import { domainToName } from "./integration"; export const DISCOVERY_SOURCES = [ - "usb", - "unignore", + "bluetooth", "dhcp", - "homekit", - "ssdp", - "zeroconf", "discovery", + "hassio", + "homekit", "integration_discovery", "mqtt", - "hassio", + "ssdp", + "unignore", + "usb", + "zeroconf", ]; export const ATTENTION_SOURCES = ["reauth"]; From a379d29a6c0f12c78d05f26c3544064052e8a1c8 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 27 Jul 2022 13:50:07 -0700 Subject: [PATCH 03/10] Remove non fixable from repair dialog (#13292) --- .../config/repairs/dialog-repairs-issue.ts | 28 +++++++------------ src/translations/en.json | 3 +- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/panels/config/repairs/dialog-repairs-issue.ts b/src/panels/config/repairs/dialog-repairs-issue.ts index 9be79deb63..9f69185722 100644 --- a/src/panels/config/repairs/dialog-repairs-issue.ts +++ b/src/panels/config/repairs/dialog-repairs-issue.ts @@ -54,24 +54,16 @@ class DialogRepairsIssue extends LitElement { )} >
- ${this.hass.localize( - "ui.panel.config.repairs.dialog.alert_not_fixable" - )} - ${this._issue.breaks_in_ha_version - ? this.hass.localize( - "ui.panel.config.repairs.dialog.breaks_in_version", - { version: this._issue.breaks_in_ha_version } - ) - : ""} - + ${this._issue.breaks_in_ha_version + ? html` + + ${this.hass.localize( + "ui.panel.config.repairs.dialog.breaks_in_version", + { version: this._issue.breaks_in_ha_version } + )} + + ` + : ""} Date: Wed, 27 Jul 2022 13:53:59 -0700 Subject: [PATCH 04/10] Render brand icon for repairs based on issue_domain (#13290) --- src/data/repairs.ts | 1 + src/panels/config/repairs/ha-config-repairs.ts | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/data/repairs.ts b/src/data/repairs.ts index 48577448fa..92a175f753 100644 --- a/src/data/repairs.ts +++ b/src/data/repairs.ts @@ -7,6 +7,7 @@ import type { DataEntryFlowStep } from "./data_entry_flow"; export interface RepairsIssue { domain: string; + issue_domain?: string; issue_id: string; active: boolean; is_fixable: boolean; diff --git a/src/panels/config/repairs/ha-config-repairs.ts b/src/panels/config/repairs/ha-config-repairs.ts index e7fc178d3c..2b8d35df23 100644 --- a/src/panels/config/repairs/ha-config-repairs.ts +++ b/src/panels/config/repairs/ha-config-repairs.ts @@ -44,7 +44,7 @@ class HaConfigRepairs extends LitElement { (issue) => html` Date: Thu, 28 Jul 2022 02:07:07 +0200 Subject: [PATCH 05/10] Add My support for Repairs (#13294) --- src/panels/my/ha-panel-my.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/panels/my/ha-panel-my.ts b/src/panels/my/ha-panel-my.ts index 93b3c3226f..122a93c8d9 100644 --- a/src/panels/my/ha-panel-my.ts +++ b/src/panels/my/ha-panel-my.ts @@ -149,6 +149,10 @@ export const getMyRedirects = (hasSupervisor: boolean): Redirects => ({ logs: { redirect: "/config/logs", }, + repairs: { + component: "repairs", + redirect: "/config/repairs", + }, info: { redirect: "/config/info", }, From f3229bb8a724a7b67b9df73af877c46686337564 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Thu, 28 Jul 2022 03:39:16 -0500 Subject: [PATCH 06/10] Update Show Skipped/ignored in updates/repairs, update dialog of integration startup time (#13296) --- .../config/core/ha-config-section-updates.ts | 46 +++++++++++-------- .../repairs/dialog-integration-startup.ts | 14 ++++-- .../repairs/ha-config-repairs-dashboard.ts | 21 ++++++--- src/translations/en.json | 6 +-- 4 files changed, 55 insertions(+), 32 deletions(-) diff --git a/src/panels/config/core/ha-config-section-updates.ts b/src/panels/config/core/ha-config-section-updates.ts index e7f11d6318..4b2da37924 100644 --- a/src/panels/config/core/ha-config-section-updates.ts +++ b/src/panels/config/core/ha-config-section-updates.ts @@ -1,15 +1,16 @@ -import type { ActionDetail } from "@material/mwc-list"; -import "@material/mwc-list/mwc-list-item"; +import { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item"; import { mdiDotsVertical, mdiRefresh } from "@mdi/js"; import { HassEntities } from "home-assistant-js-websocket"; import { css, html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; import { isComponentLoaded } from "../../../common/config/is_component_loaded"; +import { shouldHandleRequestSelectedEvent } from "../../../common/mwc/handle-request-selected-event"; import "../../../components/ha-alert"; import "../../../components/ha-bar"; import "../../../components/ha-button-menu"; import "../../../components/ha-card"; +import "../../../components/ha-check-list-item"; import "../../../components/ha-metric"; import { extractApiErrorMessage } from "../../../data/hassio/common"; import { @@ -72,20 +73,23 @@ class HaConfigSectionUpdates extends LitElement { .path=${mdiRefresh} @click=${this._checkUpdates} > - + - - ${this._showSkipped - ? this.hass.localize("ui.panel.config.updates.hide_skipped") - : this.hass.localize("ui.panel.config.updates.show_skipped")} - + + ${this.hass.localize("ui.panel.config.updates.show_skipped")} + ${this._supervisorInfo?.channel !== "dev" ? html` - +
  • + ${this._supervisorInfo?.channel === "stable" ? this.hass.localize("ui.panel.config.updates.join_beta") : this.hass.localize( @@ -122,18 +126,21 @@ class HaConfigSectionUpdates extends LitElement { `; } - private _handleAction(ev: CustomEvent) { - switch (ev.detail.index) { - case 0: - this._showSkipped = !this._showSkipped; - break; - case 1: - this._toggleBeta(); - break; + private _toggleSkipped(ev: CustomEvent): void { + if (ev.detail.source !== "property") { + return; } + + this._showSkipped = !this._showSkipped; } - private async _toggleBeta(): Promise { + private async _toggleBeta( + ev: CustomEvent + ): Promise { + if (!shouldHandleRequestSelectedEvent(ev)) { + return; + } + if (this._supervisorInfo!.channel === "stable") { const confirmed = await showConfirmationDialog(this, { title: this.hass.localize("ui.dialogs.join_beta_channel.title"), @@ -206,6 +213,9 @@ class HaConfigSectionUpdates extends LitElement { .no-updates { padding: 16px; } + li[divider] { + border-bottom-color: var(--divider-color); + } `; } diff --git a/src/panels/config/repairs/dialog-integration-startup.ts b/src/panels/config/repairs/dialog-integration-startup.ts index 971be731f6..edc9c96aa6 100644 --- a/src/panels/config/repairs/dialog-integration-startup.ts +++ b/src/panels/config/repairs/dialog-integration-startup.ts @@ -1,5 +1,5 @@ import "@material/mwc-button/mwc-button"; -import { CSSResultGroup, html, LitElement, TemplateResult } from "lit"; +import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; import { fireEvent } from "../../../common/dom/fire_event"; import "../../../components/ha-card"; @@ -31,13 +31,14 @@ class DialogIntegrationStartup extends LitElement { return html`
    - + + + ${this.hass.localize("ui.panel.config.repairs.show_ignored")} + +
  • ${isComponentLoaded(this.hass, "system_health") || isComponentLoaded(this.hass, "hassio") ? html` @@ -90,11 +99,6 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) { "ui.panel.config.repairs.integration_startup_time" )} - - ${this._showIgnored - ? this.hass.localize("ui.panel.config.repairs.hide_ignored") - : this.hass.localize("ui.panel.config.repairs.show_ignored")} -
    @@ -143,7 +147,7 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) { } private _toggleIgnored(ev: CustomEvent): void { - if (!shouldHandleRequestSelectedEvent(ev)) { + if (ev.detail.source !== "property") { return; } @@ -177,6 +181,9 @@ class HaConfigRepairsDashboard extends SubscribeMixin(LitElement) { .no-repairs { padding: 16px; } + li[divider] { + border-bottom-color: var(--divider-color); + } `; } diff --git a/src/translations/en.json b/src/translations/en.json index e44d991384..6ef64b1060 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1220,8 +1220,7 @@ "version_available": "Version {version_available} is available", "more_updates": "Show all updates", "show": "show", - "show_skipped": "Show skipped", - "hide_skipped": "Hide skipped", + "show_skipped": "Show skipped updates", "join_beta": "[%key:supervisor::system::supervisor::join_beta_action%]", "leave_beta": "[%key:supervisor::system::supervisor::leave_beta_action%]", "skipped": "Skipped" @@ -1232,8 +1231,7 @@ "title": "{count} {count, plural,\n one {repair}\n other {repairs}\n}", "no_repairs": "There are currently no repairs available", "more_repairs": "Show all repairs", - "show_ignored": "Show ignored", - "hide_ignored": "Hide ignored", + "show_ignored": "Show ignored repairs", "critical": "Critical", "error": "Error", "warning": "Warning", From 9baeabed1914baa37dfdf80c6e69ebfcca83085b Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Thu, 28 Jul 2022 09:54:41 -0500 Subject: [PATCH 07/10] Add integration dialog Scroll bar styles (#13299) --- src/dialogs/config-flow/step-flow-pick-handler.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/dialogs/config-flow/step-flow-pick-handler.ts b/src/dialogs/config-flow/step-flow-pick-handler.ts index fdd0e12ebc..21fa545da3 100644 --- a/src/dialogs/config-flow/step-flow-pick-handler.ts +++ b/src/dialogs/config-flow/step-flow-pick-handler.ts @@ -21,6 +21,7 @@ import { LocalizeFunc } from "../../common/translations/localize"; import "../../components/ha-icon-next"; import "../../components/search-input"; import { domainToName } from "../../data/integration"; +import { haStyleScrollbar } from "../../resources/styles"; import { HomeAssistant } from "../../types"; import { brandsUrl } from "../../util/brands-url"; import { documentationUrl } from "../../util/documentation-url"; @@ -143,6 +144,7 @@ class StepFlowPickHandler extends LitElement { width: `${this._width}px`, height: `${this._height}px`, })} + class="ha-scrollbar" > ${addDeviceRows.length ? html` @@ -321,6 +323,7 @@ class StepFlowPickHandler extends LitElement { static get styles(): CSSResultGroup { return [ configFlowContentStyles, + haStyleScrollbar, css` img { width: 40px; From 53519ae8ab202f02cf2e076213fbb0bc30d22e08 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Thu, 28 Jul 2022 10:00:37 -0500 Subject: [PATCH 08/10] Fix Dark Mode Map when set in Dashboard card (#13297) --- src/components/map/ha-map.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/map/ha-map.ts b/src/components/map/ha-map.ts index a123414675..ce395d170b 100644 --- a/src/components/map/ha-map.ts +++ b/src/components/map/ha-map.ts @@ -453,6 +453,7 @@ export class HaMap extends ReactiveElement { } #map.dark { background: #090909; + --map-filter: invert(0.9) hue-rotate(170deg) grayscale(0.7); } .light { color: #000000; @@ -464,7 +465,7 @@ export class HaMap extends ReactiveElement { filter: var(--map-filter); } .dark .leaflet-bar a { - background: var(--card-background-color); + background-color: var(--card-background-color, #1c1c1c); color: #ffffff; } .leaflet-marker-draggable { From 08efc2fdd1d5e0af4c8627c31c48b28447288db8 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Thu, 28 Jul 2022 10:10:05 -0500 Subject: [PATCH 09/10] Update dialog with status line and other stuff (#13293) --- .../config/repairs/dialog-repairs-issue.ts | 25 +++++++++++++++++++ .../config/repairs/ha-config-repairs.ts | 20 ++++++++++++++- src/translations/en.json | 2 +- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/panels/config/repairs/dialog-repairs-issue.ts b/src/panels/config/repairs/dialog-repairs-issue.ts index 9f69185722..f974641a96 100644 --- a/src/panels/config/repairs/dialog-repairs-issue.ts +++ b/src/panels/config/repairs/dialog-repairs-issue.ts @@ -84,6 +84,19 @@ class DialogRepairsIssue extends LitElement { > ` : ""} +
    + ${this.hass.localize( + `ui.panel.config.repairs.${this._issue.severity}` + )} + + - + ${this._issue.created + ? new Date(this._issue.created).toLocaleDateString( + this.hass.language + ) + : ""} +
    ${this._issue.learn_more_url ? html` @@ -130,6 +143,18 @@ class DialogRepairsIssue extends LitElement { .dismissed { font-style: italic; } + .secondary { + margin-top: 8px; + text-align: right; + color: var(--secondary-text-color); + } + .error, + .critical { + color: var(--error-color); + } + .warning { + color: var(--warning-color); + } `, ]; } diff --git a/src/panels/config/repairs/ha-config-repairs.ts b/src/panels/config/repairs/ha-config-repairs.ts index 2b8d35df23..2cadd4a9b9 100644 --- a/src/panels/config/repairs/ha-config-repairs.ts +++ b/src/panels/config/repairs/ha-config-repairs.ts @@ -2,6 +2,7 @@ import "@material/mwc-list/mwc-list"; import { css, html, LitElement, TemplateResult } from "lit"; import { customElement, property } from "lit/decorators"; import { relativeTime } from "../../../common/datetime/relative_time"; +import { capitalizeFirstLetter } from "../../../common/string/capitalize-first-letter"; import "../../../components/ha-alert"; import "../../../components/ha-card"; import "../../../components/ha-list-item"; @@ -71,8 +72,22 @@ class HaConfigRepairs extends LitElement { )} + ${issue.severity === "critical" || issue.severity === "error" + ? html`${this.hass.localize( + `ui.panel.config.repairs.${issue.severity}` + )}` + : ""} + ${(issue.severity === "critical" || + issue.severity === "error") && + issue.created + ? " - " + : ""} ${issue.created - ? relativeTime(new Date(issue.created), this.hass.locale) + ? capitalizeFirstLetter( + relativeTime(new Date(issue.created), this.hass.locale) + ) : ""} ${issue.ignored ? ` - ${this.hass.localize( @@ -137,6 +152,9 @@ class HaConfigRepairs extends LitElement { cursor: pointer; font-size: 16px; } + .error { + color: var(--error-color); + } `; } diff --git a/src/translations/en.json b/src/translations/en.json index 6ef64b1060..13084e5d84 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1244,7 +1244,7 @@ "learn": "Learn more", "ignore": "Ignore", "unignore": "Unignore", - "breaks_in_version": "This will break in version {version}. Fix this issue before upgrading.", + "breaks_in_version": "This stops working in version {version}. Please address before upgrading.", "ignored_in_version_short": "Ignored in version {version}", "ignored_in_version": "This issue was ignored in version {version}." } From c27e3325d98aff229277ce41698fd73d863d84e1 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Thu, 28 Jul 2022 10:10:28 -0500 Subject: [PATCH 10/10] Bumped version to 20220728.0 (#13300) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2edefde21d..7c8db591ce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "home-assistant-frontend" -version = "20220727.0" +version = "20220728.0" license = {text = "Apache-2.0"} description = "The Home Assistant frontend" readme = "README.md"