@@ -8,7 +8,7 @@ import { ROUTE, TemplateType } from '../../constants.js';
88import { api } from '../../api' ;
99import { openPopupWindow , closePopupWindow , updateWorkflowDefinitions } from '../../store/actions' ;
1010
11- const TriggerForm = ( { workflowId, templateType } ) => {
11+ const TriggerForm = ( { workflowId, templateType, triggerType } ) => {
1212 const dispatch = useDispatch ( ) ;
1313 const navigate = useNavigate ( ) ;
1414 const isPopupOpened = useSelector ( state => state . popup . isOpened ) ;
@@ -49,7 +49,14 @@ const TriggerForm = ({ workflowId, templateType }) => {
4949 case "-" :
5050 try {
5151 api . workflows . getWorkflowTriggerRequirements ( workflowId ) . then ( data => {
52- setRelevantFormFields ( generateDynamicForm ( data . data . trigger_input_schema , 'Custom' ) ) ;
52+ const result = Object . values ( data . data . workflowDefinition . trigger . input . payload )
53+ . filter ( entry => entry . propertyName !== "id" && entry . propertyName !== "dacId" )
54+ . map ( entry => ( {
55+ field_name : entry . propertyName ,
56+ field_data_type : entry . type
57+ } ) ) ;
58+
59+ setRelevantFormFields ( generateDynamicForm ( result , 'Custom' ) ) ;
5360 } ) ;
5461 } catch ( error ) {
5562 console . error ( "Failed to fetch trigger requirements:" , error ) ;
@@ -80,35 +87,45 @@ const TriggerForm = ({ workflowId, templateType }) => {
8087 const handleSubmit = async event => {
8188 event . preventDefault ( ) ;
8289
83- const body = relevantFormFields . reduce ( ( acc , current ) => {
90+ let body = relevantFormFields . reduce ( ( acc , current ) => {
8491 acc [ current . fieldName ] = current . value ;
8592 return acc ;
8693 } , { } ) ;
8794
88- if ( ! Object . keys ( body ) . length ) {
95+ if ( ! Object . keys ( body ) . length && relevantFormFields . length ) {
8996 navigate ( ROUTE . TRIGGER ) ;
9097 return ;
9198 }
9299
93100 setDataSending ( true ) ;
101+
102+ if ( ! relevantFormFields . length ) {
103+ body = { } ;
104+ }
105+
94106 const { data : triggeredWorkflow } = await api . workflows . triggerWorkflow ( workflowId , templateType , body ) ;
95- setWorkflowInstanceUrl ( triggeredWorkflow . instance_url ) ;
96-
97- // Update workflowDefinitions. "...workflow" creates new workflow-object to avoid mutation in redux
98- const updatedWorkflowDefinitions = workflows . map ( w => {
99- if ( w . id !== workflowId ) return { ...w } ;
100-
101- return {
102- ...w ,
103- instanceId : triggeredWorkflow . instanceId ,
104- isTriggered : true ,
105- } ;
106- } ) ;
107-
108- dispatch ( updateWorkflowDefinitions ( updatedWorkflowDefinitions ) ) ;
109- setDataSending ( false ) ;
110- dispatch ( openPopupWindow ( ) ) ;
107+ setWorkflowInstanceUrl ( triggeredWorkflow . workflowInstanceUrl ) ;
108+
109+ if ( triggerType === "Url" ) {
110+ navigate ( `${ ROUTE . TRIGGERFORM } /${ workflowId } ?type=${ templateType } &triggerType=${ triggerType } &triggerUrl=${ triggeredWorkflow . workflowInstanceUrl } ` )
111+ } else {
112+ // Update workflowDefinitions. "...workflow" creates new workflow-object to avoid mutation in redux
113+ const updatedWorkflowDefinitions = workflows . map ( w => {
114+ if ( w . id !== workflowId ) return { ...w } ;
115+
116+ return {
117+ ...w ,
118+ instanceId : triggeredWorkflow . instanceId ,
119+ isTriggered : true ,
120+ } ;
121+ } ) ;
122+
123+ dispatch ( updateWorkflowDefinitions ( updatedWorkflowDefinitions ) ) ;
124+ setDataSending ( false ) ;
125+ dispatch ( openPopupWindow ( ) ) ;
126+ }
111127 } ;
128+
112129 if ( ! relevantFormFields . length )
113130 return (
114131 < div className = { styles . formContainer } >
0 commit comments