Jump to content

MediaWiki:Common.js

From Artemis Archive
Revision as of 04:22, 21 April 2025 by Bxuwd (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)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
    if (mw.config.get('skin') !== 'vector-2022') {
        console.log('Not using Vector 2022');
        return;
    }

    console.log('Using Vector 2022');

    const tryInsert = () => {
        const personalToolsList = document.querySelector('#vector-user-links ul');

        if (!personalToolsList) {
            console.log('Still waiting for #vector-user-links ul...');
            return false;
        }

        console.log('Found user links list — inserting Report Abuse link');

        // Create the new list item
        const li = document.createElement('li');
        li.id = 'pt-reportabuse';

        const link = document.createElement('a');
        link.href = '/wiki/ReportAnimalAbuse'; // Update to your real URL if needed
        link.textContent = '🐾 Report Abuse';
        link.title = 'Report animal abuse';

        li.appendChild(link);

        // Try to insert before Log in link
        const loginItem = document.querySelector('#pt-login');
        if (loginItem && loginItem.parentNode === personalToolsList) {
            personalToolsList.insertBefore(li, loginItem);
        } else {
            personalToolsList.appendChild(li);
        }

        return true;
    };

    // Retry every 100ms for up to 5 seconds
    let attempts = 0;
    const maxAttempts = 50;
    const interval = setInterval(() => {
        if (tryInsert() || ++attempts >= maxAttempts) {
            clearInterval(interval);
        }
    }, 100);
});