Prtksxna has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/344588 )
Change subject: Rename CategorySelector to CategorySelectorWidget ...................................................................... Rename CategorySelector to CategorySelectorWidget For consistency. Bug: T161285 Change-Id: I7c9e0089ba6b77f4bc73e14b989630487f6f3174 --- M resources/Resources.php R resources/src/mediawiki.widgets/mw.widgets.CategorySelectorWidget.js 2 files changed, 60 insertions(+), 44 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/88/344588/1 diff --git a/resources/Resources.php b/resources/Resources.php index b9fcb51..7e79586 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -2355,9 +2355,27 @@ 'targets' => [ 'desktop', 'mobile' ], ], 'mediawiki.widgets.CategorySelector' => [ + 'deprecated' => 'Use of the "mediawiki.widgets.CategorySelector" module is deprecated. Use "mediawiki.widgets.CategorySelectorWidget instead. (See T161285)', 'scripts' => [ 'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js', - 'resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js', + 'resources/src/mediawiki.widgets/mw.widgets.CategorySelectorWidget.js', + ], + 'dependencies' => [ + 'oojs-ui-widgets', + 'mediawiki.api', + 'mediawiki.ForeignApi', + 'mediawiki.Title', + ], + 'messages' => [ + 'red-link-title', + 'mw-widgets-categoryselector-add-category-placeholder' + ], + 'targets' => [ 'desktop', 'mobile' ], + ], + 'mediawiki.widgets.CategorySelectorWidget' => [ + 'scripts' => [ + 'resources/src/mediawiki.widgets/mw.widgets.CategoryCapsuleItemWidget.js', + 'resources/src/mediawiki.widgets/mw.widgets.CategorySelectorWidget.js', ], 'dependencies' => [ 'oojs-ui-widgets', diff --git a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js b/resources/src/mediawiki.widgets/mw.widgets.CategorySelectorWidget.js similarity index 74% rename from resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js rename to resources/src/mediawiki.widgets/mw.widgets.CategorySelectorWidget.js index 422c048..01f5a0e 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.CategorySelector.js +++ b/resources/src/mediawiki.widgets/mw.widgets.CategorySelectorWidget.js @@ -1,31 +1,30 @@ /*! - * MediaWiki Widgets - CategorySelector class. + * MediaWiki Widgets - CategorySelectorWidget class. * * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt */ ( function ( $, mw ) { - var CSP, - NS_CATEGORY = mw.config.get( 'wgNamespaceIds' ).category; + var NS_CATEGORY = mw.config.get( 'wgNamespaceIds' ).category; /** * Category selector widget. Displays an OO.ui.CapsuleMultiselectWidget * and autocompletes with available categories. * - * mw.loader.using( 'mediawiki.widgets.CategorySelector', function () { - * var selector = new mw.widgets.CategorySelector( { + * mw.loader.using( 'mediawiki.widgets.CategorySelectorWidget', function () { + * var selector = new mw.widgets.CategorySelectorWidget( { * searchTypes: [ - * mw.widgets.CategorySelector.SearchType.OpenSearch, - * mw.widgets.CategorySelector.SearchType.InternalSearch + * mw.widgets.CategorySelectorWidget.SearchType.OpenSearch, + * mw.widgets.CategorySelectorWidget.SearchType.InternalSearch * ] * } ); * * $( 'body' ).append( selector.$element ); * - * selector.setSearchTypes( [ mw.widgets.CategorySelector.SearchType.SubCategories ] ); + * selector.setSearchTypes( [ mw.widgets.CategorySelectorWidget.SearchType.SubCategories ] ); * } ); * - * @class mw.widgets.CategorySelector + * @class mw.widgets.CategorySelectorWidget * @uses mw.Api * @extends OO.ui.CapsuleMultiselectWidget * @mixins OO.ui.mixin.PendingElement @@ -34,21 +33,21 @@ * @param {Object} [config] Configuration options * @cfg {mw.Api} [api] Instance of mw.Api (or subclass thereof) to use for queries * @cfg {number} [limit=10] Maximum number of results to load - * @cfg {mw.widgets.CategorySelector.SearchType[]} [searchTypes=[mw.widgets.CategorySelector.SearchType.OpenSearch]] + * @cfg {mw.widgets.CategorySelectorWidget.SearchType[]} [searchTypes=[mw.widgets.CategorySelectorWidget.SearchType.OpenSearch]] * Default search API to use when searching. */ - function CategorySelector( config ) { + mw.widgets.CategorySelectorWidget = function MWCategorySelectorWidget( config ) { // Config initialization config = $.extend( { limit: 10, - searchTypes: [ CategorySelector.SearchType.OpenSearch ] + searchTypes: [ mw.widgets.CategorySelectorWidget.SearchType.OpenSearch ] }, config ); this.limit = config.limit; this.searchTypes = config.searchTypes; this.validateSearchTypes(); // Parent constructor - mw.widgets.CategorySelector.parent.call( this, $.extend( true, {}, config, { + mw.widgets.CategorySelectorWidget.parent.call( this, $.extend( true, {}, config, { menu: { filterFromInput: false }, @@ -67,13 +66,12 @@ // Initialize this.api = config.api || new mw.Api(); this.searchCache = {}; - } + }; /* Setup */ - OO.inheritClass( CategorySelector, OO.ui.CapsuleMultiselectWidget ); - OO.mixinClass( CategorySelector, OO.ui.mixin.PendingElement ); - CSP = CategorySelector.prototype; + OO.inheritClass( mw.widgets.CategorySelectorWidget, OO.ui.CapsuleMultiselectWidget ); + OO.mixinClass( mw.widgets.CategorySelectorWidget, OO.ui.mixin.PendingElement ); /* Methods */ @@ -85,7 +83,7 @@ * @private * @method */ - CSP.updateMenuItems = function () { + mw.widgets.CategorySelectorWidget.prototype.updateMenuItems = function () { this.getMenu().clearItems(); this.getNewMenuItems( this.$input.val() ).then( function ( items ) { var existingItems, filteredItems, @@ -121,8 +119,8 @@ /** * @inheritdoc */ - CSP.clearInput = function () { - CategorySelector.parent.prototype.clearInput.call( this ); + mw.widgets.CategorySelectorWidget.prototype.clearInput = function () { + mw.widgets.CategorySelectorWidget.parent.prototype.clearInput.call( this ); // Abort all pending requests, we won't need their results this.api.abort(); }; @@ -135,7 +133,7 @@ * @param {string} input The input used to prefix search categories * @return {jQuery.Promise} Resolves with an array of categories */ - CSP.getNewMenuItems = function ( input ) { + mw.widgets.CategorySelectorWidget.prototype.getNewMenuItems = function ( input ) { var i, promises = [], deferred = $.Deferred(); @@ -189,7 +187,7 @@ /** * @inheritdoc */ - CSP.createItemWidget = function ( data ) { + mw.widgets.CategorySelectorWidget.prototype.createItemWidget = function ( data ) { var title = mw.Title.makeTitle( NS_CATEGORY, data ); if ( !title ) { return null; @@ -203,7 +201,7 @@ /** * @inheritdoc */ - CSP.getItemFromData = function ( data ) { + mw.widgets.CategorySelectorWidget.prototype.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. var title = mw.Title.makeTitle( NS_CATEGORY, data ); @@ -219,9 +217,9 @@ * @private * @return {boolean} */ - CSP.validateSearchTypes = function () { + mw.widgets.CategorySelectorWidget.prototype.validateSearchTypes = function () { var validSearchTypes = false, - searchTypeEnumCount = Object.keys( CategorySelector.SearchType ).length; + searchTypeEnumCount = Object.keys( mw.widgets.CategorySelectorWidget.SearchType ).length; // Check if all values are in the SearchType enum validSearchTypes = this.searchTypes.every( function ( searchType ) { @@ -232,20 +230,20 @@ throw new Error( 'Unknown searchType in searchTypes' ); } - // If the searchTypes has CategorySelector.SearchType.SubCategories + // If the searchTypes has mw.widgets.CategorySelectorWidget.SearchType.SubCategories // it can be the only search type. - if ( this.searchTypes.indexOf( CategorySelector.SearchType.SubCategories ) > -1 && + if ( this.searchTypes.indexOf( mw.widgets.CategorySelectorWidget.SearchType.SubCategories ) > -1 && this.searchTypes.length > 1 ) { - throw new Error( 'Can\'t have additional search types with CategorySelector.SearchType.SubCategories' ); + throw new Error( 'Can\'t have additional search types with mw.widgets.CategorySelectorWidget.SearchType.SubCategories' ); } - // If the searchTypes has CategorySelector.SearchType.ParentCategories + // If the searchTypes has mw.widgets.CategorySelectorWidget.SearchType.ParentCategories // it can be the only search type. - if ( this.searchTypes.indexOf( CategorySelector.SearchType.ParentCategories ) > -1 && + if ( this.searchTypes.indexOf( mw.widgets.CategorySelectorWidget.SearchType.ParentCategories ) > -1 && this.searchTypes.length > 1 ) { - throw new Error( 'Can\'t have additional search types with CategorySelector.SearchType.ParentCategories' ); + throw new Error( 'Can\'t have additional search types with mw.widgets.CategorySelectorWidget.SearchType.ParentCategories' ); } return true; @@ -254,9 +252,9 @@ /** * Sets and validates the value of `this.searchType`. * - * @param {mw.widgets.CategorySelector.SearchType[]} searchTypes + * @param {mw.widgets.CategorySelectorWidget.SearchType[]} searchTypes */ - CSP.setSearchTypes = function ( searchTypes ) { + mw.widgets.CategorySelectorWidget.prototype.setSearchTypes = function ( searchTypes ) { this.searchTypes = searchTypes; this.validateSearchTypes(); }; @@ -267,10 +265,10 @@ * @private * @method * @param {string} input The input used to prefix search categories - * @param {mw.widgets.CategorySelector.SearchType} searchType + * @param {mw.widgets.CategorySelectorWidget.SearchType} searchType * @return {jQuery.Promise} Resolves with an array of categories */ - CSP.searchCategories = function ( input, searchType ) { + mw.widgets.CategorySelectorWidget.prototype.searchCategories = function ( input, searchType ) { var deferred = $.Deferred(), cacheKey = input + searchType.toString(); @@ -280,7 +278,7 @@ } switch ( searchType ) { - case CategorySelector.SearchType.OpenSearch: + case mw.widgets.CategorySelectorWidget.SearchType.OpenSearch: this.api.get( { formatversion: 2, action: 'opensearch', @@ -293,7 +291,7 @@ } ).fail( deferred.reject.bind( deferred ) ); break; - case CategorySelector.SearchType.InternalSearch: + case mw.widgets.CategorySelectorWidget.SearchType.InternalSearch: this.api.get( { formatversion: 2, action: 'query', @@ -310,7 +308,7 @@ } ).fail( deferred.reject.bind( deferred ) ); break; - case CategorySelector.SearchType.Exists: + case mw.widgets.CategorySelectorWidget.SearchType.Exists: if ( input.indexOf( '|' ) > -1 ) { deferred.resolve( [] ); break; @@ -334,7 +332,7 @@ } ).fail( deferred.reject.bind( deferred ) ); break; - case CategorySelector.SearchType.SubCategories: + case mw.widgets.CategorySelectorWidget.SearchType.SubCategories: if ( input.indexOf( '|' ) > -1 ) { deferred.resolve( [] ); break; @@ -355,7 +353,7 @@ } ).fail( deferred.reject.bind( deferred ) ); break; - case CategorySelector.SearchType.ParentCategories: + case mw.widgets.CategorySelectorWidget.SearchType.ParentCategories: if ( input.indexOf( '|' ) > -1 ) { deferred.resolve( [] ); break; @@ -393,10 +391,10 @@ }; /** - * @enum mw.widgets.CategorySelector.SearchType + * @enum mw.widgets.CategorySelectorWidget.SearchType * Types of search available. */ - CategorySelector.SearchType = { + mw.widgets.CategorySelectorWidget.SearchType = { /** Search using action=opensearch */ OpenSearch: 0, @@ -413,5 +411,5 @@ ParentCategories: 4 }; - mw.widgets.CategorySelector = CategorySelector; + mw.widgets.CategorySelector = mw.widgets.CategorySelectorWidget; }( jQuery, mediaWiki ) ); -- To view, visit https://gerrit.wikimedia.org/r/344588 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7c9e0089ba6b77f4bc73e14b989630487f6f3174 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Prtksxna <psax...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits