Add support for device configuration URL (#10251)

* Add support for device configuration URL

* Lint

* Tweak text
This commit is contained in:
Paulus Schoutsen 2021-10-14 11:17:44 -07:00 committed by GitHub
parent 48948d5854
commit 33e1d34cb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 1 deletions

View File

@ -212,6 +212,7 @@ const createDeviceRegistryEntries = (
area_id: null, area_id: null,
name_by_user: null, name_by_user: null,
disabled_by: null, disabled_by: null,
configuration_url: null,
}, },
]; ];

View File

@ -18,6 +18,7 @@ export interface DeviceRegistryEntry {
name_by_user: string | null; name_by_user: string | null;
entry_type: "service" | null; entry_type: "service" | null;
disabled_by: string | null; disabled_by: string | null;
configuration_url: string | null;
} }
export interface DeviceEntityLookup { export interface DeviceEntityLookup {

View File

@ -1,4 +1,4 @@
import { mdiPencil, mdiPlusCircle } from "@mdi/js"; import { mdiPencil, mdiPlusCircle, mdiOpenInNew } from "@mdi/js";
import "@polymer/paper-tooltip/paper-tooltip"; import "@polymer/paper-tooltip/paper-tooltip";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
@ -13,6 +13,7 @@ import { slugify } from "../../../common/string/slugify";
import "../../../components/entity/ha-battery-icon"; import "../../../components/entity/ha-battery-icon";
import "../../../components/ha-icon-button"; import "../../../components/ha-icon-button";
import "../../../components/ha-icon-next"; import "../../../components/ha-icon-next";
import "../../../components/ha-svg-icon";
import { AreaRegistryEntry } from "../../../data/area_registry"; import { AreaRegistryEntry } from "../../../data/area_registry";
import { import {
ConfigEntry, ConfigEntry,
@ -316,6 +317,31 @@ export class HaConfigDevicePage extends LitElement {
` `
: html`` : html``
} }
${
device.configuration_url
? html`
<div class="card-actions" slot="actions">
<a
href=${device.configuration_url}
target="_blank"
rel="noopener noreferrer"
>
<mwc-button>
${this.hass.localize(
`ui.panel.config.devices.open_configuration_url_${
device.entry_type || "device"
}`
)}
<ha-svg-icon
.path=${mdiOpenInNew}
slot="trailingIcon"
></ha-svg-icon>
</mwc-button>
</a>
</div>
`
: ""
}
${this._renderIntegrationInfo(device, integrations)} ${this._renderIntegrationInfo(device, integrations)}
</ha-device-info-card> </ha-device-info-card>
@ -944,6 +970,10 @@ export class HaConfigDevicePage extends LitElement {
ha-card a { ha-card a {
color: var(--primary-text-color); color: var(--primary-text-color);
} }
ha-svg-icon[slot="trailingIcon"] {
display: block;
}
`, `,
]; ];
} }

View File

@ -2131,6 +2131,8 @@
"config_entry": "Config entry" "config_entry": "Config entry"
}, },
"enabled_description": "Disabled devices will not be shown and entities belonging to the device will be disabled and not added to Home Assistant.", "enabled_description": "Disabled devices will not be shown and entities belonging to the device will be disabled and not added to Home Assistant.",
"open_configuration_url_device": "Visit device",
"open_configuration_url_service": "Visit service",
"automation": { "automation": {
"automations": "Automations", "automations": "Automations",
"no_automations": "No automations", "no_automations": "No automations",