From 5327181055635aaa2788d45f9d30f0fcf29dfe55 Mon Sep 17 00:00:00 2001 From: Bartosz Sekula Date: Thu, 21 Nov 2024 07:20:16 -0500 Subject: [PATCH] AAE-27328 Add process variables to the search for searching Tasks (#10414) * AAE-27328 Add process variables to the search for searching Tasks * fix after rebase --- .../src/lib/models/filter-cloud-model.ts | 12 +++------ .../models/process-variable-filter.model.ts | 26 +++++++++++++++++++ .../models/process-filter-cloud.model.ts | 11 +------- .../process-list-cloud.component.ts | 4 +-- .../process-cloud-query-request.model.ts | 3 ++- .../task-filters/models/filter-cloud.model.ts | 5 +++- .../components/task-list-cloud.component.ts | 13 ++++++++-- .../services/task-list-cloud.service.ts | 3 ++- lib/process-services-cloud/src/public-api.ts | 1 + 9 files changed, 52 insertions(+), 26 deletions(-) create mode 100644 lib/process-services-cloud/src/lib/models/process-variable-filter.model.ts diff --git a/lib/process-services-cloud/src/lib/models/filter-cloud-model.ts b/lib/process-services-cloud/src/lib/models/filter-cloud-model.ts index e98f4986c1..5fa08899ee 100644 --- a/lib/process-services-cloud/src/lib/models/filter-cloud-model.ts +++ b/lib/process-services-cloud/src/lib/models/filter-cloud-model.ts @@ -18,6 +18,7 @@ import { Pagination } from '@alfresco/js-api'; import { TaskListCloudSortingModel, TaskListRequestSortingModel } from './task-list-sorting.model'; import { TaskFilterCloudModel } from '../task/task-filters/models/filter-cloud.model'; +import { ProcessVariableFilterModel } from './process-variable-filter.model'; export class TaskQueryCloudRequestModel { appName: string; @@ -93,13 +94,6 @@ export class TaskQueryCloudRequestModel { } } -export interface TaskListRequestTaskVariableFilter { - name?: string; - type?: string; - value?: string; - operator?: string; -} - export class TaskListRequestModel { appName: string; pagination?: Pagination; @@ -128,8 +122,8 @@ export class TaskListRequestModel { candidateUserId?: string[]; candidateGroupId?: string[]; - taskVariableFilters?: TaskListRequestTaskVariableFilter[]; processVariableKeys?: string[]; + processVariableFilters?: ProcessVariableFilterModel[]; constructor(obj: Partial) { if (!obj.appName) { @@ -162,7 +156,7 @@ export class TaskListRequestModel { this.completedTo = obj.completedTo; this.candidateUserId = obj.candidateUserId; this.candidateGroupId = obj.candidateGroupId; - this.taskVariableFilters = obj.taskVariableFilters; + this.processVariableFilters = obj.processVariableFilters ?? []; this.processVariableKeys = obj.processVariableKeys; } } diff --git a/lib/process-services-cloud/src/lib/models/process-variable-filter.model.ts b/lib/process-services-cloud/src/lib/models/process-variable-filter.model.ts new file mode 100644 index 0000000000..7a62a7abdd --- /dev/null +++ b/lib/process-services-cloud/src/lib/models/process-variable-filter.model.ts @@ -0,0 +1,26 @@ +/*! + * @license + * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export type ProcessFilterOperators = 'eq' | 'like' | 'gt' | 'gte' | 'lt' | 'lte'; + +export interface ProcessVariableFilterModel { + processDefinitionKey: string; + name: string; + type: string; + value: string | number; + operator: ProcessFilterOperators; +} 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 92a55804bb..7a5bee22c2 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 @@ -20,16 +20,7 @@ import { DateCloudFilterType } from '../../../models/date-cloud-filter.model'; import { DateRangeFilterService } from '../../../common/date-range-filter/date-range-filter.service'; import { ComponentSelectionMode } from '../../../types'; - -export type ProcessFilterOperators = 'eq' | 'like' | 'gt' | 'gte' | 'lt' | 'lte'; - -export interface ProcessVariableFilterModel { - processDefinitionKey: string; - name: string; - type: string; - value: string | number; - operator: ProcessFilterOperators; - } +import { ProcessVariableFilterModel } from '../../../models/process-variable-filter.model'; export class ProcessFilterCloudModel { id: string; 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 144941352a..672f3d2050 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 @@ -63,7 +63,7 @@ import { } from '../../../models/data-column-custom-data'; import { VariableMapperService } from '../../../services/variable-mapper.sevice'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { ProcessVariableFilterModel } from '../../process-filters/models/process-filter-cloud.model'; +import { ProcessVariableFilterModel } from '../../../models/process-variable-filter.model'; const PRESET_KEY = 'adf-cloud-process-list.presets'; @@ -241,7 +241,7 @@ export class ProcessListCloudComponent * This input will be used only if PROCESS_SEARCH_API_METHOD_TOKEN is provided with 'POST' value. */ @Input() - processVariables: ProcessVariableFilterModel[] + processVariables: ProcessVariableFilterModel[]; /** Emitted when a row in the process list is clicked. */ @Output() 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 e2454d1133..42060fa7ac 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 @@ -17,7 +17,8 @@ import { Pagination } from '@alfresco/js-api'; import { ProcessListCloudSortingModel, ProcessListRequestSortingModel } from './process-list-sorting.model'; -import { ProcessFilterCloudModel, ProcessVariableFilterModel } from '../../process-filters/models/process-filter-cloud.model'; +import { ProcessFilterCloudModel } from '../../process-filters/models/process-filter-cloud.model'; +import { ProcessVariableFilterModel } from '../../../models/process-variable-filter.model'; export class ProcessQueryCloudRequestModel { appName: string; diff --git a/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts b/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts index 8ae648ab0b..28062ec3a8 100644 --- a/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts +++ b/lib/process-services-cloud/src/lib/task/task-filters/models/filter-cloud.model.ts @@ -24,6 +24,7 @@ import { DateRangeFilterService } from '../../../common/date-range-filter/date-r import { ComponentSelectionMode } from '../../../types'; import { IdentityGroupModel } from '../../../group/models/identity-group.model'; import { IdentityUserModel } from '../../../people/models/identity-user.model'; +import { ProcessVariableFilterModel } from '../../../models/process-variable-filter.model'; export class TaskFilterCloudModel { id: string; @@ -75,6 +76,8 @@ export class TaskFilterCloudModel { private _createdTo: string; private dateRangeFilterService = new DateRangeFilterService(); + processVariableFilters?: ProcessVariableFilterModel[]; + constructor(obj?: any) { if (obj) { this.id = obj.id || Math.random().toString(36).substr(2, 9); @@ -115,13 +118,13 @@ export class TaskFilterCloudModel { this.createdTo = obj._createdTo || null; this.candidateGroups = obj.candidateGroups || null; this.showCounter = obj.showCounter || false; - this.taskNames = obj.taskNames || null; this.statuses = obj.statuses || null; this.assignees = obj.assignees || null; this.processDefinitionNames = obj.processDefinitionNames || null; this.priorities = obj.priorities || null; this.completedByUsers = obj.completedByUsers || null; + this.processVariableFilters = obj.processVariableFilters ?? []; } } diff --git a/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts b/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts index 25801bf0b4..26f3ecf0ee 100644 --- a/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts +++ b/lib/process-services-cloud/src/lib/task/task-list/components/task-list-cloud.component.ts @@ -33,6 +33,7 @@ import { TaskInstanceCloudListViewModel } from '../models/task-cloud-view.model' import { TasksListDatatableAdapter } from '../datatable/task-list-datatable-adapter'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { TaskListRequestSortingModel } from '../../../models/task-list-sorting.model'; +import { ProcessVariableFilterModel } from '../../../models/process-variable-filter.model'; const PRESET_KEY = 'adf-cloud-task-list.presets'; @@ -189,6 +190,13 @@ export class TaskListCloudComponent extends BaseTaskListCloudComponent