Utilisateur:Arkanosis/ongletSousPages.js
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.mw.loader.using('mediawiki.util', function () {
function ongletSousPages()
{
if (mw.config.get('wgNamespaceNumber'))
return;
var xhr = new XMLHttpRequest();
xhr.open('GET', mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?action=query&generator=allpages&gapprefix=' + mw.config.get('wgPageName') + '/&prop=info&gapnamespace=1&format=json', true);
xhr.onreadystatechange = function()
{
var subPages;
if (xhr.readyState == 4 && xhr.status == 200)
{
try {
subPages = JSON.parse(xhr.responseText).query.pages;
} catch (e) {
subPages = [];
}
var links = '';
var nbLinks = 0;
for (var subPageId in subPages)
{
links += '<li><a href="/wiki/' + subPages[subPageId].title + '">' + subPages[subPageId].title + '</a></li>';
++nbLinks;
}
if (links)
{
links = '<ul>' + links + '</ul>';
var panel = document.createElement('div');
panel.setAttribute('id', 'subPagesPanel');
panel.setAttribute('style', 'display: none;');
panel.innerHTML = links;
document.getElementById('content').insertBefore(panel, document.getElementById('firstHeading'));
var editNode = document.getElementById('ca-edit');
if (!editNode)
editNode = document.getElementById('ca-viewsource');
if (!editNode)
return;
mw.util.addPortletLink('p-cactions', 'javascript:document.getElementById(\'subPagesPanel\').setAttribute(\'style\', \'display: block; border: 1px solid #000000; background: #EEE; padding:1px;\');', 'sous-pages (' + nbLinks + ')', 'ca-souspages', 'Sous-pages de discussion', '!', editNode);
}
}
};
xhr.send('');
}
$(ongletSousPages);
});