diff --git a/lib/process-services-cloud/src/lib/i18n/en.json b/lib/process-services-cloud/src/lib/i18n/en.json
index 9067f323ca..32199287e0 100644
--- a/lib/process-services-cloud/src/lib/i18n/en.json
+++ b/lib/process-services-cloud/src/lib/i18n/en.json
@@ -41,7 +41,8 @@
"START": "Couldn't start new process instance, check you have access.",
"PROCESS_NAME_REQUIRED": "Process Name is required",
"PROCESS_DEFINITION_REQUIRED": "Process Definition is required",
- "MAXIMUM_LENGTH": "Length exceeded, {{characters}} characters max."
+ "MAXIMUM_LENGTH": "Length exceeded, {{characters}} characters max.",
+ "SPACE_VALIDATOR": "Space is not allowed in the beginning or the end of the text."
}
}
},
diff --git a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.html b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.html
index 8019937bea..3ff8222087 100755
--- a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.html
+++ b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.html
@@ -45,6 +45,9 @@
{{ 'ADF_CLOUD_PROCESS_LIST.ADF_CLOUD_START_PROCESS.ERROR.MAXIMUM_LENGTH' | translate : { characters : maxNameLength } }}
+
+ {{ 'ADF_PROCESS_LIST.START_PROCESS.ERROR.SPACE_VALIDATOR' | translate }}
+
diff --git a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts
index ad9ebcb704..cee347c612 100755
--- a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts
+++ b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.spec.ts
@@ -639,6 +639,18 @@ describe('StartProcessCloudComponent', () => {
expect(processInstanceName.valid).toBeTruthy();
});
+ it('should have start button disabled process name has a space as the first or last character.', async(() => {
+ component.appName = 'myApp';
+ component.processDefinitionName = ' Space in the beginning';
+ component.ngOnChanges({});
+ fixture.detectChanges();
+ const startBtn = fixture.nativeElement.querySelector('#button-start');
+ expect(startBtn.disabled).toBe(true);
+ component.processDefinitionName = 'Space in the end ';
+ fixture.detectChanges();
+ expect(startBtn.disabled).toBe(true);
+ }));
+
it('should emit processDefinitionSelection event when a process definition is selected', (done) => {
component.processDefinitionSelection.subscribe((processDefinition) => {
expect(processDefinition).toEqual(fakeProcessDefinitions[0]);
diff --git a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts
index 251fd289dd..e44b9be032 100755
--- a/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts
+++ b/lib/process-services-cloud/src/lib/process/start-process/components/start-process-cloud.component.ts
@@ -109,8 +109,8 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy
ngOnInit() {
this.processForm = this.formBuilder.group({
- processInstanceName: new FormControl(this.name, [Validators.required, Validators.maxLength(this.getMaxNameLength()), this.whitespaceValidator]),
- processDefinition: new FormControl('', [Validators.required, this.processDefinitionNameValidator()])
+ processInstanceName: new FormControl(this.name, [Validators.required, Validators.maxLength(this.getMaxNameLength()), Validators.pattern('^[^\\s]+(\\s+[^\\s]+)*$')]),
+ processDefinition: new FormControl(this.processDefinitionName, [Validators.required, this.processDefinitionNameValidator()])
});
this.processDefinition.valueChanges
@@ -341,12 +341,6 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy
return !!process.name ? process.name : process.key;
}
- public whitespaceValidator(control: FormControl) {
- const isWhitespace = (control.value || '').trim().length === 0;
- const isValid = !isWhitespace;
- return isValid ? null : { 'whitespace': true };
- }
-
get processInstanceName(): AbstractControl {
return this.processForm.get('processInstanceName');
}