From: Bartosz DziewoƄski Date: Tue, 22 Dec 2015 17:19:00 +0000 (+0100) Subject: mw.widgets.CategorySelector: Prevent duplicates X-Git-Tag: 1.31.0-rc.0~8275^2~1 X-Git-Url: https://git.cyclocoop.org/admin/%7B%7Blocalurl:Special:UserLogin%7D%7D?a=commitdiff_plain;h=e056773b5acc0f13a47a03d4d90668752c4d7238;p=lhc%2Fweb%2Fwiklou.git 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 --- 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`. *