@@ -35,6 +35,11 @@ export class ViewCmmnFileComponent implements OnInit, OnDestroy {
3535 cmmnPlanInstanceLstListener : any ;
3636 cmmnFileLstListener : any ;
3737 cmmnFileListener : any ;
38+ mappingTypesToEvents : { types : string [ ] , evts : string [ ] } [ ] = [
39+ { types : [ 'cmmn:HumanTask' ] , evts : [ 'create' , 'start' , 'enable' , 'reenable' , 'disable' , 'manualStart' , 'reactivate' , 'fault' , 'suspend' , 'parentSuspend' , 'parentResume' , 'resume' , 'complete' , 'terminate' , 'exit' ] } ,
40+ { types : [ 'cmmn:UserEventListener' ] , evts : [ 'create' , 'resume' , 'suspend' , 'terminate' , 'occur' , 'parentTerminate' ] }
41+ ] ;
42+ standardEvts : string [ ] = [ ] ;
3843 displayedColumns : string [ ] = [ 'status' , 'name' , 'create_datetime' , 'update_datetime' ] ;
3944 @ViewChild ( MatPaginator ) paginator : MatPaginator ;
4045 @ViewChild ( MatSort ) sort : MatSort ;
@@ -55,7 +60,8 @@ export class ViewCmmnFileComponent implements OnInit, OnDestroy {
5560 id : new FormControl ( '' ) ,
5661 name : new FormControl ( '' ) ,
5762 implementation : new FormControl ( '' ) ,
58- formId : new FormControl ( '' )
63+ formId : new FormControl ( '' ) ,
64+ standardEvent : new FormControl ( '' )
5965 } ) ;
6066 addParameterForm : FormGroup = new FormGroup ( {
6167 key : new FormControl ( '' ) ,
@@ -285,9 +291,9 @@ export class ViewCmmnFileComponent implements OnInit, OnDestroy {
285291
286292 refresh ( ) {
287293 this . id = this . route . snapshot . params [ 'id' ] ;
288- let request = new fromCmmnFileActions . GetCmmnFile ( this . id ) ;
294+ const request = new fromCmmnFileActions . GetCmmnFile ( this . id ) ;
289295 this . store . dispatch ( request ) ;
290- let searchPlans = new fromCmmnPlanActions . SearchCmmnPlans ( "create_datetime" , "desc" , 2000 , 0 , this . id , false ) ;
296+ const searchPlans = new fromCmmnPlanActions . SearchCmmnPlans ( "create_datetime" , "desc" , 2000 , 0 , this . id , false ) ;
291297 this . store . dispatch ( searchPlans ) ;
292298 this . refreshCmmnInstances ( ) ;
293299 }
@@ -319,7 +325,7 @@ export class ViewCmmnFileComponent implements OnInit, OnDestroy {
319325 }
320326
321327 saveProperties ( form : any ) {
322- if ( ! this . selectedElt || ! this . selectedElt . businessObject || ! this . selectedElt . businessObject . definitionRef ) {
328+ if ( ! this . selectedElt || ! this . selectedElt . businessObject ) {
323329 return ;
324330 }
325331
@@ -328,29 +334,39 @@ export class ViewCmmnFileComponent implements OnInit, OnDestroy {
328334 const obj : any = {
329335 id : form . id
330336 } ;
331- const defRef = this . selectedElt . businessObject . definitionRef ;
332- if ( defRef . $type === 'cmmn:HumanTask' ) {
333- obj [ 'cmg:implementation' ] = form . implementation ;
334- obj [ 'cmg:formId' ] = form . formId ;
335- let extensionElements = defRef . extensionElements || moddle . create ( 'cmmn:ExtensionElements' ) ;
336- let parameters = this . getExtension ( defRef , 'cmg:Parameters' ) ;
337- if ( ! parameters ) {
338- parameters = moddle . create ( 'cmg:Parameters' ) ;
339- extensionElements . get ( 'values' ) . push ( parameters ) ;
337+ if ( this . selectedElt . businessObject . definitionRef ) {
338+ const defRef = this . selectedElt . businessObject . definitionRef ;
339+ if ( defRef . $type === 'cmmn:HumanTask' ) {
340+ obj [ 'cmg:implementation' ] = form . implementation ;
341+ obj [ 'cmg:formId' ] = form . formId ;
342+ const extensionElements = defRef . extensionElements || moddle . create ( 'cmmn:ExtensionElements' ) ;
343+ let parameters = this . getExtension ( defRef , 'cmg:Parameters' ) ;
344+ if ( ! parameters ) {
345+ parameters = moddle . create ( 'cmg:Parameters' ) ;
346+ extensionElements . get ( 'values' ) . push ( parameters ) ;
347+ }
348+
349+ parameters . parameter = [ ] ;
350+ this . parameters . forEach ( function ( p : any ) {
351+ const parameter = moddle . create ( 'cmg:Parameter' ) ;
352+ parameter . key = p . key ;
353+ parameter . value = p . value ;
354+ parameters . parameter . push ( parameter ) ;
355+ } ) ;
356+
357+ obj [ 'cmmn:extensionElements' ] = extensionElements ;
340358 }
341359
342- parameters . parameter = [ ] ;
343- this . parameters . forEach ( function ( p : any ) {
344- let parameter = moddle . create ( 'cmg:Parameter' ) ;
345- parameter . key = p . key ;
346- parameter . value = p . value ;
347- parameters . parameter . push ( parameter ) ;
348- } ) ;
360+ modeling . updateProperties ( defRef , obj ) ;
361+ }
349362
350- obj [ 'cmmn:extensionElements' ] = extensionElements ;
363+ if ( this . selectedElt . type === 'cmmndi:CMMNEdge' && this . selectedElt . businessObject . cmmnElementRef ) {
364+ const cmmnEltRef = this . selectedElt . businessObject . cmmnElementRef ;
365+ const standardEvt = this . updatePropertiesForm . get ( 'standardEvent' ) . value ;
366+ obj [ 'standardEvent' ] = standardEvt ;
367+ modeling . updateProperties ( cmmnEltRef , obj ) ;
351368 }
352369
353- modeling . updateProperties ( defRef , obj ) ;
354370 modeling . updateProperties ( this . selectedElt , {
355371 name : form . name
356372 } ) ;
@@ -360,24 +376,39 @@ export class ViewCmmnFileComponent implements OnInit, OnDestroy {
360376 this . buildingForm = true ;
361377 this . selectedElt = elt ;
362378 this . isEltSelected = true ;
363- if ( ! elt || ! elt . businessObject || ! elt . businessObject . definitionRef ) {
379+ if ( ! elt || ! elt . businessObject ) {
364380 return ;
365381 }
366382
367383 const self = this ;
368- var defRef = elt . businessObject . definitionRef ;
369- this . updatePropertiesForm . get ( 'id' ) . setValue ( defRef . id ) ;
370- this . updatePropertiesForm . get ( 'name' ) . setValue ( elt . businessObject . name ) ;
371- if ( defRef . $type === 'cmmn:HumanTask' ) {
372- const parameters = this . getExtension ( defRef , 'cmg:Parameters' ) ;
373- this . updatePropertiesForm . get ( 'implementation' ) . setValue ( defRef . get ( 'cmg:implementation' ) ) ;
374- this . updatePropertiesForm . get ( 'formId' ) . setValue ( defRef . get ( 'cmg:formId' ) ) ;
375- this . selectHumanTask ( defRef . get ( 'cmg:formId' ) ) ;
376- self . parameters = [ ] ;
377- if ( parameters && parameters . parameter ) {
378- parameters . parameter . forEach ( function ( p : any ) {
379- self . parameters . push ( { key : p . key , value : p . value } ) ;
380- } ) ;
384+ if ( elt . businessObject . definitionRef ) {
385+ const defRef = elt . businessObject . definitionRef ;
386+ this . updatePropertiesForm . get ( 'id' ) . setValue ( defRef . id ) ;
387+ this . updatePropertiesForm . get ( 'name' ) . setValue ( elt . businessObject . name ) ;
388+ if ( defRef . $type === 'cmmn:HumanTask' ) {
389+ const parameters = this . getExtension ( defRef , 'cmg:Parameters' ) ;
390+ this . updatePropertiesForm . get ( 'implementation' ) . setValue ( defRef . get ( 'cmg:implementation' ) ) ;
391+ this . updatePropertiesForm . get ( 'formId' ) . setValue ( defRef . get ( 'cmg:formId' ) ) ;
392+ this . selectHumanTask ( defRef . get ( 'cmg:formId' ) ) ;
393+ self . parameters = [ ] ;
394+ if ( parameters && parameters . parameter ) {
395+ parameters . parameter . forEach ( function ( p : any ) {
396+ self . parameters . push ( { key : p . key , value : p . value } ) ;
397+ } ) ;
398+ }
399+ }
400+ }
401+
402+ if ( elt . type === 'cmmndi:CMMNEdge' && elt . businessObject . cmmnElementRef ) {
403+ const cmmnEltRef = elt . businessObject . cmmnElementRef ;
404+ this . updatePropertiesForm . get ( 'id' ) . setValue ( cmmnEltRef . id ) ;
405+ this . updatePropertiesForm . get ( 'name' ) . setValue ( cmmnEltRef . name ) ;
406+ this . updatePropertiesForm . get ( 'standardEvent' ) . setValue ( cmmnEltRef . standardEvent ) ;
407+ const filtered = this . mappingTypesToEvents . filter ( function ( v : any ) {
408+ return v . types . includes ( cmmnEltRef . sourceRef . definitionRef . $type ) ;
409+ } ) ;
410+ if ( filtered . length === 1 ) {
411+ this . standardEvts = filtered [ 0 ] . evts ;
381412 }
382413 }
383414
0 commit comments