Utilisateur:Poslovitch/PhiLL.js
Apparence
Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.
/**
* Pronaudio
* by Florian "Poslovitch" CUNY.
*
* Web Edition
*
* Unlicense | 2020 - (c).
*/
mw.loader.using(["oojs-ui-core", "oojs-ui-widgets", "oojs-ui-toolbars", "oojs-ui-windows"], pronaudio= function () {
var context = mw.config.get(['wgCanonicalSpecialPageName', 'wgTitle', 'wgScriptPath']);
// Define constants (PP1 = 'Poslovitch Project 1')
var PP1_NAME = 'Pronaudio',
PP1_ID = 'pronaudio';
// Define URL to the Mediawiki api
var apiUrl = context.wgScriptPath + '/api.php';
// Creates the OOUI WindowManager
var windowManager = new OO.ui.WindowManager();
$( document.body ).append( windowManager.$element );
function showPages(pages) {
var content = document.getElementById("mw-content-text");
var ul = document.createElement('ul');
content.appendChild(ul);
for (var page in pages) {
var li = document.createElement("li");
li.appendChild(document.createTextNode(pages[page].title));
ul.appendChild(li);
fetchPage(pages[page].title)
};
};
function fetchPage(name) {
var params = {
action: "parse",
page: name,
prop: "parsetree",
format: "json"
};
var url = apiUrl + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {
console.log(response.query);
})
.catch(function(error){console.log(error);});
};
function fetchPages() {
var params = {
action: "query",
list: "categorymembers",
cmtitle: "Catégorie:Wiktionnaire:Prononciations phonétiques manquantes en français",
cmlimit: "20",
format: "json"
};
var url = apiUrl + "?origin=*";
Object.keys(params).forEach(function(key){url += "&" + key + "=" + params[key];});
fetch(url)
.then(function(response){return response.json();})
.then(function(response) {
showPages(response.query.categorymembers);
})
.catch(function(error){console.log(error);});
};
function init() {
document.title = PP1_NAME;
$('#p-namespaces ul').find('a').text(PP1_NAME);
pronaudio_window = new OO.ui.MessageDialog( { name: 'test1', titre: 'Really?'});
windowManager.addWindows( [ pronaudio_window ] );
windowManager.openWindow(pronaudio_window, {size: 'full'});
// fetch pages for now
fetchPages();
};
// Check if we are in the blank page
if (context.wgCanonicalSpecialPageName === 'Blankpage' && context.wgTitle.split('/', 2)[1] === PP1_NAME) {
init();
};
// Add a button in the toolbar
$.when(mw.loader.using('mediawiki.util'), $.ready).then(function () {
mw.util.addPortletLink('p-tb', mw.util.getUrl('Special:BlankPage/' + PP1_NAME), PP1_NAME, PP1_ID, 'Contribuer aux prononciations phonétiques manquantes');
});
});