From: Fomafix Date: Fri, 5 Feb 2016 22:21:51 +0000 (+0000) Subject: mediawiki.widgets: Use formatversion=2 for API requests X-Git-Tag: 1.31.0-rc.0~7985^2 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/banques/%7B%7B%20url_for%28%27admin_users%27%29%20%7D%7D?a=commitdiff_plain;h=7b57752e65c3cac62d973f43d1060b6bd0ab2a2f;p=lhc%2Fweb%2Fwiklou.git mediawiki.widgets: Use formatversion=2 for API requests With formatversion=2 the JSON response uses UTF-8 instead of escape sequences with hex for encoding of non-ASCII characters (e.g. "\u00e4" for "รค"). The processing of the response is adapted to the new format. Change-Id: I2fc0a696a8aa4486c497ac25763f8e4ece671a26 --- diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js b/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js index 6db7c12c74..29eaaad126 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js @@ -46,17 +46,16 @@ return; } this.currentRequest = this.api.get( { + formatversion: 2, action: 'query', prop: [ 'info' ], titles: titles } ).done( function ( response ) { - var index, curr, title; - for ( index in response.query.pages ) { - curr = response.query.pages[ index ]; - title = new ForeignTitle( curr.title ).getPrefixedText(); - this.existenceCache[ title ] = curr.missing === undefined; + $.each( response.query.pages, function ( index, page ) { + var title = new ForeignTitle( page.title ).getPrefixedText(); + this.existenceCache[ title ] = !page.missing; queue[ title ].resolve( this.existenceCache[ title ] ); - } + } ); }.bind( this ) ); }; diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js index c242b6c111..5d7d115a3e 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js @@ -265,6 +265,7 @@ switch ( searchType ) { case CategorySelector.SearchType.OpenSearch: this.api.get( { + formatversion: 2, action: 'opensearch', namespace: NS_CATEGORY, limit: this.limit, @@ -277,6 +278,7 @@ case CategorySelector.SearchType.InternalSearch: this.api.get( { + formatversion: 2, action: 'query', list: 'allpages', apnamespace: NS_CATEGORY, @@ -298,18 +300,18 @@ } this.api.get( { + formatversion: 2, action: 'query', prop: 'info', titles: 'Category:' + input } ).done( function ( res ) { - var page, - categories = []; + var categories = []; - for ( page in res.query.pages ) { - if ( parseInt( page, 10 ) > -1 ) { - categories.push( res.query.pages[ page ].title ); + $.each( res.query.pages, function ( index, page ) { + if ( !page.missing ) { + categories.push( page.title ); } - } + } ); deferred.resolve( categories ); } ).fail( deferred.reject.bind( deferred ) ); @@ -322,6 +324,7 @@ } this.api.get( { + formatversion: 2, action: 'query', list: 'categorymembers', cmtype: 'subcat', @@ -342,23 +345,23 @@ } this.api.get( { + formatversion: 2, action: 'query', prop: 'categories', cllimit: this.limit, titles: 'Category:' + input } ).done( function ( res ) { - var page, - categories = []; + var categories = []; - for ( page in res.query.pages ) { - if ( parseInt( page, 10 ) > -1 ) { - if ( $.isArray( res.query.pages[ page ].categories ) ) { - categories.push.apply( categories, res.query.pages[ page ].categories.map( function ( category ) { + $.each( res.query.pages, function ( index, page ) { + if ( !page.missing ) { + if ( $.isArray( page.categories ) ) { + categories.push.apply( categories, page.categories.map( function ( category ) { return category.title; } ) ); } } - } + } ); deferred.resolve( categories ); } ).fail( deferred.reject.bind( deferred ) );