diff --git a/src/panels/config/customize/ha-config-customize.ts b/src/panels/config/customize/ha-config-customize.ts
deleted file mode 100644
index 03fd6f17e9..0000000000
--- a/src/panels/config/customize/ha-config-customize.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
-import { property } from "lit/decorators";
-import "../../../components/ha-card";
-import "../../../layouts/hass-loading-screen";
-import "../../../layouts/hass-tabs-subpage";
-import { haStyle } from "../../../resources/styles";
-import { HomeAssistant, Route } from "../../../types";
-import { documentationUrl } from "../../../util/documentation-url";
-import "../ha-config-section";
-import "../ha-entity-config";
-import { configSections } from "../ha-panel-config";
-import "./ha-form-customize";
-
-class HaConfigCustomize extends LitElement {
- @property({ attribute: false }) public hass!: HomeAssistant;
-
- @property() public isWide?: boolean;
-
- @property() public narrow?: boolean;
-
- @property() public route!: Route;
-
- @property() private _selectedEntityId = "";
-
- protected render(): TemplateResult {
- return html`
-
-
-
- ${this.hass.localize("ui.panel.config.customize.picker.header")}
-
-
- ${this.hass.localize(
- "ui.panel.config.customize.picker.introduction"
- )}
-
-
- ${this.hass.localize(
- "ui.panel.config.customize.picker.documentation"
- )}
-
-
-
-
-
-
-
- `;
- }
-
- protected firstUpdated(changedProps) {
- super.firstUpdated(changedProps);
-
- if (!this.route.path.includes("/edit/")) {
- return;
- }
- const routeSegments = this.route.path.split("/edit/");
- this._selectedEntityId = routeSegments.length > 1 ? routeSegments[1] : "";
- }
-
- static get styles(): CSSResultGroup {
- return [
- haStyle,
- css`
- a {
- color: var(--primary-color);
- }
- `,
- ];
- }
-}
-customElements.define("ha-config-customize", HaConfigCustomize);
diff --git a/src/panels/config/customize/ha-customize-attribute.js b/src/panels/config/customize/ha-customize-attribute.js
deleted file mode 100644
index 6d53b06686..0000000000
--- a/src/panels/config/customize/ha-customize-attribute.js
+++ /dev/null
@@ -1,84 +0,0 @@
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import "../../../components/ha-icon";
-import "../../../components/ha-icon-button";
-import hassAttributeUtil from "../../../util/hass-attributes-util";
-import "../ha-form-style";
-import "./types/ha-customize-array";
-import "./types/ha-customize-boolean";
-import "./types/ha-customize-icon";
-import "./types/ha-customize-key-value";
-import "./types/ha-customize-string";
-
-class HaCustomizeAttribute extends PolymerElement {
- static get template() {
- return html`
-
-
-
-
-
- `;
- }
-
- static get properties() {
- return {
- item: {
- type: Object,
- notify: true,
- observer: "itemObserver",
- },
- };
- }
-
- tapButton() {
- if (this.item.secondary) {
- this.item = { ...this.item, secondary: false };
- } else {
- this.item = { ...this.item, closed: true };
- }
- }
-
- getIcon(secondary) {
- return secondary ? "hass:pencil" : "hass:close";
- }
-
- itemObserver(item) {
- const wrapper = this.$.wrapper;
- const tag = hassAttributeUtil.TYPE_TO_TAG[item.type].toUpperCase();
- let child;
- if (wrapper.lastChild && wrapper.lastChild.tagName === tag) {
- child = wrapper.lastChild;
- } else {
- if (wrapper.lastChild) {
- wrapper.removeChild(wrapper.lastChild);
- }
- // Creating an element with upper case works fine in Chrome, but in FF it doesn't immediately
- // become a defined Custom Element. Polymer does that in some later pass.
- this.$.child = child = document.createElement(tag.toLowerCase());
- child.className = "form-control";
- child.addEventListener("item-changed", () => {
- this.item = { ...child.item };
- });
- }
- child.setProperties({ item: this.item });
- if (child.parentNode === null) {
- wrapper.appendChild(child);
- }
- }
-}
-customElements.define("ha-customize-attribute", HaCustomizeAttribute);
diff --git a/src/panels/config/customize/ha-form-customize-attributes.js b/src/panels/config/customize/ha-form-customize-attributes.js
deleted file mode 100644
index 2c0def4524..0000000000
--- a/src/panels/config/customize/ha-form-customize-attributes.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { MutableData } from "@polymer/polymer/lib/mixins/mutable-data";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import "./ha-customize-attribute";
-
-class HaFormCustomizeAttributes extends MutableData(PolymerElement) {
- static get template() {
- return html`
-
-
-
-
-
- `;
- }
-
- static get properties() {
- return {
- attributes: {
- type: Array,
- notify: true,
- },
- };
- }
-}
-customElements.define(
- "ha-form-customize-attributes",
- HaFormCustomizeAttributes
-);
diff --git a/src/panels/config/customize/ha-form-customize.js b/src/panels/config/customize/ha-form-customize.js
deleted file mode 100644
index cd3278abeb..0000000000
--- a/src/panels/config/customize/ha-form-customize.js
+++ /dev/null
@@ -1,362 +0,0 @@
-import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
-import "@polymer/paper-item/paper-item";
-import "@polymer/paper-listbox/paper-listbox";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import { computeStateDomain } from "../../../common/entity/compute_state_domain";
-import LocalizeMixin from "../../../mixins/localize-mixin";
-import "../../../styles/polymer-ha-style";
-import { documentationUrl } from "../../../util/documentation-url";
-import hassAttributeUtil from "../../../util/hass-attributes-util";
-import "../ha-form-style";
-import "./ha-form-customize-attributes";
-
-export class HaFormCustomize extends LocalizeMixin(PolymerElement) {
- static get template() {
- return html`
-
-
-
-
-
-
- [[localize('ui.panel.config.customize.attributes_customize')]]
-
-
-
-
-
- [[localize('ui.panel.config.customize.attributes_outside')]]
- [[localize('ui.panel.config.customize.different_include')]]
-
-
-
-
-
- [[localize('ui.panel.config.customize.attributes_set')]]
- [[localize('ui.panel.config.customize.attributes_override')]]
-
-
-
-
-
- [[localize('ui.panel.config.customize.attributes_not_set')]]
-
-
-
-
-
-
- `;
- }
-
- static get properties() {
- return {
- hass: {
- type: Object,
- },
-
- entity: Object,
-
- localAttributes: {
- type: Array,
- computed: "computeLocalAttributes(localConfig)",
- },
- hasLocalAttributes: Boolean,
-
- globalAttributes: {
- type: Array,
- computed: "computeGlobalAttributes(localConfig, globalConfig)",
- },
- hasGlobalAttributes: Boolean,
-
- existingAttributes: {
- type: Array,
- computed:
- "computeExistingAttributes(localConfig, globalConfig, entity)",
- },
- hasExistingAttributes: Boolean,
-
- newAttributes: {
- type: Array,
- value: [],
- },
- hasNewAttributes: Boolean,
-
- newAttributesOptions: Array,
- selectedNewAttribute: {
- type: Number,
- value: -1,
- observer: "selectedNewAttributeObserver",
- },
-
- localConfig: Object,
- globalConfig: Object,
- };
- }
-
- static get observers() {
- return [
- "attributesObserver(localAttributes.*, globalAttributes.*, existingAttributes.*, newAttributes.*)",
- ];
- }
-
- _initOpenObject(key, value, secondary, config) {
- return {
- attribute: key,
- value: value,
- closed: false,
- domain: computeStateDomain(this.entity),
- secondary: secondary,
- description: key,
- ...config,
- };
- }
-
- loadEntity(entity) {
- this.entity = entity;
- return this.hass
- .callApi("GET", "config/customize/config/" + entity.entity_id)
- .then((data) => {
- this.localConfig = data.local;
- this.globalConfig = data.global;
- this.newAttributes = [];
- });
- }
-
- saveEntity() {
- const data = {};
- const attrs = this.localAttributes.concat(
- this.globalAttributes,
- this.existingAttributes,
- this.newAttributes
- );
- attrs.forEach((attr) => {
- if (
- attr.closed ||
- attr.secondary ||
- !attr.attribute ||
- attr.value === null ||
- attr.value === undefined
- )
- return;
- const value = attr.type === "json" ? JSON.parse(attr.value) : attr.value;
- if (value === null || value === undefined) return;
- data[attr.attribute] = value;
- });
-
- const objectId = this.entity.entity_id;
- return this.hass.callApi(
- "POST",
- "config/customize/config/" + objectId,
- data
- );
- }
-
- _computeSingleAttribute(key, value, secondary) {
- const config = hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key] || {
- type: hassAttributeUtil.UNKNOWN_TYPE,
- };
- return this._initOpenObject(
- key,
- config.type === "json" ? JSON.stringify(value) : value,
- secondary,
- config
- );
- }
-
- _computeAttributes(config, keys, secondary) {
- return keys.map((key) =>
- this._computeSingleAttribute(key, config[key], secondary)
- );
- }
-
- _computeDocumentationUrl(hass) {
- return documentationUrl(
- hass,
- "/docs/configuration/customizing-devices/#customization-using-the-ui"
- );
- }
-
- computeLocalAttributes(localConfig) {
- if (!localConfig) return [];
- const localKeys = Object.keys(localConfig);
- const result = this._computeAttributes(localConfig, localKeys, false);
- return result;
- }
-
- computeGlobalAttributes(localConfig, globalConfig) {
- if (!localConfig || !globalConfig) return [];
- const localKeys = Object.keys(localConfig);
- const globalKeys = Object.keys(globalConfig).filter(
- (key) => !localKeys.includes(key)
- );
- return this._computeAttributes(globalConfig, globalKeys, true);
- }
-
- computeExistingAttributes(localConfig, globalConfig, entity) {
- if (!localConfig || !globalConfig || !entity) return [];
- const localKeys = Object.keys(localConfig);
- const globalKeys = Object.keys(globalConfig);
- const entityKeys = Object.keys(entity.attributes).filter(
- (key) => !localKeys.includes(key) && !globalKeys.includes(key)
- );
- return this._computeAttributes(entity.attributes, entityKeys, true);
- }
-
- computeShowWarning(localConfig, globalConfig) {
- if (!localConfig || !globalConfig) return false;
- return Object.keys(localConfig).some(
- (key) =>
- JSON.stringify(globalConfig[key]) !== JSON.stringify(localConfig[key])
- );
- }
-
- filterFromAttributes(attributes) {
- return (key) =>
- !attributes ||
- attributes.every((attr) => attr.attribute !== key || attr.closed);
- }
-
- getNewAttributesOptions(
- localAttributes,
- globalAttributes,
- existingAttributes,
- newAttributes
- ) {
- const knownKeys = Object.keys(hassAttributeUtil.LOGIC_STATE_ATTRIBUTES)
- .filter((key) => {
- const conf = hassAttributeUtil.LOGIC_STATE_ATTRIBUTES[key];
- return (
- conf &&
- (!conf.domains ||
- !this.entity ||
- conf.domains.includes(computeStateDomain(this.entity)))
- );
- })
- .filter(this.filterFromAttributes(localAttributes))
- .filter(this.filterFromAttributes(globalAttributes))
- .filter(this.filterFromAttributes(existingAttributes))
- .filter(this.filterFromAttributes(newAttributes));
- return knownKeys.sort().concat("Other");
- }
-
- selectedNewAttributeObserver(selected) {
- if (selected < 0) return;
- const option = this.newAttributesOptions[selected];
- if (selected === this.newAttributesOptions.length - 1) {
- // The "Other" option.
- const attr = this._initOpenObject("", "", false /* secondary */, {
- type: hassAttributeUtil.ADD_TYPE,
- });
- this.push("newAttributes", attr);
- this.selectedNewAttribute = -1;
- return;
- }
- let result = this.localAttributes.findIndex(
- (attr) => attr.attribute === option
- );
- if (result >= 0) {
- this.set("localAttributes." + result + ".closed", false);
- this.selectedNewAttribute = -1;
- return;
- }
- result = this.globalAttributes.findIndex(
- (attr) => attr.attribute === option
- );
- if (result >= 0) {
- this.set("globalAttributes." + result + ".closed", false);
- this.selectedNewAttribute = -1;
- return;
- }
- result = this.existingAttributes.findIndex(
- (attr) => attr.attribute === option
- );
- if (result >= 0) {
- this.set("existingAttributes." + result + ".closed", false);
- this.selectedNewAttribute = -1;
- return;
- }
- result = this.newAttributes.findIndex((attr) => attr.attribute === option);
- if (result >= 0) {
- this.set("newAttributes." + result + ".closed", false);
- this.selectedNewAttribute = -1;
- return;
- }
- const attr = this._computeSingleAttribute(
- option,
- "",
- false /* secondary */
- );
- this.push("newAttributes", attr);
- this.selectedNewAttribute = -1;
- }
-
- attributesObserver() {
- this.hasLocalAttributes =
- this.localAttributes && this.localAttributes.some((attr) => !attr.closed);
- this.hasGlobalAttributes =
- this.globalAttributes &&
- this.globalAttributes.some((attr) => !attr.closed);
- this.hasExistingAttributes =
- this.existingAttributes &&
- this.existingAttributes.some((attr) => !attr.closed);
- this.hasNewAttributes =
- this.newAttributes && this.newAttributes.some((attr) => !attr.closed);
- this.newAttributesOptions = this.getNewAttributesOptions(
- this.localAttributes,
- this.globalAttributes,
- this.existingAttributes,
- this.newAttributes
- );
- }
-}
-customElements.define("ha-form-customize", HaFormCustomize);
diff --git a/src/panels/config/customize/types/ha-customize-array.js b/src/panels/config/customize/types/ha-customize-array.js
deleted file mode 100644
index fe7147d0e9..0000000000
--- a/src/panels/config/customize/types/ha-customize-array.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
-import "@polymer/paper-item/paper-item";
-import "@polymer/paper-listbox/paper-listbox";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import { EventsMixin } from "../../../../mixins/events-mixin";
-
-/*
- * @appliesMixin EventsMixin
- */
-class HaCustomizeArray extends EventsMixin(PolymerElement) {
- static get template() {
- return html`
-
-
-
-
- [[option]]
-
-
-
- `;
- }
-
- static get properties() {
- return {
- item: {
- type: Object,
- notifies: true,
- },
- };
- }
-
- getOptions(item) {
- const domain = item.domain || "*";
- const options = item.options[domain] || item.options["*"];
- if (!options) {
- this.item.type = "string";
- this.fire("item-changed");
- return [];
- }
- return options.sort();
- }
-
- computeSelected(item) {
- const options = this.getOptions(item);
- return options.indexOf(item.value);
- }
-}
-customElements.define("ha-customize-array", HaCustomizeArray);
diff --git a/src/panels/config/customize/types/ha-customize-boolean.js b/src/panels/config/customize/types/ha-customize-boolean.js
deleted file mode 100644
index 803e6d8d21..0000000000
--- a/src/panels/config/customize/types/ha-customize-boolean.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import "../../../../components/ha-checkbox";
-import "../../../../components/ha-formfield";
-
-class HaCustomizeBoolean extends PolymerElement {
- static get template() {
- return html`
-
-
-
- `;
- }
-
- static get properties() {
- return {
- item: {
- type: Object,
- notifies: true,
- },
- };
- }
-
- checkedChanged(ev) {
- this.item.value = ev.target.checked;
- }
-}
-customElements.define("ha-customize-boolean", HaCustomizeBoolean);
diff --git a/src/panels/config/customize/types/ha-customize-icon.js b/src/panels/config/customize/types/ha-customize-icon.js
deleted file mode 100644
index 86b32ed5bb..0000000000
--- a/src/panels/config/customize/types/ha-customize-icon.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import "@polymer/paper-input/paper-input";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import "../../../../components/ha-icon";
-
-class HaCustomizeIcon extends PolymerElement {
- static get template() {
- return html`
-
-
-
-
- `;
- }
-
- static get properties() {
- return {
- item: {
- type: Object,
- notifies: true,
- },
- };
- }
-}
-customElements.define("ha-customize-icon", HaCustomizeIcon);
diff --git a/src/panels/config/customize/types/ha-customize-key-value.js b/src/panels/config/customize/types/ha-customize-key-value.js
deleted file mode 100644
index 528ee13694..0000000000
--- a/src/panels/config/customize/types/ha-customize-key-value.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import "@polymer/paper-input/paper-input";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-
-class HaCustomizeKeyValue extends PolymerElement {
- static get template() {
- return html`
-
-
-
-
-
- `;
- }
-
- static get properties() {
- return {
- item: {
- type: Object,
- notifies: true,
- },
- };
- }
-}
-customElements.define("ha-customize-key-value", HaCustomizeKeyValue);
diff --git a/src/panels/config/customize/types/ha-customize-string.js b/src/panels/config/customize/types/ha-customize-string.js
deleted file mode 100644
index 72fb4a685c..0000000000
--- a/src/panels/config/customize/types/ha-customize-string.js
+++ /dev/null
@@ -1,35 +0,0 @@
-import "@polymer/paper-input/paper-input";
-import { html } from "@polymer/polymer/lib/utils/html-tag";
-/* eslint-plugin-disable lit */
-import { PolymerElement } from "@polymer/polymer/polymer-element";
-import { formatAttributeName } from "../../../../util/hass-attributes-util";
-
-class HaCustomizeString extends PolymerElement {
- static get template() {
- return html`
-
-
- `;
- }
-
- static get properties() {
- return {
- item: {
- type: Object,
- notifies: true,
- },
- };
- }
-
- getLabel(item) {
- return (
- formatAttributeName(item.description) +
- (item.type === "json" ? " (JSON formatted)" : "")
- );
- }
-}
-customElements.define("ha-customize-string", HaCustomizeString);
diff --git a/src/panels/config/entities/dialog-entity-editor.ts b/src/panels/config/entities/dialog-entity-editor.ts
index 74bae4b7cb..afe29c75cd 100644
--- a/src/panels/config/entities/dialog-entity-editor.ts
+++ b/src/panels/config/entities/dialog-entity-editor.ts
@@ -165,21 +165,6 @@ export class DialogEntityEditor extends LitElement {
>${this.hass.localize("ui.dialogs.entity_registry.faq")}`
)}
- ${this.hass.userData?.showAdvanced
- ? html`
- ${this.hass.localize(
- "ui.dialogs.entity_registry.info_customize",
- "customize_link",
- html`${this.hass.localize(
- "ui.dialogs.entity_registry.customize_link"
- )}`
- )}`
- : ""}
`;
case "tab-related":
diff --git a/src/panels/config/ha-entity-config.ts b/src/panels/config/ha-entity-config.ts
deleted file mode 100644
index 87a3fa0687..0000000000
--- a/src/panels/config/ha-entity-config.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import "@material/mwc-button";
-import {
- css,
- CSSResultGroup,
- html,
- LitElement,
- PropertyValues,
- TemplateResult,
-} from "lit";
-import { customElement, property, query } from "lit/decorators";
-import "../../components/buttons/ha-progress-button";
-import "../../components/entity/ha-entity-picker";
-import "../../components/ha-card";
-import "../../components/ha-circular-progress";
-import { haStyle } from "../../resources/styles";
-import "../../styles/polymer-ha-style";
-import type { HomeAssistant } from "../../types";
-import { HaFormCustomize } from "./customize/ha-form-customize";
-
-@customElement("ha-entity-config")
-export class HaEntityConfig extends LitElement {
- @property({ attribute: false }) public hass!: HomeAssistant;
-
- @property() public selectedEntityId!: string;
-
- // False if no entity is selected or currently saving or loading
- @property() private _formEditState = false;
-
- @query("#form") private _form!: HaFormCustomize;
-
- protected render(): TemplateResult {
- return html`
-
-
-
-
- ${this.hass.localize("ui.common.save")}
-
-
-
- `;
- }
-
- protected updated(changedProps: PropertyValues) {
- super.updated(changedProps);
- if (
- changedProps.has("selectedEntityId") &&
- changedProps.get("selectedEntityId") !== this.selectedEntityId
- ) {
- this._selectEntity(this.selectedEntityId);
- this.requestUpdate();
- }
- }
-
- private _selectedEntityChanged(ev) {
- this._selectEntity(ev.target.value);
- }
-
- private async _selectEntity(entityId?: string) {
- if (!this._form || !entityId) return;
- const entity = this.hass.states[entityId];
- if (!entity) return;
-
- this._formEditState = false;
- await this._form.loadEntity(entity);
- this._formEditState = true;
- }
-
- private async _saveEntity(ev) {
- if (!this._formEditState) return;
- this._formEditState = false;
- const button = ev.target;
- button.progress = true;
-
- try {
- await this._form.saveEntity();
- this._formEditState = true;
- button.actionSuccess();
- } catch {
- button.actionError();
- } finally {
- button.progress = false;
- }
- }
-
- static get styles(): CSSResultGroup {
- return [
- haStyle,
- css`
- ha-card {
- direction: ltr;
- }
-
- .form-placeholder {
- height: 96px;
- }
-
- .hidden {
- display: none;
- }
- `,
- ];
- }
-}
diff --git a/src/panels/config/ha-panel-config.ts b/src/panels/config/ha-panel-config.ts
index a6a6b46126..54ef2ac080 100644
--- a/src/panels/config/ha-panel-config.ts
+++ b/src/panels/config/ha-panel-config.ts
@@ -10,7 +10,6 @@ import {
mdiNfcVariant,
mdiPalette,
mdiPaletteSwatch,
- mdiPencil,
mdiPuzzle,
mdiRobot,
mdiScriptText,
@@ -180,16 +179,6 @@ export const configSections: { [name: string]: PageNavigation[] } = {
core: true,
},
],
- advanced: [
- {
- component: "customize",
- path: "/config/customize",
- translationKey: "ui.panel.config.customize.caption",
- iconPath: mdiPencil,
- core: true,
- advancedOnly: true,
- },
- ],
};
@customElement("ha-panel-config")
@@ -243,10 +232,8 @@ class HaPanelConfig extends HassRouterPage {
tag: "ha-config-info",
load: () => import("./info/ha-config-info"),
},
- customize: {
- tag: "ha-config-customize",
- load: () => import("./customize/ha-config-customize"),
- },
+ // customize was removed in 2021.12, fallback to dashboard
+ customize: "dashboard",
dashboard: {
tag: "ha-config-dashboard",
load: () => import("./dashboard/ha-config-dashboard"),
diff --git a/src/panels/my/ha-panel-my.ts b/src/panels/my/ha-panel-my.ts
index 07addd5bb5..d7be560e7b 100644
--- a/src/panels/my/ha-panel-my.ts
+++ b/src/panels/my/ha-panel-my.ts
@@ -141,7 +141,8 @@ const REDIRECTS: Redirects = {
redirect: "/config/info",
},
customize: {
- redirect: "/config/customize",
+ // customize was removed in 2021.12, fallback to dashboard
+ redirect: "/config/dashboard",
},
profile: {
redirect: "/profile/dashboard",
diff --git a/src/translations/en.json b/src/translations/en.json
index 90cadb1735..bf077bdc02 100755
--- a/src/translations/en.json
+++ b/src/translations/en.json
@@ -601,7 +601,6 @@
"zone": "[%key:ui::panel::config::zone::caption%]",
"users": "[%key:ui::panel::config::users::caption%]",
"info": "[%key:ui::panel::config::info::caption%]",
- "customize": "[%key:ui::panel::config::customize::caption%]",
"blueprint": "[%key:ui::panel::config::blueprint::caption%]",
"server_control": "[%key:ui::panel::config::server_control::caption%]"
}
@@ -687,8 +686,6 @@
"dismiss": "Dismiss",
"no_unique_id": "This entity (''{entity_id}'') does not have a unique ID, therefore its settings cannot be managed from the UI. See the {faq_link} for more detail.",
"faq": "documentation",
- "info_customize": "You can overwrite some attributes in the {customize_link} section.",
- "customize_link": "entity customizations",
"editor": {
"name": "Name",
"icon": "Icon",
@@ -1404,27 +1401,6 @@
}
}
},
- "customize": {
- "caption": "Customizations",
- "description": "Customize your entities",
- "picker": {
- "header": "Customizations",
- "introduction": "Tweak per-entity attributes. Added/edited customizations will take effect immediately. Removed customizations will take effect when the entity is updated.",
- "documentation": "Customization documentation"
- },
- "warning": {
- "include_sentence": "It seems that your configuration.yaml doesn't properly",
- "include_link": "include customize.yaml",
- "not_applied": "Changes made here are written in it, but will not be applied after a configuration reload unless the include is in place."
- },
- "attributes_customize": "The following attributes are already set in customize.yaml",
- "attributes_outside": "The following attributes are customized from outside of customize.yaml",
- "different_include": "Possibly via a domain, a glob or a different include.",
- "attributes_set": "The following attributes of the entity are set programmatically.",
- "attributes_override": "You can override them if you like.",
- "attributes_not_set": "The following attributes weren't set. Set them if you like.",
- "pick_attribute": "Pick an attribute to override"
- },
"automation": {
"caption": "Automations",
"description": "Create custom behavior rules for your home",