Jump to content

MediaWiki:Common.js: Difference between revisions

No edit summary
No edit summary
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MX174P23PW"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-MX174P23PW');
</script>


/**
* GOOGLE ANALYTICS
* Injeção correta de script externo para evitar o erro de "Parse error"
*/
var gaScript = document.createElement('script');
gaScript.src = "https://www.googletagmanager.com/gtag/js?id=G-MX174P23PW";
gaScript.async = true;
document.head.appendChild(gaScript);


window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-MX174P23PW');


/**
* TESTE DE FUNCIONAMENTO
* Podes apagar esta linha do alert depois de veres que o botão apareceu
*/
alert("ATRONIA JS OK");
alert("ATRONIA JS OK");


 
/**
/* Botão de Copiar para SyntaxHighlight */
* BOTÃO DE COPIAR (Copy Button)
* Este script cria o botão de cópia em todos os blocos de código
*/
$(function() {
$(function() {
    // Procura os blocos gerados pela extensão SyntaxHighlight
     $('.mw-highlight').each(function() {
     $('.mw-highlight').each(function() {
         var $block = $(this);
         var $block = $(this);
         if ($block.find('.copy-btn').length > 0) return; // Evita duplicados
       
        // Evita botões duplicados
         if ($block.find('.copy-btn').length > 0) return;


        // Cria o botão com estilo azul
         var $button = $('<button>')
         var $button = $('<button>')
             .text('Copy')
             .text('Copy')
Line 36: Line 48:
                 'border-radius': '3px',
                 'border-radius': '3px',
                 'cursor': 'pointer',
                 'cursor': 'pointer',
                 'font-size': '12px'
                 'font-size': '12px',
                'font-weight': 'bold'
             });
             });


        // Função para copiar o texto
         $button.on('click', function() {
         $button.on('click', function() {
             var text = $block.find('pre').text();
             var text = $block.find('pre').text();
           
             navigator.clipboard.writeText(text).then(function() {
             navigator.clipboard.writeText(text).then(function() {
                 $button.text('Copied!').css('background', '#00af89');
                 $button.text('Copied!').css('background', '#00af89');
Line 46: Line 61:
                     $button.text('Copy').css('background', '#3366cc');
                     $button.text('Copy').css('background', '#3366cc');
                 }, 2000);
                 }, 2000);
            }).catch(function(err) {
                console.error('Erro ao copiar: ', err);
             });
             });
         });
         });


        // Adiciona o botão ao bloco
         $block.css('position', 'relative').prepend($button);
         $block.css('position', 'relative').prepend($button);
     });
     });
});
});