summaryrefslogtreecommitdiff
path: root/html/assets/js/plugins/copy.js
diff options
context:
space:
mode:
authorGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 23:57:48 +0200
committerGeorge Halkiadakis <gchalkiadakis@sklavenitis.co.gr>2023-03-12 23:57:48 +0200
commit7aa203150fc1a2ec79c681c13f0d486d531746eb (patch)
treef09ba9f69ccd434e9c7fdeb41807fc8008784d8a /html/assets/js/plugins/copy.js
parent221af3a2e035bd6689294509feb52f286d3bd5be (diff)
downloadclassroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.tar.gz
classroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.tar.bz2
classroom-7aa203150fc1a2ec79c681c13f0d486d531746eb.zip
error pages; js system to support back/front-end
Diffstat (limited to 'html/assets/js/plugins/copy.js')
-rw-r--r--html/assets/js/plugins/copy.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/html/assets/js/plugins/copy.js b/html/assets/js/plugins/copy.js
new file mode 100644
index 0000000..c33430f
--- /dev/null
+++ b/html/assets/js/plugins/copy.js
@@ -0,0 +1,25 @@
+$$plugins.define('copy', function (element, options) {
+ //copyButton: data-copy-btn
+ //content to be copied: data-copy-text
+ //tooltip: data-copy-tooltip
+
+ const copyButton = element,
+ copyButtonId = copyButton.getAttribute('data-copy-btn'),
+ copyText = document.querySelector(`[data-copy-text='${copyButtonId}']`),
+ tooltip = document.querySelector(`[data-copy-tooltip='${copyButtonId}']`);
+
+ function copy() {
+ var r = document.createRange();
+ r.selectNode(copyText);
+ window.getSelection().removeAllRanges();
+ window.getSelection().addRange(r);
+ document.execCommand('copy');
+ window.getSelection().removeAllRanges();
+ tooltip.classList.add('copyText__tooltip--open');
+ setTimeout(function () {
+ tooltip.classList.remove('copyText__tooltip--open');
+ }, 1600);
+ }
+
+ copyButton.addEventListener("click", copy);
+});