Moved "copied!" code to Utils

- same implementation in all files, so it's better to have one function
  for it
This commit is contained in:
Martin Filser 2021-11-19 12:07:42 +01:00
parent 6d3ecdea55
commit 7444c11c82
3 changed files with 24 additions and 23 deletions

View file

@ -326,13 +326,9 @@ BlazeComponent.extendComponent({
'click .js-copy-link'(event) {
event.preventDefault();
const promise = Utils.copyTextToClipboard(event.target.href);
if (promise) {
promise.then(() => {
const $tooltip = this.$('span.copied-tooltip');
$tooltip.show(100);
setTimeout(() => $tooltip.hide(100), 1000);
});
}
const $tooltip = this.$('.copied-tooltip');
Utils.showCopied(promise, $tooltip);
},
'click .js-open-card-details-menu': Popup.open('cardDetailsActions'),
'submit .js-card-description'(event) {
@ -1076,13 +1072,9 @@ BlazeComponent.extendComponent({
{
'click .js-copy-card-link-to-clipboard'(event) {
const promise = Utils.copyTextToClipboard(location.origin + document.getElementById('cardURL').value);
if (promise) {
promise.then(() => {
const $tooltip = this.$('.copied-tooltip');
$tooltip.show(100);
setTimeout(() => $tooltip.hide(100), 1000);
});
}
const $tooltip = this.$('.copied-tooltip');
Utils.showCopied(promise, $tooltip);
},
'click .js-delete': Popup.afterConfirm('cardDelete', function () {
Popup.close();

View file

@ -289,15 +289,9 @@ BlazeComponent.extendComponent({
'click a.fa.fa-copy'(event) {
const $editor = this.$('textarea.editor');
const promise = Utils.copyTextToClipboard($editor[0].value);
if (promise) {
promise.then(() => {
const $tooltip = this.$('.copied-tooltip');
$tooltip.show(100);
setTimeout(() => $tooltip.hide(100), 1000);
}, (err) => {
console.error("error: ", err);
});
}
const $tooltip = this.$('.copied-tooltip');
Utils.showCopied(promise, $tooltip);
},
}
]

View file

@ -506,6 +506,21 @@ Utils = {
}
return ret;
},
/** show the "copied!" message
* @param promise the promise of Utils.copyTextToClipboard
* @param $tooltip jQuery tooltip element
*/
showCopied(promise, $tooltip) {
if (promise) {
promise.then(() => {
$tooltip.show(100);
setTimeout(() => $tooltip.hide(100), 1000);
}, (err) => {
console.error("error: ", err);
});
}
},
};
// A simple tracker dependency that we invalidate every time the window is