From 8bf3841e6c2dae2bdf22203ec7639de200b119d4 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Fri, 19 Nov 2021 13:08:11 +0100 Subject: [PATCH] Added copy button to edit 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 ed5e77c05..b27a771db 100644 --- a/client/components/cards/checklists.jade +++ b/client/components/cards/checklists.jade @@ -71,6 +71,8 @@ template(name="addChecklistItemForm") a.fa.fa-times-thin.js-close-inlined-form template(name="editChecklistItemForm") + a.fa.fa-copy(title="copy text to clipboard") + span.copied-tooltip {{_ 'copied'}} textarea.js-edit-checklist-item(rows='1' autofocus dir="auto") if $eq type 'item' = item.title diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js index 141b45c4a..0d9521635 100644 --- a/client/components/cards/checklists.js +++ b/client/components/cards/checklists.js @@ -306,9 +306,32 @@ BlazeComponent.extendComponent({ } }).register('addChecklistItemForm'); -Template.editChecklistItemForm.onRendered(() => { - autosize($('textarea.js-edit-checklist-item')); -}); +BlazeComponent.extendComponent({ + onRendered() { + autosize(this.$('textarea.js-edit-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('editChecklistItemForm'); Template.checklistDeleteDialog.onCreated(() => { const $cardDetails = this.$('.card-details');