Widget:Autorenbox: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
KKeine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
Zeile 11: Zeile 11:
     const paramArtikel = "<!--{$artikel|escape:'javascript'}-->" || null;
     const paramArtikel = "<!--{$artikel|escape:'javascript'}-->" || null;
     const paramKategorie = "<!--{$kategorie|escape:'javascript'}-->" || null;
     const paramKategorie = "<!--{$kategorie|escape:'javascript'}-->" || null;
    const paramMitUnterseiten = "<!--{$mit_unterseiten|escape:'javascript'}-->" === "ja";
     const element = document.currentScript && document.currentScript.previousElementSibling;
     const element = document.currentScript && document.currentScript.previousElementSibling;
     if (element) {
     if (element) {
Zeile 23: Zeile 24:
                 const lastModifiedEl = $(element).find('[data-zum-hook="last-modified"]');
                 const lastModifiedEl = $(element).find('[data-zum-hook="last-modified"]');
                 const api = new mw.Api();
                 const api = new mw.Api();
                 const query = paramKategorie ? {
                 const queries;
                if (paramKategorie) {
                  queries = [{
                     action: 'query',
                     action: 'query',
                     prop: ['contributors', 'info'],
                     prop: ['contributors', 'info'],
Zeile 31: Zeile 34:
                     gcmtype: 'page',
                     gcmtype: 'page',
                     gcmlimit: 'max'
                     gcmlimit: 'max'
                 } : {
                  }];
                 } else if (paramMitUnterseiten) {
                  queries = [{
                     action: 'query',
                     action: 'query',
                     prop: ['revisions', 'contributors', 'info'],
                    prop: ['contributors', 'info'],
                    generator: 'allpages',
                    titles: paramArtikel || getCurrentTitle(),
                  },
                  {
                    action: 'query',
                     prop: ['revisions', 'info', 'contributors'],
                     titles: paramArtikel || getCurrentTitle(),
                     titles: paramArtikel || getCurrentTitle(),
                    rvlimit: 150,
                     rvprop: ['userid', 'user', 'flags', 'timestamp'],
                     rvprop: ['userid', 'user', 'flags', 'timestamp'],
                     rvlimit: 150
                  }];
                 };
                } else {
                 const response = jQuery.Deferred();
                  queries = [{
                    action: 'query',
                    prop: ['revisions', 'info', 'contributors'],
                    titles: paramArtikel || getCurrentTitle(),
                     rvlimit: 150,
                    rvprop: ['userid', 'user', 'flags', 'timestamp'],
                  }];
                 }
                 const response = $.Deferred();
                 function continueQueryOrResolve(result, query, pages, lastContinue) {
                 function continueQueryOrResolve(result, query, pages, lastContinue) {
                     api.get({...query, ...lastContinue})
                     api.get({...query, ...lastContinue})
Zeile 53: Zeile 73:
                         });
                         });
                 }
                 }
                queries.reduce((result, query) => {
                  const newResult = $.Deferred();
                  continueQueryOrResolve(newResult, query, {}, null);
                 
                  return newResult.then((b) => {
                    return result.then((a) => ([...a, ...b]));
                  });
                }, jQuery.Deferred())
                .then((data) => { response.resolve(data);});
                 continueQueryOrResolve(response, query, {}, null);
                 continueQueryOrResolve(response, query, {}, null);
                 response
                 response

Version vom 14. November 2021, 22:32 Uhr