mediawiki-extensions-Visual.../modules/ve/ui/dialogs/ve.ui.MWMediaInsertDialog.js
Inez Korczyński 537e431466 Set href attribute of newly inserted image to image title
I'm not sure if that's the long term solution, however for now it fixes bug 49844 and bug 49848.

Change-Id: I75dbbfdd248a6f5696252ef3a2d7ca6ede0fa156
2013-06-25 15:09:09 -07:00

94 lines
2.2 KiB
JavaScript

/*!
* VisualEditor user interface MediaInsertDialog class.
*
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/*global mw */
/**
* @class
* @abstract
* @extends ve.ui.Dialog
*
* @constructor
* @param {ve.ui.Surface} surface
* @param {Object} [config] Config options
*/
ve.ui.MWMediaInsertDialog = function VeUiMWMediaInsertDialog( surface, config ) {
// Parent constructor
ve.ui.Dialog.call( this, surface, config );
// Properties
this.item = null;
};
/* Inheritance */
ve.inheritClass( ve.ui.MWMediaInsertDialog, ve.ui.Dialog );
/* Static Properties */
ve.ui.MWMediaInsertDialog.static.titleMessage = 'visualeditor-dialog-media-insert-title';
ve.ui.MWMediaInsertDialog.static.icon = 'picture';
/* Methods */
ve.ui.MWMediaInsertDialog.prototype.onSelect = function ( item ) {
this.item = item;
this.applyButton.setDisabled( item === null );
};
ve.ui.MWMediaInsertDialog.prototype.onClose = function ( action ) {
var info;
// Parent method
ve.ui.Dialog.prototype.onClose.call( this );
if ( action === 'apply' ) {
info = this.item.imageinfo[0];
this.surface.getModel().getFragment().insertContent( [
{
'type': 'mwBlockImage',
'attributes': {
'type': 'thumb',
'align': 'right',
//'href': info.descriptionurl,
'href': './' + this.item.title,
'src': info.thumburl,
'width': info.thumbwidth,
'height': info.thumbheight,
'resource': './' + this.item.title
}
},
{ 'type': 'mwImageCaption' },
{ 'type': '/mwImageCaption' },
{ 'type': '/mwBlockImage' }
] );
}
};
ve.ui.MWMediaInsertDialog.prototype.initialize = function () {
// Parent method
ve.ui.Dialog.prototype.initialize.call( this );
// Properties
this.media = new ve.ui.MWMediaSelectWidget( { '$$': this.frame.$$ } );
// Events
this.media.connect( this, { 'select': 'onSelect' } );
// Initialization
this.applyButton.setDisabled( true ).setLabel(
mw.msg( 'visualeditor-dialog-media-insert-button' )
);
this.media.$.addClass( 've-ui-mwMediaInsertDialog-select' );
this.$body.append( this.media.$ );
};
/* Registration */
ve.ui.dialogFactory.register( 'mwMediaInsert', ve.ui.MWMediaInsertDialog );