MediaWiki:Common.js: Difference between revisions
Appearance
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; | |||
} | |||
console.log('Using Vector 2022'); | |||
if ( | 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); | }, 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); });