mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-30 04:36:36 +00:00
Simplify logic
This commit is contained in:
parent
567cbcee7c
commit
4ea9b6f1b3
@ -217,6 +217,10 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
value: "readonly",
|
value: "readonly",
|
||||||
label: localize("ui.panel.config.entities.picker.status.readonly"),
|
label: localize("ui.panel.config.entities.picker.status.readonly"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: "restored",
|
||||||
|
label: localize("ui.panel.config.entities.picker.status.restored"),
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
private _columns = memoize(
|
private _columns = memoize(
|
||||||
@ -395,14 +399,6 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
|
|
||||||
const showReadOnly =
|
const showReadOnly =
|
||||||
!stateFilters?.length || stateFilters.includes("readonly");
|
!stateFilters?.length || stateFilters.includes("readonly");
|
||||||
const showDisabled =
|
|
||||||
!stateFilters?.length || stateFilters.includes("disabled");
|
|
||||||
const showHidden =
|
|
||||||
!stateFilters?.length || stateFilters.includes("hidden");
|
|
||||||
const showUnavailable =
|
|
||||||
!stateFilters?.length || stateFilters.includes("unavailable");
|
|
||||||
const showAvailable =
|
|
||||||
!stateFilters?.length || stateFilters.includes("available");
|
|
||||||
|
|
||||||
let filteredEntities = showReadOnly
|
let filteredEntities = showReadOnly
|
||||||
? entities.concat(stateEntities)
|
? entities.concat(stateEntities)
|
||||||
@ -465,33 +461,26 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!showDisabled) {
|
|
||||||
filteredEntities = filteredEntities.filter(
|
|
||||||
(entity) => !entity.disabled_by
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!showHidden) {
|
|
||||||
filteredEntities = filteredEntities.filter(
|
|
||||||
(entity) => !entity.hidden_by
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const entry of filteredEntities) {
|
for (const entry of filteredEntities) {
|
||||||
const entity = this.hass.states[entry.entity_id];
|
const entity = this.hass.states[entry.entity_id];
|
||||||
const unavailable = entity?.state === UNAVAILABLE;
|
const unavailable = entity?.state === UNAVAILABLE;
|
||||||
const available = entity?.state && !unavailable;
|
|
||||||
const restored = entity?.attributes.restored === true;
|
const restored = entity?.attributes.restored === true;
|
||||||
const areaId = entry.area_id ?? devices[entry.device_id!]?.area_id;
|
const areaId = entry.area_id ?? devices[entry.device_id!]?.area_id;
|
||||||
const area = areaId ? areas[areaId] : undefined;
|
const area = areaId ? areas[areaId] : undefined;
|
||||||
const readonly = entry.readonly;
|
|
||||||
const hidden = !!entry.hidden_by;
|
|
||||||
|
|
||||||
if (!showUnavailable && unavailable) {
|
const status = restored
|
||||||
continue;
|
? "restored"
|
||||||
}
|
: unavailable
|
||||||
|
? "unavailable"
|
||||||
|
: entry.disabled_by
|
||||||
|
? "disabled"
|
||||||
|
: entry.hidden_by
|
||||||
|
? "hidden"
|
||||||
|
: entry.readonly
|
||||||
|
? "readonly"
|
||||||
|
: "available";
|
||||||
|
|
||||||
if (!showAvailable && available && !readonly && !hidden) {
|
if (stateFilters && !stateFilters.includes(status)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -512,21 +501,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
localized_platform: domainToName(localize, entry.platform),
|
localized_platform: domainToName(localize, entry.platform),
|
||||||
area: area ? area.name : "—",
|
area: area ? area.name : "—",
|
||||||
domain: domainToName(localize, computeDomain(entry.entity_id)),
|
domain: domainToName(localize, computeDomain(entry.entity_id)),
|
||||||
status: restored
|
status: localize(`ui.panel.config.entities.picker.status.${status}`),
|
||||||
? localize("ui.panel.config.entities.picker.status.restored")
|
|
||||||
: unavailable
|
|
||||||
? localize("ui.panel.config.entities.picker.status.unavailable")
|
|
||||||
: entry.disabled_by
|
|
||||||
? localize("ui.panel.config.entities.picker.status.disabled")
|
|
||||||
: entry.hidden_by
|
|
||||||
? localize("ui.panel.config.entities.picker.status.hidden")
|
|
||||||
: entry.readonly
|
|
||||||
? localize(
|
|
||||||
"ui.panel.config.entities.picker.status.readonly"
|
|
||||||
)
|
|
||||||
: localize(
|
|
||||||
"ui.panel.config.entities.picker.status.available"
|
|
||||||
),
|
|
||||||
label_entries: labelsEntries,
|
label_entries: labelsEntries,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -874,7 +849,7 @@ ${
|
|||||||
protected firstUpdated() {
|
protected firstUpdated() {
|
||||||
this._filters = {
|
this._filters = {
|
||||||
"ha-filter-states": {
|
"ha-filter-states": {
|
||||||
value: ["available", "unavailable", "readonly"],
|
value: ["available", "unavailable", "readonly", "restored"],
|
||||||
items: undefined,
|
items: undefined,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user