MediaWiki:Common.js: Difference between revisions

From Artifacts of Capitalism
No edit summary
No edit summary
Line 1: Line 1:
mw.loader.using('mediawiki.util', function () {
mw.loader.using('mediawiki.util', function () {
   function addUserMenuLinks() {
   function debugUserMenuInjection() {
    // Only proceed if the user is logged in
     if (!mw.config.get('wgUserName')) {
     if (!mw.config.get('wgUserName')) return;
      console.log('[UserMenuTest] Not logged in.');
      return;
    }


    // Look for the user menu (the "blue guy") dropdown
     const $menu = $('.cmln-personal-tools ul');
     const $menu = $('.cmln-personal-tools ul');


     if ($menu.length === 0) {
     if ($menu.length === 0) {
       // If not found, try again in 100ms
       console.log('[UserMenuTest] Menu not found, retrying...');
       setTimeout(addUserMenuLinks, 100);
       setTimeout(debugUserMenuInjection, 200);
       return;
       return;
     }
     }


     // Avoid adding duplicates if already present
     console.log('[UserMenuTest] Menu found. Injecting link.');
    if ($menu.data('custom-links-added')) return;
 
    const links = [
      {
        href: '/index.php?title=Special:Upload',
        label: 'Upload a File'
      },
      {
        href: '/index.php?title=Special:ListFiles',
        label: 'All Files'
      },
      {
        href: '/index.php?title=Help:Contents',
        label: 'Help'
      },
      {
        href: '/index.php?title=Special:SpecialPages',
        label: 'Special pages'
      }
    ];


     links.forEach(link => {
     const $testLink = $('<li>')
      const $li = $('<li>')
      .addClass('mw-list-item')
        .addClass('mw-list-item')
      .append(
        .append($('<a>').attr('href', link.href).text(link.label));
        $('<a>')
      $menu.append($li);
          .attr('href', '#')
    });
          .text('✅ Injected Link')
          .css({
            background: 'firebrick',
            color: 'white',
            padding: '5px',
            display: 'block'
          })
      );


    // Mark as populated to prevent duplication
     $menu.append($testLink);
     $menu.data('custom-links-added', true);
   }
   }


   $(addUserMenuLinks);
   $(debugUserMenuInjection);
});
});

Revision as of 20:30, 14 July 2025

mw.loader.using('mediawiki.util', function () {
  function debugUserMenuInjection() {
    if (!mw.config.get('wgUserName')) {
      console.log('[UserMenuTest] Not logged in.');
      return;
    }

    const $menu = $('.cmln-personal-tools ul');

    if ($menu.length === 0) {
      console.log('[UserMenuTest] Menu not found, retrying...');
      setTimeout(debugUserMenuInjection, 200);
      return;
    }

    console.log('[UserMenuTest] Menu found. Injecting link.');

    const $testLink = $('<li>')
      .addClass('mw-list-item')
      .append(
        $('<a>')
          .attr('href', '#')
          .text('✅ Injected Link')
          .css({
            background: 'firebrick',
            color: 'white',
            padding: '5px',
            display: 'block'
          })
      );

    $menu.append($testLink);
  }

  $(debugUserMenuInjection);
});