From f42c0a071754767770f9196e84d1143ad96d609a Mon Sep 17 00:00:00 2001 From: Kendell R Date: Wed, 24 Feb 2021 08:36:18 -0800 Subject: [PATCH] Add clipboard button (#8411) --- .../state/developer-tools-state.js | 21 ++++++++++++++++++- src/translations/en.json | 3 ++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/panels/developer-tools/state/developer-tools-state.js b/src/panels/developer-tools/state/developer-tools-state.js index eb5f6c580a..4437fdfa30 100644 --- a/src/panels/developer-tools/state/developer-tools-state.js +++ b/src/panels/developer-tools/state/developer-tools-state.js @@ -1,5 +1,8 @@ import "@material/mwc-button"; -import { mdiInformationOutline } from "@mdi/js"; +import { + mdiInformationOutline, + mdiClipboardTextMultipleOutline +} from "@mdi/js"; import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-input/paper-input"; import { html } from "@polymer/polymer/lib/utils/html-tag"; @@ -15,6 +18,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 { copyToClipboard } from "../../../common/util/copy-clipboard"; const ERROR_SENTINEL = {}; /* @@ -205,6 +209,12 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { title="[[localize('ui.panel.developer-tools.tabs.states.more_info')]]" path="[[informationOutlineIcon()]]" > + [[entity.entity_id]] @@ -296,6 +306,11 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { }; } + copyEntity(ev) { + ev.preventDefault(); + copyToClipboard(ev.model.entity.entity_id); + } + entitySelected(ev) { const state = ev.model.entity; this._entityId = state.entity_id; @@ -345,6 +360,10 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { return mdiInformationOutline; } + clipboardOutlineIcon() { + return mdiClipboardTextMultipleOutline; + } + computeEntities(hass, _entityFilter, _stateFilter, _attributeFilter) { return Object.keys(hass.states) .map(function (key) { diff --git a/src/translations/en.json b/src/translations/en.json index 1e6af99fe9..7e54c9717c 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3343,7 +3343,8 @@ "more_info": "More Info", "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%]" + "last_changed": "[%key:ui::dialogs::more_info_control::last_changed%]", + "copy_id": "Copy ID to clipboard" }, "templates": { "title": "Template",