|
|
Linha 1: |
Linha 1: |
| /* Códigos JavaScript aqui colocados serão carregados por todos aqueles que acessarem alguma página deste wiki */
| |
|
| |
|
| $(document).ready(function () {
| |
| var scrollToMiddleHorizontalList = document.getElementsByClassName("scrollToMiddleHorizontal");
| |
|
| |
| Array.prototype.forEach.call(scrollToMiddleHorizontalList, function (element) {
| |
| var parent = element.parentNode;
| |
|
| |
| console.log(parent);
| |
|
| |
| parent.scrollBy(element.offsetWidth/2, 0);
| |
| });
| |
| });
| |
|
| |
| $(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;
| |
| }
| |
| }
| |
| });
| |
| });
| |
|
| |
| $(document).ready(function () {
| |
| $(function () {
| |
| var $window,
| |
| $mwPanel,
| |
| $floatTOC,
| |
| scrollHandler,
| |
| tocLimit,
| |
| headingOffsets,
| |
| headingThreshold,
| |
| $toc = $("#toc");
| |
|
| |
| if (!$toc.length) {
| |
| return;
| |
| }
| |
|
| |
| $window = $(window);
| |
| $mwPanel = $("#mw-panel");
| |
|
| |
| headingThreshold = $window.height() / 5.0;
| |
|
| |
| $floatTOC = $toc
| |
| .clone()
| |
| .removeAttr("id")
| |
| .attr("id", "floatTOC")
| |
| .addClass("floatTOC")
| |
| .appendTo("body");
| |
|
| |
| $floatTOC.find("ul").show();
| |
|
| |
| const tocToggleButton = document.createElement("button");
| |
| tocToggleButton.setAttribute("id", "toctogglebutton");
| |
| tocToggleButton.setAttribute("onclick", "toggleTOCVisibility()");
| |
|
| |
| const tocToggleButtonIconNode = document.createElement("i");
| |
| tocToggleButtonIconNode.setAttribute("class", "material-icons");
| |
|
| |
| var tocToggleButtonIconNodeContent;
| |
|
| |
| if (getCookie("showTOC") == "false") {
| |
| tocToggleButtonIconNodeContent = document.createTextNode("chevron_right");
| |
|
| |
| $floatTOC.addClass("hiddenFloatTOC");
| |
| } else {
| |
| tocToggleButtonIconNodeContent = document.createTextNode("chevron_left");
| |
| }
| |
|
| |
| tocToggleButtonIconNode.appendChild(tocToggleButtonIconNodeContent);
| |
| tocToggleButton.appendChild(tocToggleButtonIconNode);
| |
|
| |
| $floatTOC.prepend(tocToggleButton);
| |
|
| |
| $floatTOC.find("a").click(function (e) {
| |
| $("html, body").animate({
| |
| scrollTop:
| |
| $(this.hash.replace(/\./g, "\\.")).offset().top - headingThreshold,
| |
| });
| |
|
| |
| return false;
| |
| });
| |
|
| |
| tocLimit = $toc.offset().top + $toc.height();
| |
| headingOffsets = [];
| |
|
| |
| $(".mw-headline").each(function () {
| |
| headingOffsets.push([$(this).attr("id"), $(this).offset().top]);
| |
| });
| |
|
| |
| scrollHandler = function () {
| |
| var $current,
| |
| scrollTop = $window.scrollTop();
| |
|
| |
| if (scrollTop > tocLimit) {
| |
| $mwPanel.hide();
| |
|
| |
| var highlight = false;
| |
|
| |
| $.each(headingOffsets, function (i, v) {
| |
| if (i !== 0 && scrollTop + headingThreshold < 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 {
| |
| $mwPanel.show();
| |
| }
| |
| };
| |
|
| |
| $window.on("scroll", OO.ui.throttle(250, scrollHandler));
| |
| });
| |
| });
| |
|
| |
| function toggleTOCVisibility() {
| |
| var $floatTOC = $("#floatTOC");
| |
| var $tocToggleButton = $("#toctogglebutton");
| |
|
| |
| if ($floatTOC.hasClass("hiddenFloatTOC")) {
| |
| $floatTOC.removeClass("hiddenFloatTOC");
| |
|
| |
| const tocToggleButtonIconNode = document.createElement("i");
| |
| tocToggleButtonIconNode.setAttribute("class", "material-icons");
| |
|
| |
| const tocToggleButtonIconNodeContent =
| |
| document.createTextNode("chevron_left");
| |
| tocToggleButtonIconNode.appendChild(tocToggleButtonIconNodeContent);
| |
|
| |
| $tocToggleButton.html("");
| |
| $tocToggleButton.append(tocToggleButtonIconNode);
| |
|
| |
| setCookie("showTOC", "true");
| |
|
| |
| } else {
| |
| $floatTOC.addClass("hiddenFloatTOC");
| |
|
| |
| const tocToggleButtonIconNode = document.createElement("i");
| |
| tocToggleButtonIconNode.setAttribute("class", "material-icons");
| |
|
| |
| const tocToggleButtonIconNodeContent =
| |
| document.createTextNode("chevron_right");
| |
| tocToggleButtonIconNode.appendChild(tocToggleButtonIconNodeContent);
| |
|
| |
| $tocToggleButton.html("");
| |
| $tocToggleButton.append(tocToggleButtonIconNode);
| |
|
| |
| setCookie("showTOC", "false");
| |
|
| |
| }
| |
| }
| |
|
| |
| function setCookie(cname, cvalue, exdays) {
| |
| const d = new Date();
| |
| d.setTime(d.getTime() + (exdays || 365) * 24 * 60 * 60 * 1000);
| |
| const expires = "expires=" + d.toUTCString();
| |
| document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
| |
| }
| |
|
| |
| function getCookie(cname) {
| |
| var name = cname + "=";
| |
| var ca = document.cookie.split(";");
| |
| for (var i = 0; i < ca.length; i++) {
| |
| var c = ca[i];
| |
| while (c.charAt(0) == " ") {
| |
| c = c.substring(1);
| |
| }
| |
| if (c.indexOf(name) == 0) {
| |
| return c.substring(name.length, c.length);
| |
| }
| |
| }
| |
| return "";
| |
| }
| |