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');
  });
});