Ejegg has uploaded a new change for review.
https://gerrit.wikimedia.org/r/247637
Change subject: Allow mixins to specify default parameter values
......................................................................
Allow mixins to specify default parameter values
When registering parameters for a mixin, the author may now specify
a default value with the defaultValue key.
Change-Id: I4e24e1c718bdf4f97293537674b357c5f1c61c16
---
M resources/infrastructure/campaignManager.js
1 file changed, 39 insertions(+), 33 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CentralNotice
refs/changes/37/247637/1
diff --git a/resources/infrastructure/campaignManager.js
b/resources/infrastructure/campaignManager.js
index 2d7ad7a..89660cb 100644
--- a/resources/infrastructure/campaignManager.js
+++ b/resources/infrastructure/campaignManager.js
@@ -135,6 +135,8 @@
params: []
};
+ paramValues = paramValues || [];
+
$.each( paramDefs, function ( paramName, paramDef ) {
var paramTemplateVars = {
@@ -168,45 +170,49 @@
throw 'Invalid parameter definition
type: ' + paramDef.type;
}
- // If param values were provided, fill the form up with
those
- if ( paramValues ) {
- switch ( paramDef.type ) {
- case 'string':
- case 'integer':
- case 'float':
- paramTemplateVars.inputValue =
paramValues[paramName];
- break;
+ // If parameter value was not provided, set a default
+ if ( !( paramName in paramValues ) ) {
+ if ( typeof paramDef.defaultValue !==
'undefined' ) {
+ paramValues[paramName] =
paramDef.defaultValue;
+ } else {
+ switch ( paramDef.type ) {
+ case 'string':
+ paramValues[paramName]
= '';
+ break;
- case 'boolean':
- if ( paramValues[paramName] ) {
-
paramTemplateVars.checkedFlagAndVar = {
- checked:
'checked'
- };
- }
- break;
+ case 'integer':
+ case 'float':
+ paramValues[paramName]
= '0';
+ break;
- default:
- throw 'Invalid parameter
definition type: ' + paramDef.type;
+ case 'boolean':
+ paramValues[paramName]
= false;
+ break;
+
+ default:
+ throw 'Invalid
parameter definition type: ' + paramDef.type;
+ }
}
+ }
- // No param values? Set some defaults
- } else {
- switch ( paramDef.type ) {
- case 'string':
- paramTemplateVars.inputValue =
'';
- break;
+ // Set form control values
+ switch ( paramDef.type ) {
+ case 'string':
+ case 'integer':
+ case 'float':
+ paramTemplateVars.inputValue =
paramValues[paramName];
+ break;
- case 'integer':
- case 'float':
- paramTemplateVars.inputValue =
'0';
- break;
+ case 'boolean':
+ if ( paramValues[paramName] ) {
+
paramTemplateVars.checkedFlagAndVar = {
+ checked: 'checked'
+ };
+ }
+ break;
- case 'boolean':
- break;
-
- default:
- throw 'Invalid parameter
definition type: ' + paramDef.type;
- }
+ default:
+ throw 'Invalid parameter definition
type: ' + paramDef.type;
}
if ( paramDef.helpMsg ) {
--
To view, visit https://gerrit.wikimedia.org/r/247637
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4e24e1c718bdf4f97293537674b357c5f1c61c16
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits