From 531363ae5df2b271f4fd060c4c1ea132daea198b Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 16 Aug 2023 12:36:06 +0200 Subject: [PATCH] Add alert when default is not found --- .../thread/thread-config-panel.ts | 38 +++++++++++++++++-- src/translations/en.json | 1 + 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts index 8faae7bc79..0b1d04f2e6 100644 --- a/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/thread/thread-config-panel.ts @@ -16,6 +16,7 @@ import { extractSearchParam } from "../../../../../common/url/search-params"; import "../../../../../components/ha-button-menu"; import "../../../../../components/ha-list-item"; import "../../../../../components/ha-card"; +import "../../../../../components/ha-alert"; import { getSignedPath } from "../../../../../data/auth"; import { getConfigEntryDiagnosticsDownloadUrl } from "../../../../../data/diagnostics"; import { @@ -52,6 +53,7 @@ interface ThreadNetwork { name: string; dataset?: ThreadDataSet; routers?: ThreadRouter[]; + preferred_border_agent_found?: boolean; } @customElement("thread-config-panel") @@ -156,6 +158,13 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { ` : ""} + ${network.preferred_border_agent_found === false + ? html` + ${this.hass.localize( + "ui.panel.config.thread.default_router_not_found" + )} + ` + : ""} ${network.routers?.length ? html`

@@ -195,10 +204,13 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { ? html`${network.dataset && router.border_agent_id === network.dataset.preferred_border_agent_id - ? html` - ${this.hass.localize( + ? html` ` : ""} + router.border_agent_id === dataset.preferred_border_agent_id + ) !== undefined; + } if (dataset.preferred) { preferred = { name: dataset.network_name, dataset: dataset, routers: networks[network]?.routers, + preferred_border_agent_found: + networks[network]?.preferred_border_agent_found || false, }; delete networks[network]; continue; @@ -370,7 +391,11 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { if (network in networks) { networks[network].dataset = dataset; } else { - networks[network] = { name: dataset.network_name, dataset: dataset }; + networks[network] = { + name: dataset.network_name, + dataset: dataset, + preferred_border_agent_found: false, + }; } } return { @@ -634,9 +659,16 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) { cursor: default; overflow: visible; } + ha-alert { + margin-bottom: 16px; + display: block; + } ha-svg-icon[slot="meta"] { width: 24px; } + ha-button-menu { + width: 48px; + } ha-button-menu a { text-decoration: none; } diff --git a/src/translations/en.json b/src/translations/en.json index 83e28fc48c..bdb4a81df0 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3707,6 +3707,7 @@ "add_open_thread_border_router": "Add an OpenThread border router", "reset_border_router": "Reset border router", "add_to_my_network": "Add to preferred network", + "default_router_not_found": "The default border router for this network could not be found.", "default_router": "Default router for network", "set_default_router": "Set as default router for network", "no_routers_otbr_network": "No border routers where found, maybe the border router is not configured correctly. You can try to reset it to the factory settings.",