jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/393948 )
Change subject: Handle 'config' parameters like in OOjs UI
......................................................................
Handle 'config' parameters like in OOjs UI
Previous code was perfectly correct, but I think it makes sense to change
it for consistency with OOjs UI and with code in MediaWiki and other
extensions where we use custom widgets.
* We never need to access the "original" config, so there's no need for
a separate variable for config with the default options. (Also, I hate
the prefix 'my' in variable names, it makes me think of poorly written
tutorials.)
* `$.extend()` will ignore parameters that are undefined, so no need to
pass `config || {}` to it.
* Use `!== undefined` instead of `hasOwnProperty` to check for options
that are not given.
Change-Id: I8f549932d79b9bc5230984fdba8ff7e89b221dcf
---
M modules/ui/ext.advancedSearch.ArbitraryWordInput.js
M modules/ui/ext.advancedSearch.ExpandablePane.js
M modules/ui/ext.advancedSearch.FileTypeSelection.js
M modules/ui/ext.advancedSearch.NamespaceFilters.js
M modules/ui/ext.advancedSearch.NamespacePresets.js
M modules/ui/ext.advancedSearch.SearchPreview.js
M modules/ui/ext.advancedSearch.TemplateSearch.js
M modules/ui/ext.advancedSearch.TextInput.js
8 files changed, 32 insertions(+), 30 deletions(-)
Approvals:
WMDE-Fisch: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ui/ext.advancedSearch.ArbitraryWordInput.js
b/modules/ui/ext.advancedSearch.ArbitraryWordInput.js
index c68fb4f..7062b29 100644
--- a/modules/ui/ext.advancedSearch.ArbitraryWordInput.js
+++ b/modules/ui/ext.advancedSearch.ArbitraryWordInput.js
@@ -14,6 +14,8 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.ArbitraryWordInput = function ( store, config
) {
+ config = $.extend( {}, config );
+
this.store = store;
this.optionId = config.optionId;
this.placeholderText = config.placeholder || '';
@@ -22,7 +24,7 @@
mw.libs.advancedSearch.ui.ArbitraryWordInput.parent.call(
this,
- $.extend( { allowArbitrary: true }, config || {} )
+ $.extend( { allowArbitrary: true }, config )
);
this.input.$input.on( 'input', this.buildTagsFromInput.bind(
this ) );
diff --git a/modules/ui/ext.advancedSearch.ExpandablePane.js
b/modules/ui/ext.advancedSearch.ExpandablePane.js
index c895320..48cd50e 100644
--- a/modules/ui/ext.advancedSearch.ExpandablePane.js
+++ b/modules/ui/ext.advancedSearch.ExpandablePane.js
@@ -26,10 +26,10 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.ExpandablePane = function ( config ) {
- var myConfig = $.extend( { data: this.STATE_CLOSED }, config );
+ config = $.extend( { data: this.STATE_CLOSED }, config );
- mw.libs.advancedSearch.ui.ExpandablePane.parent.call( this,
myConfig );
- OO.ui.mixin.IndicatorElement.call( this, { indicator:
getIndicatorNameForState( myConfig.data ) } );
+ mw.libs.advancedSearch.ui.ExpandablePane.parent.call( this,
config );
+ OO.ui.mixin.IndicatorElement.call( this, { indicator:
getIndicatorNameForState( config.data ) } );
var self = this;
this.$btn = $( '<div>' )
@@ -56,8 +56,8 @@
this.$dependentPane = $( '<div>' )
.addClass( 'mw-advancedSearch-expandablePane-pane' );
- if ( config.hasOwnProperty( 'tabIndex' ) ) {
- this.$btn.prop( 'tabindex', parseInt( config.tabIndex )
);
+ if ( config.tabIndex !== undefined ) {
+ this.$btn.prop( 'tabindex', Number( config.tabIndex ) );
}
if ( config.$buttonLabel ) {
@@ -74,7 +74,7 @@
this.$element.addClass( 'mw-advancedSearch-expandablePane' );
this.$element.append( this.$btn, this.$dependentPane );
- this.notifyChildInputVisibility( myConfig.data ===
this.STATE_OPEN );
+ this.notifyChildInputVisibility( config.data ===
this.STATE_OPEN );
};
OO.inheritClass( mw.libs.advancedSearch.ui.ExpandablePane, OO.ui.Widget
);
diff --git a/modules/ui/ext.advancedSearch.FileTypeSelection.js
b/modules/ui/ext.advancedSearch.FileTypeSelection.js
index 404b4ec..e3d2b10 100644
--- a/modules/ui/ext.advancedSearch.FileTypeSelection.js
+++ b/modules/ui/ext.advancedSearch.FileTypeSelection.js
@@ -21,12 +21,12 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.FileTypeSelection = function ( store,
optionProvider, config ) {
- var myConfig = $.extend( { options: getOptions( optionProvider
) }, config );
+ config = $.extend( { options: getOptions( optionProvider ) },
config );
this.store = store;
this.optionId = config.optionId;
// Parent constructor
- mw.libs.advancedSearch.ui.FileTypeSelection.parent.call( this,
myConfig );
+ mw.libs.advancedSearch.ui.FileTypeSelection.parent.call( this,
config );
store.connect( this, { update: 'onStoreUpdate' } );
diff --git a/modules/ui/ext.advancedSearch.NamespaceFilters.js
b/modules/ui/ext.advancedSearch.NamespaceFilters.js
index 1842632..adcf5b6 100644
--- a/modules/ui/ext.advancedSearch.NamespaceFilters.js
+++ b/modules/ui/ext.advancedSearch.NamespaceFilters.js
@@ -16,7 +16,7 @@
* @cfg {Object} [namespaces] Namespace id => Namespace label (similar
to mw.config.get( 'wgFormattedNamespaces' ) )
*/
mw.libs.advancedSearch.ui.NamespaceFilters = function ( store, config )
{
- var myConfig = $.extend( {
+ config = $.extend( {
namespaces: {},
namespaceIcons: {
2: 'userAvatar',
@@ -29,14 +29,14 @@
},
options: [],
classes: []
- }, config || {} );
+ }, config );
- this.namespaces = myConfig.namespaces;
- myConfig.options = myConfig.options.concat(
this.createNamespaceOptions( this.namespaces ) );
- myConfig.classes.push( 'mw-advancedSearch-namespaceFilter' );
- this.setNamespaceIcons( myConfig.namespaceIcons );
+ this.namespaces = config.namespaces;
+ config.options = config.options.concat(
this.createNamespaceOptions( this.namespaces ) );
+ config.classes.push( 'mw-advancedSearch-namespaceFilter' );
+ this.setNamespaceIcons( config.namespaceIcons );
- mw.libs.advancedSearch.ui.NamespaceFilters.parent.call( this,
myConfig );
+ mw.libs.advancedSearch.ui.NamespaceFilters.parent.call( this,
config );
this.$namespaceContainer = $( '<span>' ).addClass(
'mw-advancedSearch-namespaceContainer' );
this.$element.append( this.$namespaceContainer );
diff --git a/modules/ui/ext.advancedSearch.NamespacePresets.js
b/modules/ui/ext.advancedSearch.NamespacePresets.js
index 8492d45..b83cfb3 100644
--- a/modules/ui/ext.advancedSearch.NamespacePresets.js
+++ b/modules/ui/ext.advancedSearch.NamespacePresets.js
@@ -34,17 +34,17 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.NamespacePresets = function ( store, config )
{
- var myConfig = $.extend( {
+ config = $.extend( {
presets: {}
- }, config || {} );
+ }, config );
config.presets = groomPresets( config.presets );
- myConfig.options = prepareOptions( config.presets );
+ config.options = prepareOptions( config.presets );
this.store = store;
- this.presets = myConfig.presets;
+ this.presets = config.presets;
- mw.libs.advancedSearch.ui.NamespacePresets.parent.call( this,
myConfig );
+ mw.libs.advancedSearch.ui.NamespacePresets.parent.call( this,
config );
// Using undocumented internals because this.on does not work,
see https://phabricator.wikimedia.org/T168735
this.checkboxMultiselectWidget.on( 'change',
this.updateStoreFromPresets, [], this );
diff --git a/modules/ui/ext.advancedSearch.SearchPreview.js
b/modules/ui/ext.advancedSearch.SearchPreview.js
index e54a55f..ec7e94a 100644
--- a/modules/ui/ext.advancedSearch.SearchPreview.js
+++ b/modules/ui/ext.advancedSearch.SearchPreview.js
@@ -33,16 +33,16 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.SearchPreview = function ( store, config ) {
- var myConfig = $.extend( {
+ config = $.extend( {
previewOptions: [],
data: true
- }, config || {} );
+ }, config );
this.store = store;
- this.previewOptions = myConfig.previewOptions;
+ this.previewOptions = config.previewOptions;
store.connect( this, { update: 'onStoreUpdate' } );
- mw.libs.advancedSearch.ui.SearchPreview.parent.call( this,
myConfig );
+ mw.libs.advancedSearch.ui.SearchPreview.parent.call( this,
config );
this.label = new OO.ui.LabelWidget( {
label: config.label,
diff --git a/modules/ui/ext.advancedSearch.TemplateSearch.js
b/modules/ui/ext.advancedSearch.TemplateSearch.js
index dba7f90..07cdd32 100644
--- a/modules/ui/ext.advancedSearch.TemplateSearch.js
+++ b/modules/ui/ext.advancedSearch.TemplateSearch.js
@@ -14,7 +14,7 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.TemplateSearch = function ( store, config ) {
- var myConfig = $.extend( {}, config || {}, {
+ config = $.extend( {}, config, {
allowArbitrary: true,
input: {
autocomplete: false
@@ -26,14 +26,14 @@
this.store.connect( this, { update: 'onStoreUpdate' } );
- mw.libs.advancedSearch.ui.TemplateSearch.parent.call( this,
myConfig );
+ mw.libs.advancedSearch.ui.TemplateSearch.parent.call( this,
config );
this.$input = this.input.$input;
this.input.connect( this, { change: 'onLookupInputChange' } );
// Mixin constructor
- OO.ui.mixin.LookupElement.call( this, myConfig );
+ OO.ui.mixin.LookupElement.call( this, config );
this.populateFromStore();
diff --git a/modules/ui/ext.advancedSearch.TextInput.js
b/modules/ui/ext.advancedSearch.TextInput.js
index e935076..3cdeff1 100644
--- a/modules/ui/ext.advancedSearch.TextInput.js
+++ b/modules/ui/ext.advancedSearch.TextInput.js
@@ -14,13 +14,13 @@
* @param {Object} config
*/
mw.libs.advancedSearch.ui.TextInput = function ( store, config ) {
- var myConfig = $.extend( {}, config || {} );
+ config = $.extend( {}, config );
this.store = store;
this.optionId = config.optionId;
this.store.connect( this, { update: 'onStoreUpdate' } );
- mw.libs.advancedSearch.ui.TextInput.parent.call( this, myConfig
);
+ mw.libs.advancedSearch.ui.TextInput.parent.call( this, config );
this.populateFromStore();
};
--
To view, visit https://gerrit.wikimedia.org/r/393948
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I8f549932d79b9bc5230984fdba8ff7e89b221dcf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AdvancedSearch
Gerrit-Branch: master
Gerrit-Owner: Bartosz DziewoĆski <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Andrew-WMDE <[email protected]>
Gerrit-Reviewer: Gabriel Birke <[email protected]>
Gerrit-Reviewer: Kai Nissen (WMDE) <[email protected]>
Gerrit-Reviewer: Pablo Grass (WMDE) <[email protected]>
Gerrit-Reviewer: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: WMDE-Fisch <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits