Add alert when default is not found

This commit is contained in:
Bram Kragten 2023-08-16 12:36:06 +02:00
parent b19fe68686
commit 531363ae5d
2 changed files with 36 additions and 3 deletions

View File

@ -16,6 +16,7 @@ import { extractSearchParam } from "../../../../../common/url/search-params";
import "../../../../../components/ha-button-menu"; import "../../../../../components/ha-button-menu";
import "../../../../../components/ha-list-item"; import "../../../../../components/ha-list-item";
import "../../../../../components/ha-card"; import "../../../../../components/ha-card";
import "../../../../../components/ha-alert";
import { getSignedPath } from "../../../../../data/auth"; import { getSignedPath } from "../../../../../data/auth";
import { getConfigEntryDiagnosticsDownloadUrl } from "../../../../../data/diagnostics"; import { getConfigEntryDiagnosticsDownloadUrl } from "../../../../../data/diagnostics";
import { import {
@ -52,6 +53,7 @@ interface ThreadNetwork {
name: string; name: string;
dataset?: ThreadDataSet; dataset?: ThreadDataSet;
routers?: ThreadRouter[]; routers?: ThreadRouter[];
preferred_border_agent_found?: boolean;
} }
@customElement("thread-config-panel") @customElement("thread-config-panel")
@ -156,6 +158,13 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
</div>` </div>`
: ""} : ""}
</div> </div>
${network.preferred_border_agent_found === false
? html`<ha-alert alert-type="warning">
${this.hass.localize(
"ui.panel.config.thread.default_router_not_found"
)}
</ha-alert>`
: ""}
${network.routers?.length ${network.routers?.length
? html`<div class="card-content routers"> ? html`<div class="card-content routers">
<h4> <h4>
@ -195,10 +204,13 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
? html`${network.dataset && ? html`${network.dataset &&
router.border_agent_id === router.border_agent_id ===
network.dataset.preferred_border_agent_id network.dataset.preferred_border_agent_id
? html`<ha-svg-icon .path=${mdiStar} slot="meta"> ? html`<ha-svg-icon
${this.hass.localize( .path=${mdiStar}
.title=${this.hass.localize(
"ui.panel.config.thread.default_router" "ui.panel.config.thread.default_router"
)} )}
slot="meta"
>
</ha-svg-icon>` </ha-svg-icon>`
: ""} : ""}
<ha-button-menu <ha-button-menu
@ -358,11 +370,20 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
if (!network) { if (!network) {
continue; continue;
} }
if (dataset.preferred_border_agent_id) {
networks[network].preferred_border_agent_found =
networks[network]?.routers?.find(
(router) =>
router.border_agent_id === dataset.preferred_border_agent_id
) !== undefined;
}
if (dataset.preferred) { if (dataset.preferred) {
preferred = { preferred = {
name: dataset.network_name, name: dataset.network_name,
dataset: dataset, dataset: dataset,
routers: networks[network]?.routers, routers: networks[network]?.routers,
preferred_border_agent_found:
networks[network]?.preferred_border_agent_found || false,
}; };
delete networks[network]; delete networks[network];
continue; continue;
@ -370,7 +391,11 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
if (network in networks) { if (network in networks) {
networks[network].dataset = dataset; networks[network].dataset = dataset;
} else { } else {
networks[network] = { name: dataset.network_name, dataset: dataset }; networks[network] = {
name: dataset.network_name,
dataset: dataset,
preferred_border_agent_found: false,
};
} }
} }
return { return {
@ -634,9 +659,16 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
cursor: default; cursor: default;
overflow: visible; overflow: visible;
} }
ha-alert {
margin-bottom: 16px;
display: block;
}
ha-svg-icon[slot="meta"] { ha-svg-icon[slot="meta"] {
width: 24px; width: 24px;
} }
ha-button-menu {
width: 48px;
}
ha-button-menu a { ha-button-menu a {
text-decoration: none; text-decoration: none;
} }

View File

@ -3707,6 +3707,7 @@
"add_open_thread_border_router": "Add an OpenThread border router", "add_open_thread_border_router": "Add an OpenThread border router",
"reset_border_router": "Reset border router", "reset_border_router": "Reset border router",
"add_to_my_network": "Add to preferred network", "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", "default_router": "Default router for network",
"set_default_router": "Set as 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.", "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.",