From 0a4f792854620ab75e7bf1b865211c2cf7a3bd8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Popovics=20Andr=C3=A1s?= Date: Tue, 2 Jun 2020 10:45:39 +0200 Subject: [PATCH] [ACA-3074] Fix preselected file loading issue (#5739) --- .../form/components/form-cloud.component.spec.ts | 15 +++++++++++++++ .../lib/form/components/form-cloud.component.ts | 1 + .../components/start-process-cloud.component.ts | 14 +++++++------- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts index ab2787a342..e39ffb14fb 100644 --- a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.spec.ts @@ -617,6 +617,21 @@ describe('FormCloudComponent', () => { expect(formComponent.handleError).toHaveBeenCalledWith(error); }); + it('should be able to accept form data after the form has been already loaded once', (done) => { + spyOn(formCloudService, 'getForm').and.returnValue(of(fakeCloudForm)); + formComponent.getFormById('test-app', '123'); + + formComponent.formLoaded.subscribe((form) => { + expect(form).not.toBe(null); + done(); + }); + + const formValues: any[] = []; + const change = new SimpleChange(null, formValues, false); + formComponent.data = formValues; + formComponent.ngOnChanges({ 'data': change }); + }); + it('should save task form and raise corresponding event', () => { spyOn(formCloudService, 'saveTaskForm').and.callFake(() => { return new Observable((observer) => { diff --git a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.ts b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.ts index d439f790ce..c42b478509 100644 --- a/lib/process-services-cloud/src/lib/form/components/form-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/form/components/form-cloud.component.ts @@ -224,6 +224,7 @@ export class FormCloudComponent extends FormBaseComponent implements OnChanges, takeUntil(this.onDestroy$)) .subscribe( (form) => { + this.formCloudRepresentationJSON = form; const parsedForm = this.parseForm(form); this.visibilityService.refreshVisibility( parsedForm); parsedForm.validateForm(); 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 68637c5ce7..cf51d9cd3c 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 @@ -185,7 +185,7 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy } private selectProcessDefinitionByProcesDefinitionName(processDefinitionName: string): void { - this.filteredProcesses = this.getProcessDefinitionList(processDefinitionName); + this.filteredProcesses = this.getProcessDefinitionListByNameOrKey(processDefinitionName); if (this.isProcessFormValid() && this.filteredProcesses && this.filteredProcesses.length === 1) { this.setProcessDefinitionOnForm(this.filteredProcesses[0].name); @@ -200,9 +200,9 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy this.processPayloadCloud.processDefinitionKey = this.processDefinitionCurrent.key; } - private getProcessDefinitionList(processDefinition: string): ProcessDefinitionCloud[] { - return this.processDefinitionList.filter((option) => { - return !processDefinition || this.getProcessDefinition(option, processDefinition); + private getProcessDefinitionListByNameOrKey(processDefinitionName: string): ProcessDefinitionCloud[] { + return this.processDefinitionList.filter((processDefinitionCloud) => { + return !processDefinitionName || this.getProcessDefinition(processDefinitionCloud, processDefinitionName); }); } @@ -263,9 +263,9 @@ export class StartProcessCloudComponent implements OnChanges, OnInit, OnDestroy return !!this.processPayloadCloud.processDefinitionKey; } - private getProcessDefinition(option: ProcessDefinitionCloud, processDefinition: string): boolean { - return (this.isValidName(option.name) && option.name.toLowerCase().includes(processDefinition.toLowerCase())) || - (option.key && option.key.toLowerCase().includes(processDefinition.toLowerCase())); + private getProcessDefinition(processDefinitionCloud: ProcessDefinitionCloud, processDefinitionName: string): boolean { + return (this.isValidName(processDefinitionCloud.name) && processDefinitionCloud.name.toLowerCase().includes(processDefinitionName.toLowerCase())) || + (processDefinitionCloud.key && processDefinitionCloud.key.toLowerCase().includes(processDefinitionName.toLowerCase())); } isProcessDefinitionsEmpty(): boolean {