mediawiki-extensions-Visual.../modules/ve-mw/dm/models/ve.dm.MWTransclusionContentModel.js
Trevor Parscal 92746ef3da Implement 'change' events in templates models
This will make generating live previews possible.

Changes:
* Add change events to template model.
* Set up connect/disconnect.

Also:
* Add missing fallback for getParameterLabel (Param#label is
  optional per the TemplateData spec).
* Implement getWikitext, to be used by the UI dialog later
  to create a preview from the wikitext.
* Correctly mark ve.dm.MWTransclusionNode#escapeParameter as
  being a static method.

Change-Id: Ie306ed03babf11568e954b1813ce5324f57d7f0e
2014-01-22 19:03:17 +00:00

70 lines
1.4 KiB
JavaScript

/*!
* VisualEditor DataModel MWTransclusionContentModel class.
*
* @copyright 2011-2014 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* MediaWiki transclusion content model.
*
* @class
* @extends ve.dm.MWTransclusionPartModel
*
* @constructor
* @param {ve.dm.MWTransclusionModel} transclusion Transclusion
* @param {string} [value] Content value
*/
ve.dm.MWTransclusionContentModel = function VeDmMWTransclusionContentModel( transclusion, value ) {
// Parent constructor
ve.dm.MWTransclusionPartModel.call( this, transclusion );
// Properties
this.value = value || '';
};
/* Inheritance */
OO.inheritClass( ve.dm.MWTransclusionContentModel, ve.dm.MWTransclusionPartModel );
/* Events */
/**
* @event change
*/
/* Methods */
/**
* Get content value.
*
* @returns {string} Content value
*/
ve.dm.MWTransclusionContentModel.prototype.getValue = function () {
return this.value;
};
/**
* Set content value.
*
* @param {string} value Content value
*/
ve.dm.MWTransclusionContentModel.prototype.setValue = function ( value ) {
this.value = value;
this.emit( 'change' );
};
/**
* @inheritdoc
*/
ve.dm.MWTransclusionContentModel.prototype.serialize = function () {
return this.value;
};
/**
* @inheritdoc
*/
ve.dm.MWTransclusionPartModel.prototype.getWikitext = function () {
return this.value;
};