From 7aa203150fc1a2ec79c681c13f0d486d531746eb Mon Sep 17 00:00:00 2001 From: George Halkiadakis Date: Sun, 12 Mar 2023 23:57:48 +0200 Subject: error pages; js system to support back/front-end --- html/assets/js/plugins/copy.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 html/assets/js/plugins/copy.js (limited to 'html/assets/js/plugins/copy.js') 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); +}); -- cgit v1.2.3