diff --git a/css/legacy/includes/_styles.scss b/css/legacy/includes/_styles.scss
index 2a1292ad9f9..dd54aee201f 100644
--- a/css/legacy/includes/_styles.scss
+++ b/css/legacy/includes/_styles.scss
@@ -1134,6 +1134,24 @@
}
}
+ .input-group.copy_to_clipboard_wrapper {
+ &:after {
+ content: none;
+ }
+
+ i.copy_to_clipboard_wrapper {
+ font-style: normal;
+
+ &:after {
+ left: 0;
+ }
+
+ &:before {
+ content: none;
+ }
+ }
+ }
+
/* ################--------------- Log history filters ---------------#################### */
tr.log_history_filter_row {
diff --git a/js/clipboard.js b/js/clipboard.js
index 503e17eb741..e7995a9ea2a 100644
--- a/js/clipboard.js
+++ b/js/clipboard.js
@@ -35,28 +35,56 @@ $(function() {
// set a function to track drag hover event
$(document).on("click", ".copy_to_clipboard_wrapper", function(event) {
+ var succeed;
// find the good element
var target = $(event.target);
- if (target.attr('class') == 'copy_to_clipboard_wrapper') {
- target = target.find('*');
+
+ // click on other button
+ if (target.hasClass('input-group-text') && !target.hasClass('copy_to_clipboard_wrapper')) {
+ return false;
}
- // copy text
- target.select();
- var succeed;
- try {
- succeed = document.execCommand("copy");
- } catch (e) {
- succeed = false;
+ // click on 'copy button'
+ if (target.hasClass('input-group-text') || target.is('input')) {
+ target = target.parent('.copy_to_clipboard_wrapper').find('input');
+
+ // copy text
+ succeed = copyTextToClipboard(target.val());
+ } else {
+ if (target.attr('class') == 'copy_to_clipboard_wrapper') {
+ target = target.find('*');
+ }
+
+ // copy text
+ target.select();
+ try {
+ succeed = document.execCommand("copy");
+ } catch (e) {
+ succeed = false;
+ }
+ target.blur();
+ }
+
+ // get copy icon
+ var icon;
+ if (target.attr('class') == 'copy_to_clipboard_wrapper') {
+ icon = target;
+ } else {
+ icon = target.parent('.copy_to_clipboard_wrapper').find('i.copy_to_clipboard_wrapper');
+ if (!icon.length) {
+ icon = target.parent('.copy_to_clipboard_wrapper');
+ }
}
- target.blur();
// indicate success
if (succeed) {
$('.copy_to_clipboard_wrapper.copied').removeClass('copied');
- target.parent('.copy_to_clipboard_wrapper').addClass('copied');
+ icon.addClass('copied');
+ setTimeout(function(){
+ icon.removeClass('copied');
+ }, 1000);
} else {
- target.parent('.copy_to_clipboard_wrapper').addClass('copyfail');
+ icon.addClass('copyfail');
}
});
});
@@ -78,8 +106,15 @@ function copyTextToClipboard (text) {
// Select and copy text to clipboard
textarea.select();
- document.execCommand('copy');
+ var succeed;
+ try {
+ succeed = document.execCommand('copy');
+ } catch (e) {
+ succeed = false;
+ }
// Remove textarea
document.body.removeChild(textarea);
+
+ return succeed;
}
diff --git a/src/Dashboard/Grid.php b/src/Dashboard/Grid.php
index f5ebc155dfb..6b3565b0404 100644
--- a/src/Dashboard/Grid.php
+++ b/src/Dashboard/Grid.php
@@ -800,18 +800,20 @@ public function displayEmbedForm()
echo "
";
echo "