MediaWiki:Common.js

From Emmy The Robot Fandom Wiki
Revision as of 19:05, 10 May 2024 by JumboG (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
if ( mw.config.get( 'wgPageName' ) === 'Main_Page' ) {
    document.getElementsByTagName('br')[0].remove();
}

if ( mw.config.get( 'wgPageName' ) === 'Main_Page' ) {
    document.getElementsByTagName('h1')[0].remove();
}

// Function to initialize the text parsing and filtering functionality
function initializeTextParser() {
    // Create a search input field
    var searchInput = document.createElement('input');
    searchInput.setAttribute('type', 'text');
    searchInput.setAttribute('id', 'mediawiki-text-parser-input');
    searchInput.setAttribute('placeholder', 'Type to search');
    document.getElementById('mw-content-text').insertBefore(searchInput, document.getElementById('mw-content-text').firstChild);

    // Attach an event listener to the search input field
    searchInput.addEventListener('input', function() {
        var searchText = this.value.toLowerCase();

        // Get all paragraphs in the content area
        var rows = document.querySelectorAll('table.wikitable.sortable.mw-datatable.jquery-tablesorter tr:not(:first-child)');

        // Loop through each row
        rows.forEach(function(row) {
            var rowCells = row.cells;
            var rowShouldBeVisible = false;

            // Loop through each cell in the row
            Array.from(rowCells).forEach(function(cell) {
                var cellText = cell.textContent.toLowerCase();
                // Check if any cell contains the search text
                if (cellText.includes(searchText)) {
                    rowShouldBeVisible = true;
                }
            });

            // Set the display property of the row and its cells
            if (rowShouldBeVisible) {
                row.style.display = 'table-row';
                Array.from(rowCells).forEach(function(cell) {
                    cell.style.display = 'table-cell';
                });
            } else {
                row.style.display = 'none';
            }
        });
    });
}

// Call the initializeTextParser function when the DOM is ready
function initializeTextParserOnLoad() {
    if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) {
        // The DOM has already loaded, so call initializeTextParser immediately
        initializeTextParser();
    } else {
        // Wait for the DOMContentLoaded event to call initializeTextParser
        document.addEventListener('DOMContentLoaded', initializeTextParser);
    }
}

// Call the initializeTextParserOnLoad function when the entire page is loaded
window.onload = initializeTextParserOnLoad;