mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-15 18:39:52 +00:00
530f5c05f5
Also appending both the default value and the example value to the field description. The input placeholder will show the default value, the example value, or nothing. Related to TemplateData change I9e2d66a805e25 but works without. Bug: T53049 Change-Id: I4e5e57546f6d3c22e778ba061a5344ddee085c17
163 lines
3.5 KiB
JavaScript
163 lines
3.5 KiB
JavaScript
/*!
|
|
* VisualEditor DataModel MWParameterModel class.
|
|
*
|
|
* @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* MediaWiki template parameter.
|
|
*
|
|
* @class
|
|
* @mixins OO.EventEmitter
|
|
*
|
|
* @constructor
|
|
* @param {ve.dm.MWTemplateModel} template Template
|
|
* @param {string} [name=''] Parameter name
|
|
* @param {string} [value=''] Parameter value
|
|
*/
|
|
ve.dm.MWParameterModel = function VeDmMWParameterModel( template, name, value ) {
|
|
// Mixin constructors
|
|
OO.EventEmitter.call( this );
|
|
|
|
// Properties
|
|
this.template = template;
|
|
this.originalName = name;
|
|
this.name = typeof name === 'string' ? name.trim() : '';
|
|
this.value = value || '';
|
|
this.id = this.template.getId() + '/' + name;
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.mixinClass( ve.dm.MWParameterModel, OO.EventEmitter );
|
|
|
|
/* Events */
|
|
|
|
/**
|
|
* @event change
|
|
*/
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* Check if parameter is required.
|
|
*
|
|
* @method
|
|
* @returns {boolean} Parameter is required
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.isRequired = function () {
|
|
return this.template.getSpec().isParameterRequired( this.name );
|
|
};
|
|
|
|
/**
|
|
* Check if parameter is suggested.
|
|
*
|
|
* @method
|
|
* @param {string} name Parameter name
|
|
* @returns {boolean} Parameter is suggested
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.isSuggested = function () {
|
|
return this.template.getSpec().isParameterSuggested( this.name );
|
|
};
|
|
|
|
/**
|
|
* Check if parameter is deprecated.
|
|
*
|
|
* @method
|
|
* @returns {boolean} Parameter is deprecated
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.isDeprecated = function () {
|
|
return this.template.getSpec().isParameterDeprecated( this.name );
|
|
};
|
|
|
|
/**
|
|
* Get template of which this parameter is part.
|
|
*
|
|
* @returns {ve.dm.MWTemplateModel} Template
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getTemplate = function () {
|
|
return this.template;
|
|
};
|
|
|
|
/**
|
|
* Get unique parameter ID within the transclusion.
|
|
*
|
|
* @returns {string} Unique ID
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getId = function () {
|
|
return this.id;
|
|
};
|
|
|
|
/**
|
|
* Get parameter name.
|
|
*
|
|
* @returns {string} Parameter name
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getName = function () {
|
|
return this.name;
|
|
};
|
|
|
|
/**
|
|
* Get parameter name.
|
|
*
|
|
* @returns {string} Parameter name
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getOriginalName = function () {
|
|
return this.originalName;
|
|
};
|
|
|
|
/**
|
|
* Get parameter value.
|
|
*
|
|
* @returns {string} Parameter value, or automatic value if there is none stored.
|
|
* Otherwise an empty string.
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getValue = function () {
|
|
return this.value || this.getAutoValue() || '';
|
|
};
|
|
|
|
/**
|
|
* Get default parameter value.
|
|
*
|
|
* @returns {string} Default parameter value
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getDefaultValue = function () {
|
|
return this.template.getSpec().getParameterDefaultValue( this.name );
|
|
};
|
|
|
|
/**
|
|
* Get default parameter value.
|
|
*
|
|
* @returns {string} Default parameter value
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getExampleValue = function () {
|
|
return this.template.getSpec().getParameterExampleValue( this.name );
|
|
};
|
|
|
|
/**
|
|
* Get automatic parameter value.
|
|
*
|
|
* @returns {string} Automatic parameter name.
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.getAutoValue = function () {
|
|
return this.template.getSpec().getParameterAutoValue( this.name );
|
|
};
|
|
|
|
/**
|
|
* Set parameter value.
|
|
*
|
|
* @param {string} value Parameter value
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.setValue = function ( value ) {
|
|
this.value = value;
|
|
this.emit( 'change' );
|
|
};
|
|
|
|
/**
|
|
* Remove parameter from template.
|
|
*/
|
|
ve.dm.MWParameterModel.prototype.remove = function () {
|
|
this.template.removeParameter( this );
|
|
};
|