From 3b6adf398722b9fdd7984debc2ffe29d0bd8be87 Mon Sep 17 00:00:00 2001 From: Prateek Saxena Date: Thu, 8 Mar 2018 11:39:07 +0530 Subject: [PATCH] mw.widgets.CategoryMultiselectWidget use TagMultiselectWidget MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit …also rename mw.widgets.CategoryCapsuleItemWidget to mw.widgets.CategoryTagItemWidget. Bug: T183299 Depends-on: Ia0732faff2d98f1ca07da5fbe1f2abc27f71a617 Change-Id: I2146d8ce6505dae55750b4b12bd806b83796c1c5 --- resources/Resources.php | 2 +- .../mw.widgets.CategoryMultiselectWidget.js | 22 +++++++++---------- ...js => mw.widgets.CategoryTagItemWidget.js} | 20 +++++++++-------- 3 files changed, 22 insertions(+), 22 deletions(-) rename resources/src/mediawiki.widgets/{mw.widgets.CategoryCapsuleItemWidget.js => mw.widgets.CategoryTagItemWidget.js} (88%) diff --git a/resources/Resources.php b/resources/Resources.php index 0595bb031c..15669e2daf 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -2607,7 +2607,7 @@ return [ ], 'mediawiki.widgets.CategoryMultiselectWidget' => [ 'scripts' => [ - 'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js', + 'resources/src/mediawiki.widgets/mw.widgets.CategoryTagItemWidget.js', 'resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js', ], 'dependencies' => [ diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js b/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js index 354fcd94bd..c5063797ed 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategoryMultiselectWidget.js @@ -9,7 +9,7 @@ NS_CATEGORY = mw.config.get( 'wgNamespaceIds' ).category; /** - * Category selector widget. Displays an OO.ui.CapsuleMultiselectWidget + * Category selector widget. Displays an OO.ui.MenuTagMultiselectWidget * and autocompletes with available categories. * * mw.loader.using( 'mediawiki.widgets.CategoryMultiselectWidget', function () { @@ -27,7 +27,7 @@ * * @class mw.widgets.CategoryMultiselectWidget * @uses mw.Api - * @extends OO.ui.CapsuleMultiselectWidget + * @extends OO.ui.MenuTagMultiselectWidget * @mixins OO.ui.mixin.PendingElement * * @constructor @@ -62,7 +62,7 @@ OO.ui.mixin.PendingElement.call( this, $.extend( {}, config, { $pending: this.$handle } ) ); // Event handler to call the autocomplete methods - this.$input.on( 'change input cut paste', OO.ui.debounce( this.updateMenuItems.bind( this ), 100 ) ); + this.input.$input.on( 'change input cut paste', OO.ui.debounce( this.updateMenuItems.bind( this ), 100 ) ); // Initialize this.api = config.api || new mw.Api(); @@ -71,7 +71,7 @@ /* Setup */ - OO.inheritClass( mw.widgets.CategoryMultiselectWidget, OO.ui.CapsuleMultiselectWidget ); + OO.inheritClass( mw.widgets.CategoryMultiselectWidget, OO.ui.MenuTagMultiselectWidget ); OO.mixinClass( mw.widgets.CategoryMultiselectWidget, OO.ui.mixin.PendingElement ); /* Methods */ @@ -86,12 +86,12 @@ */ mw.widgets.CategoryMultiselectWidget.prototype.updateMenuItems = function () { this.getMenu().clearItems(); - this.getNewMenuItems( this.$input.val() ).then( function ( items ) { + this.getNewMenuItems( this.input.$input.val() ).then( function ( items ) { var existingItems, filteredItems, menu = this.getMenu(); // Never show the menu if the input lost focus in the meantime - if ( !this.$input.is( ':focus' ) ) { + if ( !this.input.$input.is( ':focus' ) ) { return; } @@ -188,12 +188,10 @@ /** * @inheritdoc */ - mw.widgets.CategoryMultiselectWidget.prototype.createItemWidget = function ( data ) { + mw.widgets.CategoryMultiselectWidget.prototype.createTagItemWidget = function ( data ) { var title = mw.Title.makeTitle( NS_CATEGORY, data ); - if ( !title ) { - return null; - } - return new mw.widgets.CategoryCapsuleItemWidget( { + + return new mw.widgets.CategoryTagItemWidget( { apiUrl: this.api.apiUrl || undefined, title: title } ); @@ -204,7 +202,7 @@ */ mw.widgets.CategoryMultiselectWidget.prototype.findItemFromData = 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. + // #createItemWidget and CategoryTagItemWidget will do, otherwise we won't find duplicates. var title = mw.Title.makeTitle( NS_CATEGORY, data ); if ( !title ) { return null; diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js b/resources/src/mediawiki.widgets/mw.widgets.CategoryTagItemWidget.js similarity index 88% rename from resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js rename to resources/src/mediawiki.widgets/mw.widgets.CategoryTagItemWidget.js index 17da7d85f0..f0b2d44e35 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategoryTagItemWidget.js @@ -1,5 +1,5 @@ /*! - * MediaWiki Widgets - CategoryCapsuleItemWidget class. + * MediaWiki Widgets - CategoryTagItemWidget class. * * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt @@ -115,19 +115,19 @@ * Category selector capsule item widget. Extends OO.ui.CapsuleItemWidget with the ability to link * to the given page, and to show its existence status (i.e., whether it is a redlink). * - * @class mw.widgets.CategoryCapsuleItemWidget + * @class mw.widgets.CategoryTagItemWidget * @uses mw.Api - * @extends OO.ui.CapsuleItemWidget + * @extends OO.ui.TagItemWidget * * @constructor * @param {Object} config Configuration options * @cfg {mw.Title} title Page title to use (required) * @cfg {string} [apiUrl] API URL, if not the current wiki's API */ - mw.widgets.CategoryCapsuleItemWidget = function MWWCategoryCapsuleItemWidget( config ) { + mw.widgets.CategoryTagItemWidget = function MWWCategoryTagItemWidget( config ) { var widget = this; // Parent constructor - mw.widgets.CategoryCapsuleItemWidget.parent.call( this, $.extend( { + mw.widgets.CategoryTagItemWidget.parent.call( this, $.extend( { data: config.title.getMainText(), label: config.title.getMainText() }, config ) ); @@ -139,7 +139,7 @@ .text( this.label ) .attr( 'target', '_blank' ) .on( 'click', function ( e ) { - // CapsuleMultiselectWidget really wants to prevent you from clicking the link, don't let it + // TagMultiselectWidget really wants to prevent you from clicking the link, don't let it e.stopPropagation(); } ); @@ -161,7 +161,7 @@ /* Setup */ - OO.inheritClass( mw.widgets.CategoryCapsuleItemWidget, OO.ui.CapsuleItemWidget ); + OO.inheritClass( mw.widgets.CategoryTagItemWidget, OO.ui.TagItemWidget ); /* Static Properties */ @@ -172,7 +172,7 @@ * @inheritable * @property {Object} */ - mw.widgets.CategoryCapsuleItemWidget.static.pageExistenceCaches = { + mw.widgets.CategoryTagItemWidget.static.pageExistenceCaches = { '': new PageExistenceCache() }; @@ -184,7 +184,7 @@ * @private * @param {boolean} missing Whether the page is missing (does not exist) */ - mw.widgets.CategoryCapsuleItemWidget.prototype.setMissing = function ( missing ) { + mw.widgets.CategoryTagItemWidget.prototype.setMissing = function ( missing ) { var title = new ForeignTitle( this.title.getPrefixedText() ), // HACK prefix = this.apiUrl.replace( '/w/api.php', '' ); // HACK @@ -204,4 +204,6 @@ } }; + // For backwards compatibility. See T183299. + mw.widgets.CategoryCapsuleItemWidget = mw.widgets.CategoryTagItemWidget; }( jQuery, mediaWiki ) ); -- 2.20.1