diff --git a/resources/i18n/en.json5 b/resources/i18n/en.json5
index 7b814fd5bc..385fefd156 100644
--- a/resources/i18n/en.json5
+++ b/resources/i18n/en.json5
@@ -1614,6 +1614,24 @@
+ "process.new.select-parameters": "Parameters",
+
+ "process.new.submit": "Submit",
+
+ "process.new.select-script": "Script",
+
+ "process.new.select-script.placeholder": "Choose a script...",
+
+ "process.new.select-script.required": "Script is required",
+
+ "process.new.parameter.file.upload-button": "Select file...",
+
+ "process.new.parameter.file.required": "Please select a file",
+
+ "process.new.parameter.string.required": "Parameter value is required",
+
+
+
"publication.listelement.badge": "Publication",
"publication.page.description": "Description",
diff --git a/src/app/core/data/processes/script-data.service.ts b/src/app/core/data/processes/script-data.service.ts
index 66f81baffe..9841ef3862 100644
--- a/src/app/core/data/processes/script-data.service.ts
+++ b/src/app/core/data/processes/script-data.service.ts
@@ -1,6 +1,5 @@
import { Injectable } from '@angular/core';
import { DataService } from '../data.service';
-import { RequestService } from '../request.service';
import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service';
import { Store } from '@ngrx/store';
import { CoreState } from '../../core.reducers';
@@ -10,6 +9,11 @@ import { NotificationsService } from '../../../shared/notifications/notification
import { HttpClient } from '@angular/common/http';
import { DefaultChangeAnalyzer } from '../default-change-analyzer.service';
import { Script } from '../../../process-page/scripts/script.model';
+import { ProcessParameter } from '../../../process-page/processes/process-parameter.model';
+import { map } from 'rxjs/operators';
+import { URLCombiner } from '../../url-combiner/url-combiner';
+import { MultipartPostRequest, RestRequest } from '../request.models';
+import { RequestService } from '../request.service';
@Injectable()
export class ScriptDataService extends DataService
+
diff --git a/src/app/process-page/new/new-process.component.ts b/src/app/process-page/new/new-process.component.ts
index 57da770dd9..0c98d4d8b4 100644
--- a/src/app/process-page/new/new-process.component.ts
+++ b/src/app/process-page/new/new-process.component.ts
@@ -1,6 +1,8 @@
import { Component, OnInit } from '@angular/core';
import { Script } from '../scripts/script.model';
import { Process } from '../processes/process.model';
+import { ProcessParameter } from '../processes/process-parameter.model';
+import { ScriptDataService } from '../../core/data/processes/script-data.service';
@Component({
selector: 'ds-new-process',
@@ -10,13 +12,32 @@ import { Process } from '../processes/process.model';
export class NewProcessComponent implements OnInit {
public selectedScript: Script;
public process: Process;
+ public parameters: ProcessParameter[];
+ public files: File[] = [];
+
+ constructor(private scriptService: ScriptDataService) {
+ }
ngOnInit(): void {
this.process = new Process();
}
- selectScript(script: Script) {
- this.selectedScript = script;
- console.log('selected script: ', script);
+ submitForm() {
+ const stringParameters: ProcessParameter[] = this.parameters.map((parameter: ProcessParameter) => {
+ return {
+ name: parameter.name,
+ value: this.checkValue(parameter)
+ };
+ }
+ );
+ this.scriptService.invocate(this.selectedScript.id, stringParameters, this.files)
+ }
+
+ checkValue(processParameter: ProcessParameter): string {
+ if (typeof processParameter.value === 'object') {
+ this.files = [...this.files, processParameter.value];
+ return processParameter.value.name;
+ }
+ return processParameter.value;
}
}
diff --git a/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.html b/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.html
index 63aa5afaf9..204b90dc77 100644
--- a/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.html
+++ b/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.html
@@ -9,7 +9,7 @@
{{param.nameLong || param.name}}
-
+
diff --git a/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.ts b/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.ts
index 42ae16ca1c..b0145b10a3 100644
--- a/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.ts
+++ b/src/app/process-page/new/process-parameters/parameter-select/parameter-select.component.ts
@@ -31,6 +31,7 @@ export class ParameterSelectComponent implements OnInit {
set selectedParameter(value: string) {
this.parameterValue.name = value;
+ this.selectedParameterValue = undefined;
this.changeParameter.emit(this.parameterValue);
}
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.html b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.html
new file mode 100644
index 0000000000..85b27713d2
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.html
@@ -0,0 +1 @@
+
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.scss b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.spec.ts b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.spec.ts
new file mode 100644
index 0000000000..824d922236
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { BooleanValueInputComponent } from './boolean-value-input.component';
+
+describe('StringValueInputComponent', () => {
+ let component: BooleanValueInputComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ BooleanValueInputComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(BooleanValueInputComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.ts b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.ts
new file mode 100644
index 0000000000..0c4faf0667
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component.ts
@@ -0,0 +1,13 @@
+import { Component, OnInit } from '@angular/core';
+import { ValueInputComponent } from '../value-input.component';
+
+@Component({
+ selector: 'ds-boolean-value-input',
+ templateUrl: './boolean-value-input.component.html',
+ styleUrls: ['./boolean-value-input.component.scss']
+})
+export class BooleanValueInputComponent extends ValueInputComponent implements OnInit {
+ ngOnInit() {
+ this.updateValue.emit(true)
+ }
+}
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.html b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.html
new file mode 100644
index 0000000000..3b349bfd43
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.html
@@ -0,0 +1,7 @@
+
+
+
+ {{'process.new.parameter.string.required' | translate}}
+
+
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.scss b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.spec.ts b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.spec.ts
new file mode 100644
index 0000000000..5c4b44c3a3
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DateValueInputComponent } from './date-value-input.component';
+
+describe('StringValueInputComponent', () => {
+ let component: DateValueInputComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [ DateValueInputComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DateValueInputComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.ts b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.ts
new file mode 100644
index 0000000000..f266bebb9a
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/date-value-input/date-value-input.component.ts
@@ -0,0 +1,16 @@
+import { Component, OnInit } from '@angular/core';
+import { ValueInputComponent } from '../value-input.component';
+
+@Component({
+ selector: 'ds-date-value-input',
+ templateUrl: './date-value-input.component.html',
+ styleUrls: ['./date-value-input.component.scss']
+})
+export class DateValueInputComponent extends ValueInputComponent {
+ value: string;
+
+ setValue(value) {
+ this.value = value;
+ this.updateValue.emit(value)
+ }
+}
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.html b/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.html
index cb211e607b..aa58d1ffac 100644
--- a/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.html
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.html
@@ -1,6 +1,10 @@
-
+
+
+
+
+ {{'process.new.parameter.file.required' | translate}}
+
+
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.ts b/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.ts
index d0fa9793d3..ce54207312 100644
--- a/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.ts
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/file-value-input/file-value-input.component.ts
@@ -1,33 +1,16 @@
-import { Component, OnInit } from '@angular/core';
-import { FileUploaderOptions } from 'ng2-file-upload';
-import { UploaderOptions } from '../../../../../shared/uploader/uploader-options.model';
+import { Component } from '@angular/core';
+import { ValueInputComponent } from '../value-input.component';
@Component({
selector: 'ds-file-value-input',
templateUrl: './file-value-input.component.html',
styleUrls: ['./file-value-input.component.scss']
})
-export class FileValueInputComponent implements OnInit {
- uploadFilesOptions: FileUploaderOptions;
-
- constructor() {
- }
-
- ngOnInit() {
- this.uploadFilesOptions = new UploaderOptions();
- this.uploadFilesOptions.autoUpload = false;
- this.uploadFilesOptions.url = 'bladibla';
- this.uploadFilesOptions.authToken = 'bladibla';
- this.uploadFilesOptions.disableMultipart = true;
- this.uploadFilesOptions.formatDataFunctionIsAsync = false;
- this.uploadFilesOptions.formatDataFunction((t) => console.log(t));
- }
-
- onCompleteItem() {
-
- }
-
- onUploadError() {
-
+export class FileValueInputComponent extends ValueInputComponent {
+ file: File;
+ setFile(files) {
+ this.file = files.length > 0 ? files[0] : undefined;
+ console.log(this.file);
+ this.updateValue.emit(this.file);
}
}
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.html b/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.html
index 22d60c8f7f..15261975b9 100644
--- a/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.html
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.html
@@ -1,4 +1,7 @@
-
-
+
+
+
+
+
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.ts b/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.ts
index 17c627b371..5adb96505d 100644
--- a/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.ts
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/parameter-value-input.component.ts
@@ -1,4 +1,4 @@
-import { Component, Input, OnChanges, OnInit } from '@angular/core';
+import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';
import { ScriptParameterType } from '../../../scripts/script-parameter-type.model';
import { ScriptParameter } from '../../../scripts/script-parameter.model';
@@ -9,5 +9,6 @@ import { ScriptParameter } from '../../../scripts/script-parameter.model';
})
export class ParameterValueInputComponent {
@Input() parameter: ScriptParameter;
+ @Output() updateValue: EventEmitter = new EventEmitter();
parameterTypes = ScriptParameterType;
}
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.html b/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.html
index e572624f22..e0693efffa 100644
--- a/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.html
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.html
@@ -1 +1,7 @@
-
+
+
+
+ {{'process.new.parameter.string.required' | translate}}
+
+
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.ts b/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.ts
index 5c88523d8d..86db8b87d9 100644
--- a/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.ts
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/string-value-input/string-value-input.component.ts
@@ -1,15 +1,16 @@
import { Component, OnInit } from '@angular/core';
+import { ValueInputComponent } from '../value-input.component';
@Component({
selector: 'ds-string-value-input',
templateUrl: './string-value-input.component.html',
styleUrls: ['./string-value-input.component.scss']
})
-export class StringValueInputComponent implements OnInit {
+export class StringValueInputComponent extends ValueInputComponent {
+ value: string;
- constructor() { }
-
- ngOnInit() {
+ setValue(value) {
+ this.value = value;
+ this.updateValue.emit(value)
}
-
}
diff --git a/src/app/process-page/new/process-parameters/parameter-value-input/value-input.component.ts b/src/app/process-page/new/process-parameters/parameter-value-input/value-input.component.ts
new file mode 100644
index 0000000000..949c48728d
--- /dev/null
+++ b/src/app/process-page/new/process-parameters/parameter-value-input/value-input.component.ts
@@ -0,0 +1,5 @@
+import { EventEmitter, Output } from '@angular/core';
+
+export abstract class ValueInputComponent {
+ @Output() updateValue: EventEmitter = new EventEmitter()
+}
diff --git a/src/app/process-page/new/process-parameters/process-parameters.component.html b/src/app/process-page/new/process-parameters/process-parameters.component.html
index 98c364cbee..24e9c9b1e3 100644
--- a/src/app/process-page/new/process-parameters/process-parameters.component.html
+++ b/src/app/process-page/new/process-parameters/process-parameters.component.html
@@ -1,5 +1,5 @@