REMOVA OS ANÚNCIOS!

Apoiando através de https://apoia.se/arddhu a partir do tier de Apoiador, você pode navegar na wiki sem anúncios e ainda colabora com o projeto!

MediaWiki:Common.js: mudanças entre as edições

De Runarcana Wiki
Sem resumo de edição
Sem resumo de edição
 
(185 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */


$(document).ready(function() {
/* Organize */
    var tables = document.getElementsByClassName("organize");
$(document).ready(function () {
    Array.prototype.forEach.call(tables, function(table) {
  var tables = document.getElementsByClassName("organize");
        var rows, switching, i, x, y, shouldSwitch;
  Array.prototype.forEach.call(tables, function (table) {
        switching = true;
    var rows, switching, i, x, y, shouldSwitch;
        /* Make a loop that will continue until
    switching = true;
    /* Make a loop that will continue until
         no switching has been done: */
         no switching has been done: */
        while (switching) {
    while (switching) {
            // start by saying: no switching is done:
      // start by saying: no switching is done:
            switching = false;
      switching = false;
            rows = table.rows;
      rows = table.rows;
            /* Loop through all table rows (except the
      /* Loop through all table rows (except the
             first, which contains table headers): */
             first, which contains table headers): */
            for (i = 1; i < (rows.length - 1); i++) {
      for (i = 1; i < rows.length - 1; i++) {
                // start by saying there should be no switching:
        // start by saying there should be no switching:
                shouldSwitch = false;
        shouldSwitch = false;
                /* Get the two elements you want to compare,
        /* Get the two elements you want to compare,
                 one from current row and one from the next: */
                 one from current row and one from the next: */
                x = rows[i].getElementsByTagName("TD")[0];
        x = rows[i].querySelector("h3>span.mw-headline");
                y = rows[i + 1].getElementsByTagName("TD")[0];
        y = rows[i + 1].querySelector("h3>span.mw-headline");
                // check if the two rows should switch place:
        // check if the two rows should switch place:
                if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
        if (
                    // if so, mark as a switch and break the loop:
          x.getAttribute("id").toLowerCase() >
                    shouldSwitch = true;
          y.getAttribute("id").toLowerCase()
                    break;
        ) {
                }
          // if so, mark as a switch and break the loop:
            }
          shouldSwitch = true;
            if (shouldSwitch) {
          break;
                /* If a switch has been marked, make the switch
        }
      }
      if (shouldSwitch) {
        /* If a switch has been marked, make the switch
                 and mark that a switch has been done: */
                 and mark that a switch has been done: */
                rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
        rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
                switching = true;
            }
        }
    });
});


mw.loader.load( 'https://wiki.runarcana.org/util/ptoc.css', 'text/css' );
        var rowIdA = rows[i].querySelector(".mw-headline").getAttribute("id");
mw.loader.using('jquery.throttle-debounce', function(){
        var rowIdB = rows[i + 1]
    $(function(){
          .querySelector(".mw-headline")
         var $window = $(window);
          .getAttribute("id");
        var $mwPanel = $('#mw-panel');
         var floatTOCLinkA = document.querySelector(
         var $toc = $('#toc');
          'a[href$="' + rowIdA + '"]'
         var $floatTOC;
        ).parentNode;
         var floatTOCLinkB = document.querySelector(
          'a[href$="' + rowIdB + '"]'
         ).parentNode;


         // Exit if TOC element does not exist
         floatTOCLinkB.parentNode.insertBefore(floatTOCLinkA, floatTOCLinkB);
        if(!$toc.length){
            return;
        }
       
        // Create a clone of TOC element and add class and styles
        $floatTOC = $toc.clone()
                      .removeAttr('id')
                      .addClass('floatTOC')
                      .appendTo('body')
                      .css({visibility: 'hidden', opacity: 0});
        $floatTOC.find('ul').show();


         // Add click event to TOC links
         rowIdA = null;
         $floatTOC.find('a').click(function(e){
         rowIdB = null;
            $('html, body').animate({
        floatTOCLinkA = null;
                scrollTop: $(this.hash.replace(/\./g,'\\.')).offset().top - ($window.height()/5.0)
         floatTOCLinkB = null;
            });
            return false;
         });


         // Add mouse events to TOC parent element
         switching = true;
        $toc.parent().on('mouseover', function(){
      }
            $toc.show();
    }
        });
  });
        $toc.parent().on('mouseout', function(){
});
            $toc.hide();
        });


        // Add scroll event
// Hide Sitenotice
        var tocLimit = $toc.offset().top + $toc.height();
$(document).ready(function() {
        var headingOffsets = [];
  if (mw && mw.config) {
        $('.mw-headline').each(function(){
    var userGroups = mw.config.get('wgUserGroups');
            headingOffsets.push([$(this).attr('id'), $(this).offset().top]);
    var cargosOcultos = ['sysop', 'bureaucrat', 'bot', 'interface-admin', 'supporter'];
        });
    var ocultarSitenotice = cargosOcultos.some(function(cargo) {
        var scrollHandler = function(){
      return userGroups.includes(cargo);
            var $current, scrollTop = $window.scrollTop();
            if(scrollTop > tocLimit){
                $floatTOC.css({visibility: 'visible', opacity: 1});
                $mwPanel.hide();
                var highlight = false;
                $.each(headingOffsets, function(i,v){
                    if(i !== 0 && (scrollTop + ($window.height()/5.0)) < v[1]){
                        highlight = headingOffsets[i-1][0];
                        return false;
                    }
                });
                if(highlight){
                    $current = $floatTOC.find('a[href="#' + highlight + '"]');
                    $floatTOC.find('a').not($current).css('font-weight','');
                    $current.css('font-weight','bold');
                }
            }
            else{
                $floatTOC.css({visibility: 'hidden', opacity: 0});
                $mwPanel.show();
            }
        }
        $window.on('scroll', $.throttle(250, scrollHandler));
     });
     });
    if (ocultarSitenotice) {
      $('#siteNotice').hide();
    }
  }
});
});

