Add icons and buttons

This commit is contained in:
Zack 2022-03-15 15:00:35 -05:00
parent a27dd1e7f1
commit d5a307f8f4
2 changed files with 56 additions and 1 deletions

View File

@ -3,6 +3,7 @@ import {
mdiAlertCircle, mdiAlertCircle,
mdiCancel, mdiCancel,
mdiDelete, mdiDelete,
mdiEyeOff,
mdiFilterVariant, mdiFilterVariant,
mdiPencilOff, mdiPencilOff,
mdiPlus, mdiPlus,
@ -251,7 +252,10 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
filterable: true, filterable: true,
width: "68px", width: "68px",
template: (_status, entity: EntityRow) => template: (_status, entity: EntityRow) =>
entity.unavailable || entity.disabled_by || entity.readonly entity.unavailable ||
entity.disabled_by ||
entity.hidden_by ||
entity.readonly
? html` ? html`
<div <div
tabindex="0" tabindex="0"
@ -267,6 +271,8 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
? mdiAlertCircle ? mdiAlertCircle
: entity.disabled_by : entity.disabled_by
? mdiCancel ? mdiCancel
: entity.hidden_by
? mdiEyeOff
: mdiPencilOff} : mdiPencilOff}
></ha-svg-icon> ></ha-svg-icon>
<paper-tooltip animation-delay="0" position="left"> <paper-tooltip animation-delay="0" position="left">
@ -282,6 +288,10 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
? this.hass.localize( ? this.hass.localize(
"ui.panel.config.entities.picker.status.disabled" "ui.panel.config.entities.picker.status.disabled"
) )
: entity.hidden_by
? this.hass.localize(
"ui.panel.config.entities.picker.status.hidden"
)
: this.hass.localize( : this.hass.localize(
"ui.panel.config.entities.picker.status.readonly" "ui.panel.config.entities.picker.status.readonly"
)} )}
@ -543,6 +553,11 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
"ui.panel.config.entities.picker.disable_selected.button" "ui.panel.config.entities.picker.disable_selected.button"
)}</mwc-button )}</mwc-button
> >
<mwc-button @click=${this._hideSelected}
>${this.hass.localize(
"ui.panel.config.entities.picker.hide_selected.button"
)}</mwc-button
>
<mwc-button @click=${this._removeSelected} class="warning" <mwc-button @click=${this._removeSelected} class="warning"
>${this.hass.localize( >${this.hass.localize(
"ui.panel.config.entities.picker.remove_selected.button" "ui.panel.config.entities.picker.remove_selected.button"
@ -572,6 +587,17 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
"ui.panel.config.entities.picker.disable_selected.button" "ui.panel.config.entities.picker.disable_selected.button"
)} )}
</paper-tooltip> </paper-tooltip>
<ha-icon-button
id="hide-btn"
@click=${this._hideSelected}
.path=${mdiCancel}
.label=${this.hass.localize("ui.common.hide")}
></ha-icon-button>
<paper-tooltip animation-delay="0" for="hide-btn">
${this.hass.localize(
"ui.panel.config.entities.picker.hide_selected.button"
)}
</paper-tooltip>
<ha-icon-button <ha-icon-button
class="warning" class="warning"
id="remove-btn" id="remove-btn"
@ -818,6 +844,29 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
}); });
} }
private _hideSelected() {
showConfirmationDialog(this, {
title: this.hass.localize(
"ui.panel.config.entities.picker.hide_selected.confirm_title",
"number",
this._selectedEntities.length
),
text: this.hass.localize(
"ui.panel.config.entities.picker.hide_selected.confirm_text"
),
confirmText: this.hass.localize("ui.common.hide"),
dismissText: this.hass.localize("ui.common.cancel"),
confirm: () => {
this._selectedEntities.forEach((entity) =>
updateEntityRegistryEntry(this.hass, entity, {
hidden_by: "user",
})
);
this._clearSelection();
},
});
}
private _removeSelected() { private _removeSelected() {
const removeableEntities = this._selectedEntities.filter((entity) => { const removeableEntities = this._selectedEntities.filter((entity) => {
const stateObj = this.hass.states[entity]; const stateObj = this.hass.states[entity];

View File

@ -297,6 +297,7 @@
"remove": "Remove", "remove": "Remove",
"enable": "Enable", "enable": "Enable",
"disable": "Disable", "disable": "Disable",
"hide": "Hide",
"close": "Close", "close": "Close",
"clear": "Clear", "clear": "Clear",
"leave": "Leave", "leave": "Leave",
@ -2455,6 +2456,11 @@
"confirm_partly_title": "Only {number} {number, plural,\n one {selected entity}\n other {selected entities}\n} can be removed.", "confirm_partly_title": "Only {number} {number, plural,\n one {selected entity}\n other {selected entities}\n} can be removed.",
"confirm_text": "You should remove them from your Lovelace config and automations if they contain these entities.", "confirm_text": "You should remove them from your Lovelace config and automations if they contain these entities.",
"confirm_partly_text": "You can only remove {removable} of the selected {selected} entities. Entities can only be removed when the integration is no longer providing the entities. Sometimes you have to restart Home Assistant before you can remove the entities of a removed integration. Are you sure you want to remove the removable entities?" "confirm_partly_text": "You can only remove {removable} of the selected {selected} entities. Entities can only be removed when the integration is no longer providing the entities. Sometimes you have to restart Home Assistant before you can remove the entities of a removed integration. Are you sure you want to remove the removable entities?"
},
"hide_selected": {
"button": "Hide selected",
"confirm_title": "Do you want to hide {number} {number, plural,\n one {entity}\n other {entities}\n}?",
"confirm_text": "Hidden entities will not be shown on your dashboard. Their history is still tracked and you can still interact with them with services."
} }
} }
}, },