Bartosz Dziewoński has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/260614

Change subject: mw.widgets.CategorySelector: Don't lose namespace-like prefixes 
from category names
......................................................................

mw.widgets.CategorySelector: Don't lose namespace-like prefixes from category 
names

Also, handle queries which return non-category results.

Bug: T122221
Change-Id: I205d2fe52a10bd3adcf0235108005dd96811ae65
---
M resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
1 file changed, 20 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/14/260614/1

diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js 
b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
index 1e65da5..ec38e2b 100644
--- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
+++ b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js
@@ -150,22 +150,30 @@
                this.pushPending();
 
                $.when.apply( $, promises ).done( function () {
-                       var categories, categoryNames,
+                       var categoryNames,
                                allData = [],
                                dataSets = Array.prototype.slice.apply( 
arguments );
 
                        // Collect values from all results
                        allData = allData.concat.apply( allData, dataSets );
 
-                       // Remove duplicates
-                       categories = allData.filter( function ( value, index, 
self ) {
-                               return self.indexOf( value ) === index;
-                       } );
-
-                       // Get titles
-                       categoryNames = categories.map( function ( name ) {
-                               return mw.Title.newFromText( name, NS_CATEGORY 
).getMainText();
-                       } );
+                       categoryNames = allData
+                               // Remove duplicates
+                               .filter( function ( value, index, self ) {
+                                       return self.indexOf( value ) === index;
+                               } )
+                               // Get Title objects
+                               .map( function ( name ) {
+                                       return mw.Title.newFromText( name );
+                               } )
+                               // Keep only titles from 'Category' namespace
+                               .filter( function ( title ) {
+                                       return title && title.getNamespaceId() 
=== NS_CATEGORY;
+                               } )
+                               // Convert back to strings, strip 'Category:' 
prefix
+                               .map( function ( title ) {
+                                       return title.getMainText();
+                               } );
 
                        deferred.resolve( categoryNames );
 
@@ -180,7 +188,7 @@
        CSP.createItemWidget = function ( data ) {
                return new mw.widgets.CategoryCapsuleItemWidget( {
                        apiUrl: this.api.apiUrl || undefined,
-                       title: mw.Title.newFromText( data, NS_CATEGORY )
+                       title: mw.Title.makeTitle( NS_CATEGORY, data )
                } );
        };
 
@@ -190,7 +198,7 @@
        CSP.getItemFromData = function ( data ) {
                // This is a bit of a hack... We have to canonicalize the data 
in the same way that
                // #createItemWidget and CategoryCapsuleItemWidget will do, 
otherwise we won't find duplicates.
-               data = mw.Title.newFromText( data, NS_CATEGORY ).getMainText();
+               data = mw.Title.makeTitle( NS_CATEGORY, data ).getMainText();
                return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( 
this, data );
        };
 

-- 
To view, visit https://gerrit.wikimedia.org/r/260614
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I205d2fe52a10bd3adcf0235108005dd96811ae65
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <matma....@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to