mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-18 14:56:37 +00:00
Show if a custom integration overwrites a core integration (#22295)
This commit is contained in:
parent
dcafbcb06c
commit
82ec308be0
@ -22,6 +22,7 @@ export type IntegrationType =
|
|||||||
|
|
||||||
export interface IntegrationManifest {
|
export interface IntegrationManifest {
|
||||||
is_built_in: boolean;
|
is_built_in: boolean;
|
||||||
|
overwrites_built_in?: boolean;
|
||||||
domain: string;
|
domain: string;
|
||||||
name: string;
|
name: string;
|
||||||
config_flow: boolean;
|
config_flow: boolean;
|
||||||
|
@ -11,6 +11,7 @@ export interface Integration {
|
|||||||
iot_class?: string;
|
iot_class?: string;
|
||||||
supported_by?: string;
|
supported_by?: string;
|
||||||
is_built_in?: boolean;
|
is_built_in?: boolean;
|
||||||
|
overwrites_built_in?: boolean;
|
||||||
single_config_entry?: boolean;
|
single_config_entry?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,6 +24,7 @@ export interface Brand {
|
|||||||
integrations?: Integrations;
|
integrations?: Integrations;
|
||||||
iot_standards?: IotStandards[];
|
iot_standards?: IotStandards[];
|
||||||
is_built_in?: boolean;
|
is_built_in?: boolean;
|
||||||
|
overwrites_built_in?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Brands {
|
export interface Brands {
|
||||||
|
@ -69,6 +69,7 @@ export interface IntegrationListItem {
|
|||||||
supported_by?: string;
|
supported_by?: string;
|
||||||
cloud?: boolean;
|
cloud?: boolean;
|
||||||
is_built_in?: boolean;
|
is_built_in?: boolean;
|
||||||
|
overwrites_built_in?: boolean;
|
||||||
is_add?: boolean;
|
is_add?: boolean;
|
||||||
single_config_entry?: boolean;
|
single_config_entry?: boolean;
|
||||||
}
|
}
|
||||||
@ -211,6 +212,7 @@ class AddIntegrationDialog extends LitElement {
|
|||||||
iot_standards: supportedIntegration.iot_standards,
|
iot_standards: supportedIntegration.iot_standards,
|
||||||
supported_by: integration.supported_by,
|
supported_by: integration.supported_by,
|
||||||
is_built_in: supportedIntegration.is_built_in !== false,
|
is_built_in: supportedIntegration.is_built_in !== false,
|
||||||
|
overwrites_built_in: integration.overwrites_built_in,
|
||||||
cloud: supportedIntegration.iot_class?.startsWith("cloud_"),
|
cloud: supportedIntegration.iot_class?.startsWith("cloud_"),
|
||||||
single_config_entry: integration.single_config_entry,
|
single_config_entry: integration.single_config_entry,
|
||||||
});
|
});
|
||||||
@ -232,6 +234,7 @@ class AddIntegrationDialog extends LitElement {
|
|||||||
? Object.keys(integration.integrations)
|
? Object.keys(integration.integrations)
|
||||||
: undefined,
|
: undefined,
|
||||||
is_built_in: integration.is_built_in !== false,
|
is_built_in: integration.is_built_in !== false,
|
||||||
|
overwrites_built_in: integration.overwrites_built_in,
|
||||||
});
|
});
|
||||||
} else if (filter && "integration_type" in integration) {
|
} else if (filter && "integration_type" in integration) {
|
||||||
// Integration without a config flow
|
// Integration without a config flow
|
||||||
@ -240,6 +243,7 @@ class AddIntegrationDialog extends LitElement {
|
|||||||
name: integration.name || domainToName(localize, domain),
|
name: integration.name || domainToName(localize, domain),
|
||||||
config_flow: integration.config_flow,
|
config_flow: integration.config_flow,
|
||||||
is_built_in: integration.is_built_in !== false,
|
is_built_in: integration.is_built_in !== false,
|
||||||
|
overwrites_built_in: integration.overwrites_built_in,
|
||||||
cloud: integration.iot_class?.startsWith("cloud_"),
|
cloud: integration.iot_class?.startsWith("cloud_"),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -161,14 +161,20 @@ export class HaIntegrationCard extends LitElement {
|
|||||||
: html`<div class="spacer"></div>`}
|
: html`<div class="spacer"></div>`}
|
||||||
<div class="icons">
|
<div class="icons">
|
||||||
${this.manifest && !this.manifest.is_built_in
|
${this.manifest && !this.manifest.is_built_in
|
||||||
? html`<span class="icon custom">
|
? html`<span
|
||||||
|
class="icon ${this.manifest.overwrites_built_in
|
||||||
|
? "overwrites"
|
||||||
|
: "custom"}"
|
||||||
|
>
|
||||||
<ha-svg-icon .path=${mdiPackageVariant}></ha-svg-icon>
|
<ha-svg-icon .path=${mdiPackageVariant}></ha-svg-icon>
|
||||||
<simple-tooltip
|
<simple-tooltip
|
||||||
animation-delay="0"
|
animation-delay="0"
|
||||||
.position=${computeRTL(this.hass) ? "right" : "left"}
|
.position=${computeRTL(this.hass) ? "right" : "left"}
|
||||||
offset="4"
|
offset="4"
|
||||||
>${this.hass.localize(
|
>${this.hass.localize(
|
||||||
"ui.panel.config.integrations.config_entry.custom_integration"
|
this.manifest.overwrites_built_in
|
||||||
|
? "ui.panel.config.integrations.config_entry.custom_overwrites_core"
|
||||||
|
: "ui.panel.config.integrations.config_entry.custom_integration"
|
||||||
)}</simple-tooltip
|
)}</simple-tooltip
|
||||||
>
|
>
|
||||||
</span>`
|
</span>`
|
||||||
@ -361,6 +367,9 @@ export class HaIntegrationCard extends LitElement {
|
|||||||
.icon.custom {
|
.icon.custom {
|
||||||
background: var(--warning-color);
|
background: var(--warning-color);
|
||||||
}
|
}
|
||||||
|
.icon.overwrites {
|
||||||
|
background: var(--error-color);
|
||||||
|
}
|
||||||
.icon.yaml {
|
.icon.yaml {
|
||||||
background: var(--label-badge-grey);
|
background: var(--label-badge-grey);
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,9 @@ export class HaIntegrationListItem extends ListItemBase {
|
|||||||
><ha-svg-icon .path=${mdiPackageVariant}></ha-svg-icon
|
><ha-svg-icon .path=${mdiPackageVariant}></ha-svg-icon
|
||||||
><simple-tooltip animation-delay="0" position="left"
|
><simple-tooltip animation-delay="0" position="left"
|
||||||
>${this.hass.localize(
|
>${this.hass.localize(
|
||||||
"ui.panel.config.integrations.config_entry.custom_integration"
|
this.integration.overwrites_built_in
|
||||||
|
? "ui.panel.config.integrations.config_entry.custom_overwrites_core"
|
||||||
|
: "ui.panel.config.integrations.config_entry.custom_integration"
|
||||||
)}</simple-tooltip
|
)}</simple-tooltip
|
||||||
></span
|
></span
|
||||||
>`
|
>`
|
||||||
|
@ -4404,6 +4404,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"custom_integration": "Custom integration",
|
"custom_integration": "Custom integration",
|
||||||
|
"custom_overwrites_core": "Custom integration that replaces a core component",
|
||||||
"depends_on_cloud": "Depends on the cloud",
|
"depends_on_cloud": "Depends on the cloud",
|
||||||
"yaml_only": "Needs manual configuration",
|
"yaml_only": "Needs manual configuration",
|
||||||
"no_config_flow": "This integration was not set up from the UI",
|
"no_config_flow": "This integration was not set up from the UI",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user