Jump to content

MediaWiki:Common.js: Difference between revisions

From Artemis Archive
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. */
$(function () {
$(function () {
     if (mw.config.get('skin') !== 'vector-2022') return;
     if (mw.config.get('skin') !== 'vector-2022') {
        console.log('Not using Vector 2022');
        return;
    }


     // Wait for the menu to render
     console.log('Using Vector 2022');
    var interval = setInterval(function () {
        var userLinks = document.querySelector('#vector-user-links ul');


         if (userLinks) {
    const tryInsert = () => {
             clearInterval(interval);
        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';


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


            var link = document.createElement('a');
        // Try to insert before Log in link
            link.href = '/wiki/ReportAnimalAbuse'; // Change to your actual target
        const loginItem = document.querySelector('#pt-login');
             link.textContent = '🐾 Report Abuse';
        if (loginItem && loginItem.parentNode === personalToolsList) {
             link.title = 'Report animal abuse';
             personalToolsList.insertBefore(li, loginItem);
        } else {
             personalToolsList.appendChild(li);
        }


            li.appendChild(link);
        return true;
    };


            // Find the login item to insert before
    // Retry every 100ms for up to 5 seconds
            var loginItem = document.querySelector('#pt-login');
    let attempts = 0;
            if (loginItem) {
    const maxAttempts = 50;
                userLinks.insertBefore(li, loginItem);
    const interval = setInterval(() => {
             } else {
        if (tryInsert() || ++attempts >= maxAttempts) {
                userLinks.appendChild(li);
             clearInterval(interval);
            }
         }
         }
     }, 100); // Check every 100ms until menu appears
     }, 100);
});
});

Revision as of 04:22, 21 April 2025

/* 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);
});