From bae29c6d6228b4e39b55f01437b1fdeffde4ed87 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 11 Nov 2020 14:42:27 +0100 Subject: [PATCH] Move last changed / last updated out of state table (#7649) --- .../state/developer-tools-state.js | 251 +++++++++++------- src/translations/en.json | 4 +- 2 files changed, 154 insertions(+), 101 deletions(-) diff --git a/src/panels/developer-tools/state/developer-tools-state.js b/src/panels/developer-tools/state/developer-tools-state.js index 728643bc59..02f6e67ec2 100644 --- a/src/panels/developer-tools/state/developer-tools-state.js +++ b/src/panels/developer-tools/state/developer-tools-state.js @@ -12,6 +12,7 @@ import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box"; import { EventsMixin } from "../../../mixins/events-mixin"; import LocalizeMixin from "../../../mixins/localize-mixin"; import "../../../styles/polymer-ha-style"; +import { formatDateTimeWithSeconds } from "../../../common/datetime/format_date_time"; import { mdiInformationOutline } from "@mdi/js"; import { computeRTL } from "../../../common/util/compute_rtl"; @@ -33,14 +34,25 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { } .inputs { + width: 100%; max-width: 400px; } + .info { + padding: 0 16px; + } + mwc-button { margin-top: 8px; } + .table-wrapper { + width: 100%; + overflow: auto; + } + .entities th { + padding: 0 8px; text-align: left; font-size: var( --paper-input-container-shared-input-style_-_font-size @@ -65,7 +77,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { } .entities td { padding: 4px; - min-width: 220px; + min-width: 200px; word-break: break-word; } .entities ha-svg-icon { @@ -81,112 +93,133 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { .entities a { color: var(--primary-color); } + + :host([narrow]) .state-wrapper { + flex-direction: column; + } + + :host([narrow]) .info { + padding: 0; + } -
-

- [[localize('ui.panel.developer-tools.tabs.states.description1')]]
- [[localize('ui.panel.developer-tools.tabs.states.description2')]] -

- - - -

- [[localize('ui.panel.developer-tools.tabs.states.state_attributes')]] -

- - [[localize('ui.panel.developer-tools.tabs.states.set_state')]] +

+ [[localize('ui.panel.developer-tools.tabs.states.description1')]]
+ [[localize('ui.panel.developer-tools.tabs.states.description2')]] +

+
+
+ + +

+ [[localize('ui.panel.developer-tools.tabs.states.state_attributes')]] +

+ + [[localize('ui.panel.developer-tools.tabs.states.set_state')]] +
+
+ +

[[localize('ui.panel.developer-tools.tabs.states.current_entities')]]

- - - - - - - - - - - - - - - -
[[localize('ui.panel.developer-tools.tabs.states.entity')]][[localize('ui.panel.developer-tools.tabs.states.state')]] - [[localize('ui.panel.developer-tools.tabs.states.attributes')]] - -
- - - - - -
- [[localize('ui.panel.developer-tools.tabs.states.no_entities')]] -
+ + + + + + + + + + + + + + [[localize('ui.panel.developer-tools.tabs.states.no_entities')]] + + + + +
`; } @@ -226,6 +259,10 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { value: "", }, + _entity: { + type: Object, + }, + _state: { type: String, value: "", @@ -247,6 +284,11 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { "computeEntities(hass, _entityFilter, _stateFilter, _attributeFilter)", }, + narrow: { + type: Boolean, + reflectToAttribute: true, + }, + rtl: { reflectToAttribute: true, computed: "_computeRTL(hass)", @@ -257,6 +299,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { entitySelected(ev) { const state = ev.model.entity; this._entityId = state.entity_id; + this._entity = state; this._state = state.state; this._stateAttributes = safeDump(state.attributes); ev.preventDefault(); @@ -264,6 +307,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { entityIdChanged() { if (this._entityId === "") { + this._entity = undefined; this._state = ""; this._stateAttributes = ""; return; @@ -272,6 +316,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { if (!state) { return; } + this._entity = state; this._state = state.state; this._stateAttributes = safeDump(state.attributes); } @@ -391,11 +436,17 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { } lastChangedString(entity) { - return new Date(entity.last_changed).toISOString(); + return formatDateTimeWithSeconds( + new Date(entity.last_changed), + this.hass.language + ); } lastUpdatedString(entity) { - return new Date(entity.last_updated).toISOString(); + return formatDateTimeWithSeconds( + new Date(entity.last_updated), + this.hass.language + ); } formatAttributeValue(value) { diff --git a/src/translations/en.json b/src/translations/en.json index e7a8e1390e..10ad5be097 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3061,7 +3061,9 @@ "filter_attributes": "Filter attributes", "no_entities": "No entities", "more_info": "More Info", - "alert_entity_field": "Entity is a mandatory field" + "alert_entity_field": "Entity is a mandatory field", + "last_updated": "[%key:ui::dialogs::more_info_control::last_updated%]", + "last_changed": "[%key:ui::dialogs::more_info_control::last_changed%]" }, "templates": { "title": "Template",