mw.widgets.TitleInputWidget: Don't bypass namespace choice with redirects
authorBartosz Dziewoński <matma.rex@gmail.com>
Wed, 22 Jul 2015 00:16:20 +0000 (02:16 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Wed, 22 Jul 2015 00:16:56 +0000 (02:16 +0200)
If 'namespace' was not null, and 'showRedirectTargets' was true (the default),
pages from namespaces other than the chosen one could appear in the
suggestions when a cross-namespace redirect from chosen to other namespace
was encountered. Prevent this.

Change-Id: Id863d002d598dc2429919e88dd2dde9e9836bb3d

resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js

index a9e4384..66b009f 100644 (file)
                                imageUrl: OO.getProp( suggestionPage, 'thumbnail', 'source' ),
                                description: OO.getProp( suggestionPage, 'terms', 'description' )
                        };
-                       titles.push( suggestionPage.title );
+
+                       // Throw away pages from wrong namespaces. This can happen when 'showRedirectTargets' is true
+                       // and we encounter a cross-namespace redirect.
+                       if ( this.namespace === null || this.namespace === suggestionPage.ns ) {
+                               titles.push( suggestionPage.title );
+                       }
 
                        redirects = redirectsTo[suggestionPage.title] || [];
                        for ( i = 0, len = redirects.length; i < len; i++ ) {