diff --git a/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts b/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts index 399db1a4de..ccf2031ce7 100644 --- a/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts +++ b/lib/process-services-cloud/src/lib/process/process-filters/models/process-filter-cloud.model.ts @@ -120,7 +120,7 @@ export class ProcessFilterCloudModel { this.initArrayProperties(obj); } - private initArrayProperties(obj) { + private initArrayProperties(obj: ProcessFilterCloudModel) { if (obj.processDefinitionNames) { this.processDefinitionNames = obj.processDefinitionNames; } else { diff --git a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts index c6f7ebde7c..aeb1cccf8c 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.spec.ts @@ -735,6 +735,35 @@ describe('ProcessListCloudComponent', () => { }); }); + describe('processRelatedTo', () => { + it('should include processRelatedTo in request node when values are provided', () => { + spyOn(processListCloudService, 'fetchProcessList').and.returnValue(of(fakeProcessCloudList)); + const relatedProcessIds = ['process-id-1', 'process-id-2']; + fixture.componentRef.setInput('processRelatedTo', relatedProcessIds); + component.ngAfterContentInit(); + component.reload(); + + expect(component.processListRequestNode.processRelatedTo).toEqual(relatedProcessIds); + }); + + it('should include empty array in request node when no values are provided', () => { + spyOn(processListCloudService, 'fetchProcessList').and.returnValue(of(fakeProcessCloudList)); + fixture.componentRef.setInput('processRelatedTo', []); + component.ngAfterContentInit(); + component.reload(); + + expect(component.processListRequestNode.processRelatedTo).toEqual([]); + }); + + it('should omit processRelatedTo in request node when values are not provided', () => { + spyOn(processListCloudService, 'fetchProcessList').and.returnValue(of(fakeProcessCloudList)); + component.ngAfterContentInit(); + component.reload(); + + expect(component.processListRequestNode.processRelatedTo).toEqual(undefined); + }); + }); + it('should return the results if an application name is given', (done) => { spyOn(processListCloudService, 'fetchProcessList').and.returnValue(of(fakeProcessCloudList)); const appName = new SimpleChange(null, 'FAKE-APP-NAME', true); diff --git a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts index b480d9e6ef..2ef755b369 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/components/process-list-cloud.component.ts @@ -21,6 +21,7 @@ import { ContentChild, EventEmitter, Inject, + input, Input, OnChanges, Output, @@ -65,6 +66,8 @@ import { ProcessVariableFilterModel } from '../../../models/process-variable-fil import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { TranslatePipe } from '@ngx-translate/core'; import { AsyncPipe, NgIf } from '@angular/common'; +import { PaginatedList } from '@alfresco/js-api'; +import { ProcessInstanceCloud } from '../../start-process/models/process-instance-cloud.model'; const PRESET_KEY = 'adf-cloud-process-list.presets'; @@ -100,6 +103,8 @@ export class ProcessListCloudComponent @ContentChild(CustomLoadingContentTemplateDirective) customLoadingContent: CustomLoadingContentTemplateDirective; + processRelatedTo = input(); + /** The name of the application. */ @Input() appName: string = ''; @@ -331,7 +336,7 @@ export class ProcessListCloudComponent /** Emitted when the list of process instances has been loaded successfully from the server. */ @Output() - success = new EventEmitter(); + success = new EventEmitter>(); pagination: BehaviorSubject; size: number; @@ -651,7 +656,8 @@ export class ProcessListCloudComponent includeSubprocesses: this.includeSubprocesses, includeUnlinkedProcesses: this.includeUnlinkedProcesses, processVariableKeys: this.getVariableDefinitionsRequestModel(), - processVariableFilters: this.processVariables + processVariableFilters: this.processVariables, + processRelatedTo: this.processRelatedTo() }; return new ProcessListRequestModel(requestNode); diff --git a/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts b/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts index 22b7fa5c6f..d7e2e8f575 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/models/process-cloud-query-request.model.ts @@ -104,6 +104,7 @@ export class ProcessListRequestModel { suspendedTo?: string; includeSubprocesses?: boolean; includeUnlinkedProcesses?: boolean; + processRelatedTo?: string[]; processVariableFilters?: ProcessVariableFilterModel[]; processVariableKeys?: string[]; @@ -137,6 +138,8 @@ export class ProcessListRequestModel { this.processVariableKeys = obj.processVariableKeys; this.processVariableFilters = obj.processVariableFilters; + + this.processRelatedTo = obj.processRelatedTo; } } diff --git a/lib/process-services-cloud/src/lib/process/process-list/services/process-list-cloud.service.ts b/lib/process-services-cloud/src/lib/process/process-list/services/process-list-cloud.service.ts index 3bc5f0a5dd..35e3f58481 100644 --- a/lib/process-services-cloud/src/lib/process/process-list/services/process-list-cloud.service.ts +++ b/lib/process-services-cloud/src/lib/process/process-list/services/process-list-cloud.service.ts @@ -120,7 +120,8 @@ export class ProcessListCloudService extends BaseCloudService { processVariableKeys: requestNode.processVariableKeys, processVariableFilters: requestNode.processVariableFilters, includeSubprocesses: requestNode.includeSubprocesses, - includeUnlinkedProcesses: requestNode.includeUnlinkedProcesses + includeUnlinkedProcesses: requestNode.includeUnlinkedProcesses, + processRelatedTo: requestNode.processRelatedTo }; if (requestNode.sorting) {