From e056773b5acc0f13a47a03d4d90668752c4d7238 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Tue, 22 Dec 2015 18:19:00 +0100 Subject: [PATCH] mw.widgets.CategorySelector: Prevent duplicates CapsuleMultiSelectWidget should take care of it by itself, but its logic is foiled by how we canonicalize the data. Bug: T122219 Change-Id: I2bdc3681dfde3080067ea12e5a036824d154a72f --- .../mediawiki.widgets/mw.widgets.CategorySelector.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js index 59f1d507db..1e65da5e50 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js @@ -184,6 +184,16 @@ } ); }; + /** + * @inheritdoc + */ + 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(); + return OO.ui.mixin.GroupElement.prototype.getItemFromData.call( this, data ); + }; + /** * Validates the values in `this.searchType`. * -- 2.20.1