@@ -389,7 +389,7 @@ class Events {
389389 delete params . json ;
390390 }
391391
392- if ( ! params . params ) params . params = { } ;
392+ if ( ! params . params || ( typeof ( params . params ) != 'object' ) || Array . isArray ( params . params ) ) params . params = { } ;
393393
394394 // allow user to specify event by id or title
395395 var criteria = { } ;
@@ -438,12 +438,16 @@ class Events {
438438 }
439439 }
440440
441- // allow sparsely populated event params in request
441+ // allow sparsely populated event params and fields in request
442442 if ( event . params ) {
443443 for ( var key in event . params ) {
444444 if ( ! ( key in params . params ) ) params . params [ key ] = event . params [ key ] ;
445445 }
446446 }
447+ if ( event . fields ) event . fields . forEach ( function ( field ) {
448+ var key = field . id ;
449+ if ( ! ( key in params . params ) ) params . params [ key ] = field . value ;
450+ } ) ;
447451
448452 // apply defaults for locked plugin params, if user is not an admin
449453 var privs = self . getComputedPrivileges ( user ) ;
@@ -580,12 +584,16 @@ class Events {
580584 return this . doError ( 'api' , "Malformed event parameter: input (must be object)" , callback ) ;
581585 }
582586
583- // allow sparsely populated event params in request
587+ // allow sparsely populated event params and fields in request
584588 if ( event . params ) {
585589 for ( var key in event . params ) {
586590 if ( ! ( key in params ) ) params [ key ] = event . params [ key ] ;
587591 }
588592 }
593+ if ( event . fields ) event . fields . forEach ( function ( field ) {
594+ var key = field . id ;
595+ if ( ! ( key in params ) ) params [ key ] = field . value ;
596+ } ) ;
589597
590598 if ( ! is_workflow ) {
591599 var old_params = event . params || { } ;
0 commit comments