mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-18 14:56:37 +00:00
Exp. UI: add support for more info dialog (#1294)
* Exp. UI: add support for more info dialog * Sort items * Rename HIDE_MORE_INFO to DOMAINS_HIDE_MORE_INFO
This commit is contained in:
parent
d752060f7a
commit
d2eb0ef23f
@ -22,6 +22,36 @@ export const DOMAINS_WITH_CARD = [
|
|||||||
'weblink',
|
'weblink',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/** Domains with separate more info dialog. */
|
||||||
|
export const DOMAINS_WITH_MORE_INFO = [
|
||||||
|
'alarm_control_panel',
|
||||||
|
'automation',
|
||||||
|
'camera',
|
||||||
|
'climate',
|
||||||
|
'configurator',
|
||||||
|
'cover',
|
||||||
|
'fan',
|
||||||
|
'group',
|
||||||
|
'history_graph',
|
||||||
|
'input_datetime',
|
||||||
|
'light',
|
||||||
|
'lock',
|
||||||
|
'media_player',
|
||||||
|
'script',
|
||||||
|
'sun',
|
||||||
|
'updater',
|
||||||
|
'vacuum',
|
||||||
|
'weather'
|
||||||
|
];
|
||||||
|
|
||||||
|
/** Domains that show no more info dialog. */
|
||||||
|
export const DOMAINS_HIDE_MORE_INFO = [
|
||||||
|
'input_number',
|
||||||
|
'input_select',
|
||||||
|
'input_text',
|
||||||
|
'scene'
|
||||||
|
];
|
||||||
|
|
||||||
/** Domains that should have the history hidden in the more info dialog. */
|
/** Domains that should have the history hidden in the more info dialog. */
|
||||||
export const DOMAINS_MORE_INFO_NO_HISTORY = [
|
export const DOMAINS_MORE_INFO_NO_HISTORY = [
|
||||||
'camera',
|
'camera',
|
||||||
|
@ -1,14 +1,5 @@
|
|||||||
import computeStateDomain from './compute_state_domain.js';
|
import computeStateDomain from './compute_state_domain.js';
|
||||||
|
import { DOMAINS_HIDE_MORE_INFO, DOMAINS_WITH_MORE_INFO } from '../const.js';
|
||||||
const DOMAINS_WITH_MORE_INFO = [
|
|
||||||
'alarm_control_panel', 'automation', 'camera', 'climate', 'configurator',
|
|
||||||
'cover', 'fan', 'group', 'history_graph', 'light', 'lock', 'media_player', 'script',
|
|
||||||
'sun', 'updater', 'vacuum', 'input_datetime', 'weather'
|
|
||||||
];
|
|
||||||
|
|
||||||
const HIDE_MORE_INFO = [
|
|
||||||
'input_select', 'scene', 'input_number', 'input_text'
|
|
||||||
];
|
|
||||||
|
|
||||||
export default function stateMoreInfoType(stateObj) {
|
export default function stateMoreInfoType(stateObj) {
|
||||||
const domain = computeStateDomain(stateObj);
|
const domain = computeStateDomain(stateObj);
|
||||||
@ -16,7 +7,7 @@ export default function stateMoreInfoType(stateObj) {
|
|||||||
if (DOMAINS_WITH_MORE_INFO.includes(domain)) {
|
if (DOMAINS_WITH_MORE_INFO.includes(domain)) {
|
||||||
return domain;
|
return domain;
|
||||||
}
|
}
|
||||||
if (HIDE_MORE_INFO.includes(domain)) {
|
if (DOMAINS_HIDE_MORE_INFO.includes(domain)) {
|
||||||
return 'hidden';
|
return 'hidden';
|
||||||
}
|
}
|
||||||
return 'default';
|
return 'default';
|
||||||
|
@ -3,13 +3,20 @@ import { html } from '@polymer/polymer/lib/utils/html-tag.js';
|
|||||||
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
||||||
|
|
||||||
import stateCardType from '../../common/entity/state_card_type.js';
|
import stateCardType from '../../common/entity/state_card_type.js';
|
||||||
|
import computeDomain from '../../common/entity/compute_domain.js';
|
||||||
|
import { DOMAINS_HIDE_MORE_INFO } from '../../common/const.js';
|
||||||
|
|
||||||
import '../../components/ha-card.js';
|
import '../../components/ha-card.js';
|
||||||
|
|
||||||
// just importing this now as shortcut to import correct state-card-*
|
// just importing this now as shortcut to import correct state-card-*
|
||||||
import '../../state-summary/state-card-content.js';
|
import '../../state-summary/state-card-content.js';
|
||||||
|
|
||||||
class HuiEntitiesCard extends PolymerElement {
|
import EventsMixin from '../../mixins/events-mixin.js';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @appliesMixin EventsMixin
|
||||||
|
*/
|
||||||
|
class HuiEntitiesCard extends EventsMixin(PolymerElement) {
|
||||||
static get template() {
|
static get template() {
|
||||||
return html`
|
return html`
|
||||||
<style>
|
<style>
|
||||||
@ -30,6 +37,9 @@ class HuiEntitiesCard extends PolymerElement {
|
|||||||
.header .name {
|
.header .name {
|
||||||
@apply --paper-font-common-nowrap;
|
@apply --paper-font-common-nowrap;
|
||||||
}
|
}
|
||||||
|
.state-card-dialog {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<ha-card>
|
<ha-card>
|
||||||
@ -82,6 +92,10 @@ class HuiEntitiesCard extends PolymerElement {
|
|||||||
const stateObj = this.hass.states[entityId];
|
const stateObj = this.hass.states[entityId];
|
||||||
const tag = stateObj ? `state-card-${stateCardType(this.hass, stateObj)}` : 'state-card-display';
|
const tag = stateObj ? `state-card-${stateCardType(this.hass, stateObj)}` : 'state-card-display';
|
||||||
const element = document.createElement(tag);
|
const element = document.createElement(tag);
|
||||||
|
if (!DOMAINS_HIDE_MORE_INFO.includes(computeDomain(entityId))) {
|
||||||
|
element.classList.add('state-card-dialog');
|
||||||
|
element.addEventListener('click', () => this.fire('hass-more-info', { entityId }));
|
||||||
|
}
|
||||||
element.stateObj = stateObj;
|
element.stateObj = stateObj;
|
||||||
element.hass = this.hass;
|
element.hass = this.hass;
|
||||||
this._elements.push({ entityId, element });
|
this._elements.push({ entityId, element });
|
||||||
@ -98,4 +112,5 @@ class HuiEntitiesCard extends PolymerElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
customElements.define('hui-entities-card', HuiEntitiesCard);
|
customElements.define('hui-entities-card', HuiEntitiesCard);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user