jenkins-bot has submitted this change and it was merged.

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(-)

Approvals:
  Awight: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/infrastructure/campaignManager.js 
b/resources/infrastructure/campaignManager.js
index 2d7ad7a..9fa3dea 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: merged
Gerrit-Change-Id: I4e24e1c718bdf4f97293537674b357c5f1c61c16
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/CentralNotice
Gerrit-Branch: master
Gerrit-Owner: Ejegg <[email protected]>
Gerrit-Reviewer: AndyRussG <[email protected]>
Gerrit-Reviewer: Awight <[email protected]>
Gerrit-Reviewer: Cdentinger <[email protected]>
Gerrit-Reviewer: Ejegg <[email protected]>
Gerrit-Reviewer: Ssmith <[email protected]>
Gerrit-Reviewer: XenoRyet <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to