Edição atual tal como às 23h54min de 9 de novembro de 2024

/* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */

/* Organize */
$(document).ready(function () {
  var tables = document.getElementsByClassName("organize");
  Array.prototype.forEach.call(tables, function (table) {
    var rows, switching, i, x, y, shouldSwitch;
    switching = true;
    /* Make a loop that will continue until
        no switching has been done: */
    while (switching) {
      // start by saying: no switching is done:
      switching = false;
      rows = table.rows;
      /* Loop through all table rows (except the
            first, which contains table headers): */
      for (i = 1; i < rows.length - 1; i++) {
        // start by saying there should be no switching:
        shouldSwitch = false;
        /* Get the two elements you want to compare,
                one from current row and one from the next: */
        x = rows[i].querySelector("h3>span.mw-headline");
        y = rows[i + 1].querySelector("h3>span.mw-headline");
        // check if the two rows should switch place:
        if (
          x.getAttribute("id").toLowerCase() >
          y.getAttribute("id").toLowerCase()
        ) {
          // if so, mark as a switch and break the loop:
          shouldSwitch = true;
          break;
        }
      }
      if (shouldSwitch) {
        /* If a switch has been marked, make the switch
                and mark that a switch has been done: */
        rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);

        var rowIdA = rows[i].querySelector(".mw-headline").getAttribute("id");
        var rowIdB = rows[i + 1]
          .querySelector(".mw-headline")
          .getAttribute("id");
        var floatTOCLinkA = document.querySelector(
          'a[href$="' + rowIdA + '"]'
        ).parentNode;
        var floatTOCLinkB = document.querySelector(
          'a[href$="' + rowIdB + '"]'
        ).parentNode;

        floatTOCLinkB.parentNode.insertBefore(floatTOCLinkA, floatTOCLinkB);

        rowIdA = null;
        rowIdB = null;
        floatTOCLinkA = null;
        floatTOCLinkB = null;

        switching = true;
      }
    }
  });
});

// Hide Sitenotice
$(document).ready(function() {
  if (mw && mw.config) {
    var userGroups = mw.config.get('wgUserGroups');
    var cargosOcultos = ['sysop', 'bureaucrat', 'bot', 'interface-admin', 'supporter'];
    var ocultarSitenotice = cargosOcultos.some(function(cargo) {
      return userGroups.includes(cargo);
    });
    if (ocultarSitenotice) {
      $('#siteNotice').hide();
    }
  }
});