|
@@ -1,5 +1,5 @@
|
|
|
(function() {
|
|
|
- function fallbackCopyTextToClipboard(text) {
|
|
|
+ function fallbackCopyTextToClipboard(text, pasteTo = false) {
|
|
|
var textArea = document.createElement("textarea");
|
|
|
textArea.value = text;
|
|
|
|
|
@@ -17,13 +17,14 @@
|
|
|
var msg = successful ? 'successful' : 'unsuccessful';
|
|
|
console.log('Fallback: Copying text command was ' + msg);
|
|
|
toastr.success('Copied!');
|
|
|
+ pasteToElement(pasteTo, text);
|
|
|
} catch (err) {
|
|
|
console.error('Fallback: Oops, unable to copy', err);
|
|
|
}
|
|
|
|
|
|
document.body.removeChild(textArea);
|
|
|
}
|
|
|
- function copyTextToClipboard(text) {
|
|
|
+ function copyTextToClipboard(text, pasteTo = false) {
|
|
|
if (!navigator.clipboard) {
|
|
|
fallbackCopyTextToClipboard(text);
|
|
|
return;
|
|
@@ -31,17 +32,33 @@
|
|
|
navigator.clipboard.writeText(text).then(function() {
|
|
|
console.log('Async: Copying to clipboard was successful!');
|
|
|
toastr.success('Copied!');
|
|
|
+ pasteToElement(pasteTo, text);
|
|
|
}, function(err) {
|
|
|
console.error('Async: Could not copy text: ', err);
|
|
|
});
|
|
|
}
|
|
|
+ function pasteToElement(_elem, _text) {
|
|
|
+ if(_elem && _elem.length) {
|
|
|
+ // if rte
|
|
|
+ if(_elem.is('.ql-container') && _elem[0].__quill) {
|
|
|
+ let qlRoot = _elem[0].__quill.root;
|
|
|
+ if($.trim($(qlRoot.innerHTML).text()) === '') {
|
|
|
+ _elem[0].__quill.clipboard.dangerouslyPasteHTML(0, _text);
|
|
|
+ _elem[0].__quill.root.focus();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else _elem.val(_text);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
function init() {
|
|
|
$(document)
|
|
|
.off('click.click-to-copy', '.click-to-copy')
|
|
|
.on('click.click-to-copy', '.click-to-copy', function(event) {
|
|
|
- copyTextToClipboard($(this).text());
|
|
|
- });
|
|
|
+ let self = $(this);
|
|
|
+ copyTextToClipboard(self.text(),
|
|
|
+ self.is('[auto-paste]') ? self.closest('form').find(self.attr('auto-paste')) : false);
|
|
|
+ });
|
|
|
window.copyTextToClipboard = copyTextToClipboard;
|
|
|
}
|
|
|
|