Widget:Autorenbox: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
KKeine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
Zeile 54: Zeile 54:
                 const response = $.Deferred();
                 const response = $.Deferred();
                 function continueQueryOrResolve(result, query, pages, lastContinue) {
                 function continueQueryOrResolve(result, query, pages, lastContinue) {
                    api.get({...query, ...lastContinue})
                  api.get({...query, ...lastContinue})
                        .then((response) => {
                    .then((response) => {
                            const newPages = Object.values(response.query.pages).reduce((pages, page) => {
                      const newPages = Object.values(response.query.pages).reduce((pages, page) => {
                                pages[page.pageid] = {...pages[page.pageid], ...page};
                        pages[page.pageid] = {...pages[page.pageid], ...page};
                                return pages;
                        return pages;
                            }, pages);
                      }, pages);
                            if (response.continue !== undefined) {
                      if (response.continue !== undefined) {
                                continueQueryOrResolve(result, query, newPages, response.continue);
                        continueQueryOrResolve(result, query, newPages, response.continue);
                            } else if (response.batchcomplete !== undefined) {
                      } else if (response.batchcomplete !== undefined) {
                                result.resolve(newPages);
                        result.resolve(newPages);
                            }
                      }
                        });
                    });
                 }
                 }
                 queries.reduce((result, query) => {
                 queries.reduce((result, query) => {
                   const newResult = $.Deferred();
                   const newResult = $.Deferred();
                   continueQueryOrResolve(newResult, query, {}, null);
                   continueQueryOrResolve(newResult, query, {}, null);
                 
                   return newResult.then((b) => {
                   return newResult.then((b) => {
                     return result.then((a) => ([...a, ...b]));
                     return result.then((a) => ([...a, ...b]));
Zeile 76: Zeile 75:
                 }, jQuery.Deferred())
                 }, jQuery.Deferred())
                 .then((data) => { response.resolve(data);});
                 .then((data) => { response.resolve(data);});
                continueQueryOrResolve(response, query, {}, null);
 
                 response
                 response
                     .then((pages) => Object.values(pages))
                     .then((pages) => Object.values(pages))

Version vom 14. November 2021, 22:47 Uhr