From 4b56db5255edfacaf1de935f2fe5ae5dcda0ea9d Mon Sep 17 00:00:00 2001 From: nicop4 Date: Mon, 2 Dec 2019 10:35:49 +0100 Subject: [PATCH] Add copy entity ID/state/attributes menu button in dev tools/states (#4259) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added button and js method to copy with copy-to-clipboard library * Copy entity id working, tooltip added * copy ok, use ha toast to notify ok * cleanup code * add translation * removed old useless code * Replaced copy button with menu * Fix comparison operator & removed commented code modifié : src/panels/developer-tools/state/developer-tools-state.js * Fix spaces modifié : src/panels/developer-tools/state/developer-tools-state.js * Improve copy attributes * only one menu & update translation * copy attributes in yml format use paper-icon-item instead of paper-icon-button and add yarn.lock * removed paper-item --- package.json | 1 + .../state/developer-tools-state.js | 85 +++++++++++++++++-- src/translations/en.json | 6 +- yarn.lock | 12 +++ 4 files changed, 96 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 0e2d973d9e..9f111f9e4e 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "regenerator-runtime": "^0.13.2", "roboto-fontface": "^0.10.0", "superstruct": "^0.6.1", + "copy-to-clipboard": "^1.0.9", "tslib": "^1.10.0", "unfetch": "^4.1.0", "web-animations-js": "^2.3.1", diff --git a/src/panels/developer-tools/state/developer-tools-state.js b/src/panels/developer-tools/state/developer-tools-state.js index 8312f15e34..bfb0511f34 100644 --- a/src/panels/developer-tools/state/developer-tools-state.js +++ b/src/panels/developer-tools/state/developer-tools-state.js @@ -1,6 +1,8 @@ import "@material/mwc-button"; import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-input/paper-input"; +import "@polymer/paper-menu-button"; +import copy from "copy-to-clipboard"; import { html } from "@polymer/polymer/lib/utils/html-tag"; import { PolymerElement } from "@polymer/polymer/polymer-element"; @@ -11,6 +13,7 @@ import "../../../components/ha-code-editor"; import "../../../resources/ha-style"; import { EventsMixin } from "../../../mixins/events-mixin"; import LocalizeMixin from "../../../mixins/localize-mixin"; +import { showToast } from "../../../util/toast"; const ERROR_SENTINEL = {}; /* @@ -60,6 +63,10 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { height: 24px; padding: 0; } + .entities paper-menu-button { + height: 24px; + padding: 0; + } .entities td:nth-child(3) { white-space: pre-wrap; word-break: break-word; @@ -68,6 +75,9 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) { .entities a { color: var(--primary-color); } + paper-icon-item { + cursor: pointer; + }
@@ -150,13 +160,56 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {