From: Bartosz DziewoƄski Date: Wed, 24 Aug 2016 20:21:42 +0000 (+0200) Subject: mw.widgets.CategoryCapsuleItemWidget: Handle titles not normalized in JS code X-Git-Tag: 1.31.0-rc.0~5835^2 X-Git-Url: http://git.cyclocoop.org/%22%20%20.%20generer_url_ecrire%28%22mots_tous%22%29%20.%20%22?a=commitdiff_plain;h=cabfbe0b7cd39e2644b289dea3b38beedda9bf64;p=lhc%2Fweb%2Fwiklou.git mw.widgets.CategoryCapsuleItemWidget: Handle titles not normalized in JS code Bug: T139130 Change-Id: If20941fb381a01aab01b971e1093a53b76c96f66 --- diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js b/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js index 946823d119..4d86cfd596 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js @@ -52,13 +52,21 @@ prop: [ 'info' ], titles: titles } ).done( function ( response ) { + var + normalized = {}, + pages = {}; + $.each( response.query.normalized || [], function ( index, data ) { + normalized[ data.fromencoded ? decodeURIComponent( data.from ) : data.from ] = data.to; + } ); $.each( response.query.pages, function ( index, page ) { - var title = new ForeignTitle( page.title ).getPrefixedText(); - cache.existenceCache[ title ] = !page.missing; - if ( !queue[ title ] ) { - // Debugging for T139130 - throw new Error( 'No queue for "' + title + '", requested "' + titles.join( '|' ) + '"' ); + pages[ page.title ] = !page.missing; + } ); + $.each( titles, function ( index, title ) { + var normalizedTitle = title; + while ( normalized[ normalizedTitle ] ) { + normalizedTitle = normalized[ normalizedTitle ]; } + cache.existenceCache[ title ] = pages[ normalizedTitle ]; queue[ title ].resolve( cache.existenceCache[ title ] ); } ); } );