mediawiki-extensions-Cite/modules/ve-cite/ve.ui.MWReferenceResultWidget.js

59 lines
1.7 KiB
JavaScript
Raw Normal View History

'use strict';
/*!
* VisualEditor UserInterface MWReferenceResultWidget class.
*
* @copyright 2011-2018 VisualEditor Team's Cite sub-team and others; see AUTHORS.txt
* @license MIT
*/
/**
* Creates an ve.ui.MWReferenceResultWidget object.
*
* @constructor
* @extends OO.ui.OptionWidget
* @param {Object} config
* @param {Object} config.item An item from the search index in ve.ui.MWReferenceSearchWidget
* @param {ve.dm.MWReferenceModel} config.item.reference
* @param {string} config.item.name
* @param {string} config.item.footnoteLabel e.g. "note 1"
* @param {OO.ui.Element} [config.reuseMenu]
*/
ve.ui.MWReferenceResultWidget = function VeUiMWReferenceResultWidget( config ) {
config = ve.extendObject( {
title: ve.msg( 'cite-ve-dialog-reference-useexisting-long-tool' )
}, config );
// Parent constructor
ve.ui.MWReferenceResultWidget.super.apply( this, arguments );
// Initialization
const item = config.item;
this.$element
.addClass( 've-ui-mwReferenceResultWidget' );
if ( item.reference.extendsRef ) {
this.$element.addClass( 've-ui-mwReferenceResultWidget-sub' );
}
const $footnoteLabel = $( '<div>' )
.addClass( 've-ui-mwReferenceResultWidget-footnote' )
.text( '[' + item.footnoteLabel + ']' );
const $name = $( '<div>' )
.addClass( 've-ui-mwReferenceResultWidget-name' )
.toggleClass( 've-ui-mwReferenceResultWidget-name-autogenerated', /^:\d+$/.test( item.name ) )
.text( item.name );
this.setLabel( $footnoteLabel.add( $name ).add( item.$refContent ) );
this.setData( item.reference );
if ( mw.config.get( 'wgCiteBookReferencing' ) && config.reuseMenu ) {
this.$element.append( config.reuseMenu.$element );
}
};
/* Inheritance */
OO.inheritClass( ve.ui.MWReferenceResultWidget, OO.ui.OptionWidget );