mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-31 13:07:49 +00:00
Add available state option for filters
This commit is contained in:
parent
8cca233b7c
commit
567cbcee7c
@ -197,6 +197,10 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
private _states = memoize((localize: LocalizeFunc) => [
|
private _states = memoize((localize: LocalizeFunc) => [
|
||||||
|
{
|
||||||
|
value: "available",
|
||||||
|
label: localize("ui.panel.config.entities.picker.status.available"),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: "disabled",
|
value: "disabled",
|
||||||
label: localize("ui.panel.config.entities.picker.status.disabled"),
|
label: localize("ui.panel.config.entities.picker.status.disabled"),
|
||||||
@ -397,6 +401,8 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
!stateFilters?.length || stateFilters.includes("hidden");
|
!stateFilters?.length || stateFilters.includes("hidden");
|
||||||
const showUnavailable =
|
const showUnavailable =
|
||||||
!stateFilters?.length || stateFilters.includes("unavailable");
|
!stateFilters?.length || stateFilters.includes("unavailable");
|
||||||
|
const showAvailable =
|
||||||
|
!stateFilters?.length || stateFilters.includes("available");
|
||||||
|
|
||||||
let filteredEntities = showReadOnly
|
let filteredEntities = showReadOnly
|
||||||
? entities.concat(stateEntities)
|
? entities.concat(stateEntities)
|
||||||
@ -474,14 +480,21 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
|
|||||||
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) {
|
if (!showUnavailable && unavailable) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!showAvailable && available && !readonly && !hidden) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
const labels = labelReg && entry?.labels;
|
const labels = labelReg && entry?.labels;
|
||||||
const labelsEntries = (labels || []).map(
|
const labelsEntries = (labels || []).map(
|
||||||
(lbl) => labelReg!.find((label) => label.label_id === lbl)!
|
(lbl) => labelReg!.find((label) => label.label_id === lbl)!
|
||||||
@ -861,7 +874,7 @@ ${
|
|||||||
protected firstUpdated() {
|
protected firstUpdated() {
|
||||||
this._filters = {
|
this._filters = {
|
||||||
"ha-filter-states": {
|
"ha-filter-states": {
|
||||||
value: ["unavailable", "readonly"],
|
value: ["available", "unavailable", "readonly"],
|
||||||
items: undefined,
|
items: undefined,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user