mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-29 08:34:54 +00:00
ee954cbdd5
Aside from the confusion and differences between substr() and substring() and IE8 bugs with substr(), substr() was removed from the spec as of ECMAScript 5. It's been standardised in the optional Annex B section of ES5. Change-Id: I221ef6ae6956ce20dd9bb74510500f747d04c3b1
61 lines
1.7 KiB
JavaScript
61 lines
1.7 KiB
JavaScript
/*!
|
|
* VisualEditor UserInterface MWReferenceGroupInput class.
|
|
*
|
|
* @copyright 2011-2014 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* Creates an ve.ui.MWReferenceGroupInput object.
|
|
*
|
|
* @class
|
|
* @extends OO.ui.ComboBoxWidget
|
|
*
|
|
* @constructor
|
|
* @param {Object} [config] Configuration options
|
|
* @cfg {string} emptyGroupName Label of the placeholder item
|
|
*/
|
|
ve.ui.MWReferenceGroupInputWidget = function VeUiMWReferenceGroupInput( config ) {
|
|
config = config || {};
|
|
|
|
this.emptyGroupName = config.emptyGroupName;
|
|
|
|
// Parent constructor
|
|
OO.ui.ComboBoxWidget.call( this, $.extend( true, { input: { placeholder: config.emptyGroupName } }, config ) );
|
|
|
|
this.$element.addClass( 've-ui-mwReferenceGroupInputWidget' );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.inheritClass( ve.ui.MWReferenceGroupInputWidget, OO.ui.ComboBoxWidget );
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* Populate the reference group menu
|
|
*
|
|
* @param {ve.dm.InternalList} internalList Internal list with which to populate the menu
|
|
*/
|
|
ve.ui.MWReferenceGroupInputWidget.prototype.populateMenu = function ( internalList ) {
|
|
var placeholderGroupItem = new OO.ui.MenuOptionWidget( {
|
|
$: this.$,
|
|
data: '',
|
|
label: this.emptyGroupName,
|
|
flags: 'emptyGroupPlaceholder'
|
|
} );
|
|
this.menu.clearItems();
|
|
this.menu.addItems( [ placeholderGroupItem ].concat( $.map(
|
|
Object.keys( internalList.getNodeGroups() ),
|
|
function ( groupInternalName ) {
|
|
if ( groupInternalName.indexOf( 'mwReference/' ) === 0 ) {
|
|
var groupName = groupInternalName.slice( 'mwReference/'.length );
|
|
if ( groupName ) {
|
|
return new OO.ui.MenuOptionWidget( { data: groupName, label: groupName } );
|
|
}
|
|
}
|
|
}
|
|
) ), 0 );
|
|
this.menu.toggle( false );
|
|
};
|