This commit is contained in:
Michele Artini 2024-01-15 08:46:21 +01:00
parent 0fe9b39a28
commit 356be56fee
3 changed files with 38 additions and 32 deletions

View File

@ -1,7 +1,5 @@
<h2>Datasource Manager - API Managent</h2>
TODO : FIX WF CONFIGURATIONS
<p>
<a mat-stroked-button color="primary" routerLink="/dsm/search">
<mat-icon fontIcon="search"></mat-icon>

View File

@ -116,7 +116,7 @@ export class WfConfDialog implements OnInit {
editMode: boolean = true;
wfConfFormStep1 = new FormGroup({
workflow: new FormControl('', [Validators.required]),
workflows: new FormControl([], [Validators.required]),
});
wfConfFormStep2 = new FormGroup({
@ -138,13 +138,13 @@ export class WfConfDialog implements OnInit {
constructor(public dialogRef: MatDialogRef<ResMetadataDialog>, @Inject(MAT_DIALOG_DATA) public data: any, public client: WfConfsClient) {
if (data.id && data.workflow) {
if (data.id && data.workflows && data.workflows.length > 0) {
this.editMode = true;
} else {
this.editMode = false;
}
this.wfConfFormStep1.get('workflow')?.setValue(data.workflow);
this.wfConfFormStep1.get('workflows')?.setValue(data.workflows);
this.wfConfFormStep2.get('name')?.setValue(data.name);
this.wfConfFormStep2.get('enabled')?.setValue(data.enabled);
@ -159,7 +159,7 @@ export class WfConfDialog implements OnInit {
ngOnInit(): void {
if (this.editMode) {
this.prepareWfParameters(this.data.workflow);
this.prepareWfParameters(this.data.workflows);
} else {
this.client.loadWfTemplates((data: SimpleResource[]) => this.wfTemplates = data);
}
@ -169,34 +169,41 @@ export class WfConfDialog implements OnInit {
this.prepareWfParameters(e.value);
}
prepareWfParameters(wfTemplateId: string): void {
this.client.loadWfTemplate(wfTemplateId, (data: any) => {
console.log(data);
if (data.parameters) {
this.wfParameters = data.parameters;
} else {
this.wfParameters = JSON.parse(data).parameters;
}
prepareWfParameters(wfTemplateIds: string[]): void {
this.wfConfFormStep3.controls = {};
this.wfParameters = [];
this.wfConfFormStep3.controls = {};
let wfParameterNames: string[] = [];
this.wfParameters.forEach(p => {
let validations: ValidatorFn[] = [];
if (p.required) { validations.push(Validators.required); }
if (p.type == 'number') { validations.push(Validators.pattern('^[0-9]*$')); }
wfTemplateIds.forEach(id => {
if (p.name == 'dsId') {
this.wfConfFormStep3.addControl(p.name, new FormControl({ value: this.data.dsId, disabled: true }, validations));
} else if (p.name == 'apiId') {
this.wfConfFormStep3.addControl(p.name, new FormControl({ value: this.data.apiId, disabled: true }, validations));
} else if (this.data.userParams[p.name]) {
this.wfConfFormStep3.addControl(p.name, new FormControl(this.data.userParams[p.name], validations));
} else if (this.data.systemParams[p.name]) {
this.wfConfFormStep3.addControl(p.name, new FormControl({ value: this.data.systemParams[p.name], disabled: true }, validations));
} else {
this.wfConfFormStep3.addControl(p.name, new FormControl('', validations));
}
})
this.client.loadWfTemplate(id, (data: any) => {
let tmpParams = data.parameters ? data.parameters : JSON.parse(data).parameters;
tmpParams.forEach((p: WfParam) => {
if (!wfParameterNames.includes(p.name)) {
this.wfParameters.push(p);
wfParameterNames.push(p.name);
}
});
this.wfParameters.forEach(p => {
let validations: ValidatorFn[] = [];
if (p.required) { validations.push(Validators.required); }
if (p.type == 'number') { validations.push(Validators.pattern('^[0-9]*$')); }
if (this.data.userParams[p.name]) {
this.wfConfFormStep3.addControl(p.name, new FormControl(this.data.userParams[p.name], validations));
} else if (this.data.systemParams[p.name]) {
this.wfConfFormStep3.addControl(p.name, new FormControl({ value: this.data.systemParams[p.name], disabled: true }, validations));
} else {
this.wfConfFormStep3.addControl(p.name, new FormControl('', validations));
}
})
});
});
}

View File

@ -1,6 +1,7 @@
<h1 mat-dialog-title>Workflow Configuration</h1>
<div mat-dialog-content>
<mat-vertical-stepper [linear]="true" #stepper>
<!-- STEP 1 -->
@ -10,7 +11,7 @@
<mat-form-field appearance="fill" floatLabel="always" style="width: 100%;">
<mat-label>Workflow(s)</mat-label>
<input matInput disabled="disabled" value="{{data.workflow}}" *ngIf="editMode" />
<input matInput disabled="disabled" value="{{data.workflows}}" *ngIf="editMode" multiple />
<mat-select matInput formControlName="workflows" (selectionChange)="onChangeWfTemplate($event)" multiple
*ngIf="!editMode">
<mat-option *ngFor="let i of wfTemplates" [value]="i.name">{{i.name}} ({{i.subtype}})</mat-option>