diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/manager/wf/WfConfigurationsController.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/manager/wf/WfConfigurationsController.java
index 3fb39f37..e8662316 100644
--- a/apps/dnet-is-application/src/main/java/eu/dnetlib/manager/wf/WfConfigurationsController.java
+++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/manager/wf/WfConfigurationsController.java
@@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -17,7 +18,6 @@ import eu.dnetlib.manager.wf.model.WorkflowConfiguration;
import eu.dnetlib.manager.wf.model.WorkflowSection;
import eu.dnetlib.manager.wf.model.WorkflowSubscription;
import eu.dnetlib.manager.wf.workflows.procs.ExecutionStatus;
-import io.swagger.v3.oas.annotations.parameters.RequestBody;
@RestController
@RequestMapping("/ajax/wfs")
@@ -45,8 +45,8 @@ public class WfConfigurationsController extends AbstractDnetController {
}
@PostMapping("/conf")
- public void saveWfConfiguration(@RequestBody final WorkflowConfiguration conf) throws Exception {
- wfManagerService.saveWfConfiguration(conf);
+ public WorkflowConfiguration saveWfConfiguration(@RequestBody final WorkflowConfiguration conf) throws Exception {
+ return wfManagerService.saveWfConfiguration(conf);
}
@DeleteMapping("/conf/{id}")
diff --git a/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.html b/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.html
index 9d54b451..049b1104 100644
--- a/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.html
+++ b/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.html
@@ -1,5 +1,10 @@
- {{conf}}
+
+ {{conf | json}}
diff --git a/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.ts b/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.ts
index 47f30c39..53b319c3 100644
--- a/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.ts
+++ b/frontends/dnet-is-application/src/app/wf-confs/wf-confs.component.ts
@@ -117,10 +117,8 @@ export class WfConfDialog implements OnInit {
this.wfConfFormStep2.get('enabled')?.setValue(data.enabled);
this.wfConfFormStep2.get('priority')?.setValue(data.priority);
//details
-
//systemParams,
//userParams
-
this.wfConfFormStep4.get('schedulingEnabled')?.setValue(data.schedulingEnabled);
this.wfConfFormStep4.get('cronExpression')?.setValue(data.cronExpression);
this.wfConfFormStep4.get('cronMinInterval')?.setValue(data.cronMinInterval);
@@ -138,9 +136,6 @@ export class WfConfDialog implements OnInit {
this.wfParameters = JSON.parse(data).parameters;
}
-
- console.log(this.wfParameters);
-
this.wfConfFormStep3.controls = {};
this.wfParameters.forEach(p => {
@@ -153,8 +148,12 @@ export class WfConfDialog implements OnInit {
}
onSubmit(): void {
- const conf = Object.assign({}, this.data, this.wfConfFormStep1.value, this.wfConfFormStep2.value, this.wfConfFormStep3.value, this.wfConfFormStep4.value);
- this.service.saveWfConfiguration(conf, (data: void) => this.dialogRef.close(1), this.wfConfFormFinal);
+ const conf = Object.assign({}, this.data, this.wfConfFormStep1.value, this.wfConfFormStep2.value, this.wfConfFormStep4.value);
+ conf.details = {};
+ conf.systemParams = {};
+ conf.userParams = this.wfConfFormStep3.value;
+
+ this.service.saveWfConfiguration(conf, (data: void) => this.dialogRef.close(data), this.wfConfFormFinal);
}
onNoClick(): void {
diff --git a/libs/dnet-is-common/src/test/java/eu/dnetlib/manager/wf/model/WorkflowConfigurationTest.java b/libs/dnet-is-common/src/test/java/eu/dnetlib/manager/wf/model/WorkflowConfigurationTest.java
new file mode 100644
index 00000000..6f7a7ce4
--- /dev/null
+++ b/libs/dnet-is-common/src/test/java/eu/dnetlib/manager/wf/model/WorkflowConfigurationTest.java
@@ -0,0 +1,29 @@
+package eu.dnetlib.manager.wf.model;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.io.IOException;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+class WorkflowConfigurationTest {
+
+ private final ObjectMapper mapper = new ObjectMapper();
+
+ @BeforeEach
+ private void setUp() throws Exception {}
+
+ @Test
+ final void test() throws IOException {
+ final WorkflowConfiguration conf =
+ mapper.readValue(IOUtils.toString(getClass().getResourceAsStream("test-conf.json"), "UTF-8"), WorkflowConfiguration.class);
+
+ System.out.println(conf.getName());
+ assertNotNull(conf.getName());
+ }
+
+}
diff --git a/libs/dnet-is-common/src/test/resources/eu/dnetlib/manager/wf/model/test-conf.json b/libs/dnet-is-common/src/test/resources/eu/dnetlib/manager/wf/model/test-conf.json
new file mode 100644
index 00000000..ec1735ba
--- /dev/null
+++ b/libs/dnet-is-common/src/test/resources/eu/dnetlib/manager/wf/model/test-conf.json
@@ -0,0 +1,23 @@
+{
+ "id": "",
+ "name": "fffff",
+ "section": "GC",
+ "enabled": true,
+ "priority": 75,
+ "workflow": "09991db4-79e6-4e7c-a388-5063955bf9d8",
+ "schedulingEnabled": true,
+ "cronExpression": "0 30 12 1/1 * ?",
+ "cronMinInterval": 9600,
+ "details": {
+
+ },
+ "configured": true,
+ "systemParams": {
+
+ },
+ "userParams": {
+ "Name": "xxx",
+ "Age": "xxx",
+ "Birthday": "xxxx"
+ }
+}
\ No newline at end of file
diff --git a/libs/dnet-wf-service/src/main/java/eu/dnetlib/manager/wf/WorkflowManagerService.java b/libs/dnet-wf-service/src/main/java/eu/dnetlib/manager/wf/WorkflowManagerService.java
index 085f5760..86ee759d 100644
--- a/libs/dnet-wf-service/src/main/java/eu/dnetlib/manager/wf/WorkflowManagerService.java
+++ b/libs/dnet-wf-service/src/main/java/eu/dnetlib/manager/wf/WorkflowManagerService.java
@@ -10,6 +10,7 @@ import java.util.concurrent.TimeUnit;
import javax.annotation.PostConstruct;
import javax.transaction.Transactional;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -206,8 +207,19 @@ public class WorkflowManagerService implements Stoppable {
return workflowConfigurationRepository.findBySection(section);
}
- public void saveWfConfiguration(final WorkflowConfiguration conf) {
+ public WorkflowConfiguration saveWfConfiguration(final WorkflowConfiguration conf) {
+ if (StringUtils.isBlank(conf.getId())) {
+ conf.setId("wfconf-" + UUID.randomUUID());
+ }
+ checkConfiguration(conf);
+
workflowConfigurationRepository.save(conf);
+
+ return conf;
+ }
+
+ private void checkConfiguration(final WorkflowConfiguration conf) {
+ // TODO Auto-generated method stub
}
@Transactional