From cabfbe0b7cd39e2644b289dea3b38beedda9bf64 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Wed, 24 Aug 2016 22:21:42 +0200 Subject: [PATCH] mw.widgets.CategoryCapsuleItemWidget: Handle titles not normalized in JS code Bug: T139130 Change-Id: If20941fb381a01aab01b971e1093a53b76c96f66 --- .../mw.widgets.CategoryCapsuleItemWidget.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) 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 ] ); } ); } ); -- 2.20.1