From fa28b480f13464a5c66a29a8d3a7c64c408c7e2c Mon Sep 17 00:00:00 2001 From: Nathan Orick Date: Tue, 10 Nov 2020 04:16:42 -0500 Subject: [PATCH] Add button to duplicate script (#7511) Co-authored-by: Bram Kragten --- src/panels/config/script/ha-script-editor.ts | 52 +++++++++++++++++++- src/translations/en.json | 4 +- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts index 8dddca7c3d..5dd2a99083 100644 --- a/src/panels/config/script/ha-script-editor.ts +++ b/src/panels/config/script/ha-script-editor.ts @@ -1,5 +1,11 @@ import "@material/mwc-fab"; -import { mdiCheck, mdiContentSave, mdiDelete, mdiDotsVertical } from "@mdi/js"; +import { + mdiCheck, + mdiContentSave, + mdiDelete, + mdiDotsVertical, + mdiContentDuplicate, +} from "@mdi/js"; import "@polymer/app-layout/app-header/app-header"; import "@polymer/app-layout/app-toolbar/app-toolbar"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu-light"; @@ -36,6 +42,7 @@ import { MODES, MODES_MAX, ScriptConfig, + showScriptEditor, triggerScript, } from "../../../data/script"; import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box"; @@ -132,6 +139,22 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) {
  • + + ${this.hass.localize( + "ui.panel.config.script.picker.duplicate_script" + )} + + + setTimeout(resolve, 0)); + } + showScriptEditor(this, { + ...this._config, + alias: `${this._config?.alias} (${this.hass.localize( + "ui.panel.config.script.picker.duplicate" + )})`, + }); + } + private async _deleteConfirm() { showConfirmationDialog(this, { text: this.hass.localize("ui.panel.config.script.editor.delete_confirm"), @@ -574,6 +621,9 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { this._mode = "yaml"; break; case 2: + this._duplicate(); + break; + case 3: this._deleteConfirm(); break; } diff --git a/src/translations/en.json b/src/translations/en.json index c365044443..db29694f98 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1435,7 +1435,9 @@ "edit_script": "Edit script", "headers": { "name": "Name" - } + }, + "duplicate_script": "Duplicate script", + "duplicate": "[%key:ui::panel::config::automation::picker::duplicate%]" }, "editor": { "alias": "Name",