From 7a959ef1a2c04869419c47b9035b028571ed5737 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Fri, 19 Nov 2021 12:48:35 +0100 Subject: [PATCH] Added copy button to new Checklist and Checklist-Items editor --- client/components/cards/checklists.jade | 2 ++ client/components/cards/checklists.js | 29 ++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade index 06f419282..ed5e77c05 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -63,6 +63,8 @@ template(name="checklistDeleteDialog") button.toggle-delete-checklist-dialog(type="button") {{_ 'cancel'}} template(name="addChecklistItemForm") + a.fa.fa-copy(title="copy text to clipboard") + span.copied-tooltip {{_ 'copied'}} textarea.js-add-checklist-item(rows='1' autofocus) .edit-controls.clearfix button.primary.confirm.js-submit-add-checklist-item-form(type="submit") {{_ 'save'}} diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index feec56d37..141b45c4a 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -279,9 +279,32 @@ Template.checklists.helpers({ }, }); -Template.addChecklistItemForm.onRendered(() => { - autosize($('textarea.js-add-checklist-item')); -}); +BlazeComponent.extendComponent({ + onRendered() { + autosize(this.$('textarea.js-add-checklist-item')); + }, + canModifyCard() { + return ( + Meteor.user() && + Meteor.user().isBoardMember() && + !Meteor.user().isCommentOnly() && + !Meteor.user().isWorker() + ); + }, + events() { + return [ + { + 'click a.fa.fa-copy'(event) { + const $editor = this.$('textarea'); + const promise = Utils.copyTextToClipboard($editor[0].value); + + const $tooltip = this.$('.copied-tooltip'); + Utils.showCopied(promise, $tooltip); + }, + } + ]; + } +}).register('addChecklistItemForm'); Template.editChecklistItemForm.onRendered(() => { autosize($('textarea.js-edit-checklist-item'));