mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-25 18:26:35 +00:00
Don't allow to change the domain in entity registry settings (#16800)
This commit is contained in:
parent
b748fee321
commit
80c57fa326
@ -160,6 +160,9 @@ export class HaTextField extends TextFieldBase {
|
|||||||
.mdc-text-field__input[type="number"] {
|
.mdc-text-field__input[type="number"] {
|
||||||
direction: var(--direction);
|
direction: var(--direction);
|
||||||
}
|
}
|
||||||
|
.mdc-text-field__affix--prefix {
|
||||||
|
padding-right: var(--text-field-prefix-padding-right, 2px);
|
||||||
|
}
|
||||||
`,
|
`,
|
||||||
// safari workaround - must be explicit
|
// safari workaround - must be explicit
|
||||||
document.dir === "rtl"
|
document.dir === "rtl"
|
||||||
|
@ -11,10 +11,12 @@ import {
|
|||||||
} from "lit";
|
} from "lit";
|
||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
|
import { mdiContentCopy } from "@mdi/js";
|
||||||
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
|
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
|
||||||
import { fireEvent } from "../../../common/dom/fire_event";
|
import { fireEvent } from "../../../common/dom/fire_event";
|
||||||
import { stopPropagation } from "../../../common/dom/stop_propagation";
|
import { stopPropagation } from "../../../common/dom/stop_propagation";
|
||||||
import { computeDomain } from "../../../common/entity/compute_domain";
|
import { computeDomain } from "../../../common/entity/compute_domain";
|
||||||
|
import { computeObjectId } from "../../../common/entity/compute_object_id";
|
||||||
import { domainIcon } from "../../../common/entity/domain_icon";
|
import { domainIcon } from "../../../common/entity/domain_icon";
|
||||||
import { supportsFeature } from "../../../common/entity/supports-feature";
|
import { supportsFeature } from "../../../common/entity/supports-feature";
|
||||||
import { formatNumber } from "../../../common/number/format_number";
|
import { formatNumber } from "../../../common/number/format_number";
|
||||||
@ -79,6 +81,8 @@ import { showMoreInfoDialog } from "../../../dialogs/more-info/show-ha-more-info
|
|||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
import type { HomeAssistant } from "../../../types";
|
import type { HomeAssistant } from "../../../types";
|
||||||
import { showDeviceRegistryDetailDialog } from "../devices/device-registry-detail/show-dialog-device-registry-detail";
|
import { showDeviceRegistryDetailDialog } from "../devices/device-registry-detail/show-dialog-device-registry-detail";
|
||||||
|
import { copyToClipboard } from "../../../common/util/copy-clipboard";
|
||||||
|
import { showToast } from "../../../util/toast";
|
||||||
|
|
||||||
const OVERRIDE_DEVICE_CLASSES = {
|
const OVERRIDE_DEVICE_CLASSES = {
|
||||||
cover: [
|
cover: [
|
||||||
@ -325,8 +329,6 @@ export class EntityRegistrySettingsEditor extends LitElement {
|
|||||||
|
|
||||||
const domain = computeDomain(this.entry.entity_id);
|
const domain = computeDomain(this.entry.entity_id);
|
||||||
|
|
||||||
const invalidDomainUpdate = computeDomain(this._entityId.trim()) !== domain;
|
|
||||||
|
|
||||||
const invalidDefaultCode =
|
const invalidDefaultCode =
|
||||||
domain === "lock" &&
|
domain === "lock" &&
|
||||||
this._isInvalidDefaultCode(
|
this._isInvalidDefaultCode(
|
||||||
@ -675,15 +677,23 @@ export class EntityRegistrySettingsEditor extends LitElement {
|
|||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
<ha-textfield
|
<ha-textfield
|
||||||
error-message="Domain needs to stay the same"
|
class="entityId"
|
||||||
.value=${this._entityId}
|
.value=${computeObjectId(this._entityId)}
|
||||||
|
.prefix=${domain + "."}
|
||||||
.label=${this.hass.localize(
|
.label=${this.hass.localize(
|
||||||
"ui.dialogs.entity_registry.editor.entity_id"
|
"ui.dialogs.entity_registry.editor.entity_id"
|
||||||
)}
|
)}
|
||||||
.invalid=${invalidDomainUpdate}
|
|
||||||
.disabled=${this.disabled}
|
.disabled=${this.disabled}
|
||||||
|
required
|
||||||
@input=${this._entityIdChanged}
|
@input=${this._entityIdChanged}
|
||||||
></ha-textfield>
|
iconTrailing
|
||||||
|
>
|
||||||
|
<ha-icon-button
|
||||||
|
@click=${this._copyEntityId}
|
||||||
|
slot="trailingIcon"
|
||||||
|
.path=${mdiContentCopy}
|
||||||
|
></ha-icon-button>
|
||||||
|
</ha-textfield>
|
||||||
${!this.entry.device_id
|
${!this.entry.device_id
|
||||||
? html`<ha-area-picker
|
? html`<ha-area-picker
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
@ -1161,9 +1171,16 @@ export class EntityRegistrySettingsEditor extends LitElement {
|
|||||||
this._icon = ev.detail.value;
|
this._icon = ev.detail.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async _copyEntityId(): Promise<void> {
|
||||||
|
await copyToClipboard(this._entityId);
|
||||||
|
showToast(this, {
|
||||||
|
message: this.hass.localize("ui.common.copied_clipboard"),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private _entityIdChanged(ev): void {
|
private _entityIdChanged(ev): void {
|
||||||
fireEvent(this, "change");
|
fireEvent(this, "change");
|
||||||
this._entityId = ev.target.value;
|
this._entityId = `${computeDomain(this._origEntityId)}.${ev.target.value}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _deviceClassChanged(ev): void {
|
private _deviceClassChanged(ev): void {
|
||||||
@ -1343,6 +1360,20 @@ export class EntityRegistrySettingsEditor extends LitElement {
|
|||||||
:host {
|
:host {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
ha-textfield.entityId {
|
||||||
|
--text-field-prefix-padding-right: 0;
|
||||||
|
--textfield-icon-trailing-padding: 0;
|
||||||
|
}
|
||||||
|
ha-textfield.entityId > ha-icon-button {
|
||||||
|
position: relative;
|
||||||
|
right: -8px;
|
||||||
|
--mdc-icon-button-size: 36px;
|
||||||
|
--mdc-icon-size: 20px;
|
||||||
|
color: var(--secondary-text-color);
|
||||||
|
inset-inline-start: initial;
|
||||||
|
inset-inline-end: -8px;
|
||||||
|
direction: var(--direction);
|
||||||
|
}
|
||||||
ha-switch {
|
ha-switch {
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user