diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2015-12-20 09:00:55 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2015-12-20 09:00:55 +0100 |
commit | a2190ac74dd4d7080b12bab90e552d7aa81209ef (patch) | |
tree | 8b31f38de9882d18df54cf8d9e0de74167a094eb /resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js | |
parent | 15e69f7b20b6596b9148030acce5b59993b95a45 (diff) | |
parent | 257401d8b2cf661adf36c84b0e3fd1cf85e33c22 (diff) |
Merge branch 'mw-1.26'
Diffstat (limited to 'resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js')
-rw-r--r-- | resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js b/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js new file mode 100644 index 00000000..0c6c15e4 --- /dev/null +++ b/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js @@ -0,0 +1,63 @@ +/*! + * MediaWiki Widgets - ComplexTitleInputWidget class. + * + * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ +( function ( $, mw ) { + + /** + * Like TitleInputWidget, but the namespace has to be input through a separate dropdown field. + * + * @class + * @extends OO.ui.Widget + * + * @constructor + * @param {Object} [config] Configuration options + * @cfg {Object} namespace Configuration for the NamespaceInputWidget dropdown with list of + * namespaces + * @cfg {Object} title Configuration for the TitleInputWidget text field + */ + mw.widgets.ComplexTitleInputWidget = function MwWidgetsComplexTitleInputWidget( config ) { + // Parent constructor + mw.widgets.ComplexTitleInputWidget.parent.call( this, config ); + + // Properties + this.namespace = new mw.widgets.NamespaceInputWidget( config.namespace ); + this.title = new mw.widgets.TitleInputWidget( $.extend( + {}, + config.title, + { + relative: true, + namespace: config.namespace.value || null + } + ) ); + + // Events + this.namespace.connect( this, { change: 'updateTitleNamespace' } ); + + // Initialization + this.$element + .addClass( 'mw-widget-complexTitleInputWidget' ) + .append( + this.namespace.$element, + this.title.$element + ); + this.updateTitleNamespace(); + }; + + /* Setup */ + + OO.inheritClass( mw.widgets.ComplexTitleInputWidget, OO.ui.Widget ); + + /* Methods */ + + /** + * Update the namespace to use for search suggestions of the title when the value of namespace + * dropdown changes. + */ + mw.widgets.ComplexTitleInputWidget.prototype.updateTitleNamespace = function () { + this.title.setNamespace( Number( this.namespace.getValue() ) ); + }; + +}( jQuery, mediaWiki ) ); |