xref: /plugin/copy2clipboard/script.js (revision 952080317ab9e9f1a2a8c86df7f37dd0bae44b77)
14a476730SSchplurtz le DéboulonnéjQuery(function() {
24a476730SSchplurtz le Déboulonné  // Copyright (C) 2020 Schplurtz le Déboulonné.
34a476730SSchplurtz le Déboulonné  // Free to use for any purpose except dismantle the sky.
44a476730SSchplurtz le Déboulonné  if(!navigator.clipboard)
54a476730SSchplurtz le Déboulonné    return;
64a476730SSchplurtz le Déboulonné  var messageBox=function( id, txt ) {
74a476730SSchplurtz le Déboulonné    const body=document.getElementsByTagName('body')[0];
84a476730SSchplurtz le Déboulonné    const msg=document.createElement('div');
94a476730SSchplurtz le Déboulonné    msg.setAttribute('id', id );
104a476730SSchplurtz le Déboulonné    msg.classList.add('cp2clipmsg');
114a476730SSchplurtz le Déboulonné    const content = document.createTextNode(txt);
124a476730SSchplurtz le Déboulonné    msg.appendChild(content);
134a476730SSchplurtz le Déboulonné    body.appendChild(msg);
144a476730SSchplurtz le Déboulonné    window.setTimeout(function() {
154a476730SSchplurtz le Déboulonné        jQuery("#"+id).fadeTo(500, 0).slideUp(500, function(){
164a476730SSchplurtz le Déboulonné            jQuery(this).remove();
174a476730SSchplurtz le Déboulonné        });
184a476730SSchplurtz le Déboulonné    }, 1500);
19*95208031SSchplurtz le Déboulonné  };
204a476730SSchplurtz le Déboulonné  document.querySelectorAll('pre.code,pre.file').forEach(function(elem) {
214a476730SSchplurtz le Déboulonné    elem.classList.add('cp2clip');
224a476730SSchplurtz le Déboulonné    let cp = document.createElement('button');
234a476730SSchplurtz le Déboulonné    cp.setAttribute( 'title', LANG.plugins.copy2clipboard.title);
244a476730SSchplurtz le Déboulonné    //cp.appendChild(document.createTextNode('Copy to clipboard')) ;
254a476730SSchplurtz le Déboulonné    cp.classList.add('cp2clip');
264a476730SSchplurtz le Déboulonné    elem.appendChild(cp); // pre.appendChild
274a476730SSchplurtz le Déboulonné    cp.addEventListener('click', async event => {
284a476730SSchplurtz le Déboulonné      try {
294a476730SSchplurtz le Déboulonné        const text = event.target.parentElement.textContent;
304a476730SSchplurtz le Déboulonné        await navigator.clipboard.writeText(text);
314a476730SSchplurtz le Déboulonné        // event.target.textContent = 'Copied to clipboard'
324a476730SSchplurtz le Déboulonné        // console.log( "copié >>>" + text + "<<<" );
334a476730SSchplurtz le Déboulonné        messageBox('cp2clipok', LANG.plugins.copy2clipboard.copied);
344a476730SSchplurtz le Déboulonné      } catch (err) {
354a476730SSchplurtz le Déboulonné        console.error('Failed to copy!', err);
364a476730SSchplurtz le Déboulonné        messageBox('cp2clipnok', LANG.plugins.copy2clipboard.error);
374a476730SSchplurtz le Déboulonné      }
384a476730SSchplurtz le Déboulonné    })
394a476730SSchplurtz le Déboulonné  })
40*95208031SSchplurtz le Déboulonné});
414a476730SSchplurtz le Déboulonné
42