mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
AAE-25144 Process variables filters (#10405)
* AAE-25144 Implements process variables filters * update * fix lint
This commit is contained in:
@@ -16,3 +16,4 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
export * from './interface/index';
|
export * from './interface/index';
|
||||||
|
export * from './date-range-filter/date-range-filter.service';
|
||||||
|
@@ -323,7 +323,7 @@ export class ProcessFiltersCloudComponent implements OnInit, OnChanges {
|
|||||||
|
|
||||||
private fetchProcessFilterCounter(filter: ProcessFilterCloudModel): Observable<number> {
|
private fetchProcessFilterCounter(filter: ProcessFilterCloudModel): Observable<number> {
|
||||||
return this.searchMethod === 'POST'
|
return this.searchMethod === 'POST'
|
||||||
? this.processListCloudService.getProcessListCounter(new ProcessFilterCloudAdapter(filter))
|
? this.processListCloudService.getProcessListCounter(new ProcessFilterCloudAdapter(filter))
|
||||||
: this.processListCloudService.getProcessCounter(filter.appName, filter.status)
|
: this.processListCloudService.getProcessCounter(filter.appName, filter.status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,16 @@ import { DateCloudFilterType } from '../../../models/date-cloud-filter.model';
|
|||||||
import { DateRangeFilterService } from '../../../common/date-range-filter/date-range-filter.service';
|
import { DateRangeFilterService } from '../../../common/date-range-filter/date-range-filter.service';
|
||||||
import { ComponentSelectionMode } from '../../../types';
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
export class ProcessFilterCloudModel {
|
export class ProcessFilterCloudModel {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
@@ -53,6 +63,8 @@ export class ProcessFilterCloudModel {
|
|||||||
appVersions: string[] | null;
|
appVersions: string[] | null;
|
||||||
statuses: string[] | null;
|
statuses: string[] | null;
|
||||||
|
|
||||||
|
processVariableFilters?: ProcessVariableFilterModel[]
|
||||||
|
|
||||||
private dateRangeFilterService = new DateRangeFilterService();
|
private dateRangeFilterService = new DateRangeFilterService();
|
||||||
private _completedFrom: string;
|
private _completedFrom: string;
|
||||||
private _completedTo: string;
|
private _completedTo: string;
|
||||||
@@ -104,6 +116,7 @@ export class ProcessFilterCloudModel {
|
|||||||
this.initiators = obj.initiators || null;
|
this.initiators = obj.initiators || null;
|
||||||
this.appVersions = obj.appVersions || null;
|
this.appVersions = obj.appVersions || null;
|
||||||
this.statuses = obj.statuses || null;
|
this.statuses = obj.statuses || null;
|
||||||
|
this.processVariableFilters = obj.processVariableFilters ?? [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -63,6 +63,7 @@ import {
|
|||||||
} from '../../../models/data-column-custom-data';
|
} from '../../../models/data-column-custom-data';
|
||||||
import { VariableMapperService } from '../../../services/variable-mapper.sevice';
|
import { VariableMapperService } from '../../../services/variable-mapper.sevice';
|
||||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||||
|
import { ProcessVariableFilterModel } from '../../process-filters/models/process-filter-cloud.model';
|
||||||
|
|
||||||
const PRESET_KEY = 'adf-cloud-process-list.presets';
|
const PRESET_KEY = 'adf-cloud-process-list.presets';
|
||||||
|
|
||||||
@@ -235,6 +236,13 @@ export class ProcessListCloudComponent
|
|||||||
@Input()
|
@Input()
|
||||||
statuses: string[] = [];
|
statuses: string[] = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter the processes. Display only processes with specific process variables.
|
||||||
|
* This input will be used only if PROCESS_SEARCH_API_METHOD_TOKEN is provided with 'POST' value.
|
||||||
|
*/
|
||||||
|
@Input()
|
||||||
|
processVariables: ProcessVariableFilterModel[]
|
||||||
|
|
||||||
/** Emitted when a row in the process list is clicked. */
|
/** Emitted when a row in the process list is clicked. */
|
||||||
@Output()
|
@Output()
|
||||||
rowClick: EventEmitter<string> = new EventEmitter<string>();
|
rowClick: EventEmitter<string> = new EventEmitter<string>();
|
||||||
@@ -540,7 +548,8 @@ export class ProcessListCloudComponent
|
|||||||
completedTo: this.completedTo,
|
completedTo: this.completedTo,
|
||||||
suspendedFrom: this.suspendedFrom,
|
suspendedFrom: this.suspendedFrom,
|
||||||
suspendedTo: this.suspendedTo,
|
suspendedTo: this.suspendedTo,
|
||||||
processVariableKeys: this.getVariableDefinitionsRequestModel()
|
processVariableKeys: this.getVariableDefinitionsRequestModel(),
|
||||||
|
processVariableFilters: this.processVariables
|
||||||
};
|
};
|
||||||
|
|
||||||
return new ProcessListRequestModel(requestNode);
|
return new ProcessListRequestModel(requestNode);
|
||||||
|
@@ -17,74 +17,66 @@
|
|||||||
|
|
||||||
import { Pagination } from '@alfresco/js-api';
|
import { Pagination } from '@alfresco/js-api';
|
||||||
import { ProcessListCloudSortingModel, ProcessListRequestSortingModel } from './process-list-sorting.model';
|
import { ProcessListCloudSortingModel, ProcessListRequestSortingModel } from './process-list-sorting.model';
|
||||||
import { ProcessFilterCloudModel } from '../../process-filters/models/process-filter-cloud.model';
|
import { ProcessFilterCloudModel, ProcessVariableFilterModel } from '../../process-filters/models/process-filter-cloud.model';
|
||||||
|
|
||||||
export class ProcessQueryCloudRequestModel {
|
export class ProcessQueryCloudRequestModel {
|
||||||
appName: string;
|
appName: string;
|
||||||
appVersion?: number | string;
|
appVersion?: number | string;
|
||||||
initiator?: null;
|
initiator?: null;
|
||||||
id?: string;
|
id?: string;
|
||||||
environmentId?: string;
|
environmentId?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
processDefinitionId?: string;
|
processDefinitionId?: string;
|
||||||
processDefinitionName?: string;
|
processDefinitionName?: string;
|
||||||
processDefinitionKey?: string;
|
processDefinitionKey?: string;
|
||||||
status?: string;
|
status?: string;
|
||||||
startDate?: string;
|
startDate?: string;
|
||||||
businessKey?: string;
|
businessKey?: string;
|
||||||
lastModified?: string;
|
lastModified?: string;
|
||||||
lastModifiedTo?: string;
|
lastModifiedTo?: string;
|
||||||
lastModifiedFrom?: string;
|
lastModifiedFrom?: string;
|
||||||
startFrom?: string;
|
startFrom?: string;
|
||||||
startTo?: string;
|
startTo?: string;
|
||||||
completedFrom?: string;
|
completedFrom?: string;
|
||||||
completedTo?: string;
|
completedTo?: string;
|
||||||
suspendedFrom?: string;
|
suspendedFrom?: string;
|
||||||
suspendedTo?: string;
|
suspendedTo?: string;
|
||||||
completedDate?: string;
|
completedDate?: string;
|
||||||
maxItems: number;
|
maxItems: number;
|
||||||
skipCount: number;
|
skipCount: number;
|
||||||
sorting?: ProcessListCloudSortingModel[];
|
sorting?: ProcessListCloudSortingModel[];
|
||||||
variableKeys?: string[];
|
variableKeys?: string[];
|
||||||
|
|
||||||
constructor(obj?: any) {
|
constructor(obj?: any) {
|
||||||
if (obj) {
|
if (obj) {
|
||||||
this.appName = obj.appName;
|
this.appName = obj.appName;
|
||||||
this.appVersion = obj.appVersion;
|
this.appVersion = obj.appVersion;
|
||||||
this.initiator = obj.initiator;
|
this.initiator = obj.initiator;
|
||||||
this.id = obj.id;
|
this.id = obj.id;
|
||||||
this.environmentId = obj.environmentId;
|
this.environmentId = obj.environmentId;
|
||||||
this.name = obj.name;
|
this.name = obj.name;
|
||||||
this.processDefinitionId = obj.processDefinitionId;
|
this.processDefinitionId = obj.processDefinitionId;
|
||||||
this.processDefinitionName = obj.processDefinitionName;
|
this.processDefinitionName = obj.processDefinitionName;
|
||||||
this.processDefinitionKey = obj.processDefinitionKey;
|
this.processDefinitionKey = obj.processDefinitionKey;
|
||||||
this.status = obj.status;
|
this.status = obj.status;
|
||||||
this.startDate = obj.startDate;
|
this.startDate = obj.startDate;
|
||||||
this.businessKey = obj.businessKey;
|
this.businessKey = obj.businessKey;
|
||||||
this.lastModified = obj.lastModified;
|
this.lastModified = obj.lastModified;
|
||||||
this.lastModifiedTo = obj.lastModifiedTo;
|
this.lastModifiedTo = obj.lastModifiedTo;
|
||||||
this.lastModifiedFrom = obj.lastModifiedFrom;
|
this.lastModifiedFrom = obj.lastModifiedFrom;
|
||||||
this.startFrom = obj.startFrom;
|
this.startFrom = obj.startFrom;
|
||||||
this.startTo = obj.startTo;
|
this.startTo = obj.startTo;
|
||||||
this.completedFrom = obj.completedFrom;
|
this.completedFrom = obj.completedFrom;
|
||||||
this.completedTo = obj.completedTo;
|
this.completedTo = obj.completedTo;
|
||||||
this.suspendedFrom = obj.suspendedFrom;
|
this.suspendedFrom = obj.suspendedFrom;
|
||||||
this.suspendedTo = obj.suspendedTo;
|
this.suspendedTo = obj.suspendedTo;
|
||||||
this.completedDate = obj.completedDate;
|
this.completedDate = obj.completedDate;
|
||||||
this.maxItems = obj.maxItems;
|
this.maxItems = obj.maxItems;
|
||||||
this.skipCount = obj.skipCount;
|
this.skipCount = obj.skipCount;
|
||||||
this.sorting = obj.sorting;
|
this.sorting = obj.sorting;
|
||||||
this.variableKeys = obj.variableKeys;
|
this.variableKeys = obj.variableKeys;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
export interface ProcessListRequestProcessVariableFilter {
|
|
||||||
processDefinitionKey?: string;
|
|
||||||
name?: string;
|
|
||||||
type?: string;
|
|
||||||
value?: string;
|
|
||||||
operator?: string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ProcessListRequestModel {
|
export class ProcessListRequestModel {
|
||||||
@@ -105,7 +97,7 @@ export class ProcessListRequestModel {
|
|||||||
suspendedFrom?: string;
|
suspendedFrom?: string;
|
||||||
suspendedTo?: string;
|
suspendedTo?: string;
|
||||||
|
|
||||||
processVariableFilters?: ProcessListRequestProcessVariableFilter[];
|
processVariableFilters?: ProcessVariableFilterModel[];
|
||||||
processVariableKeys?: string[];
|
processVariableKeys?: string[];
|
||||||
|
|
||||||
constructor(obj: Partial<ProcessListRequestModel>) {
|
constructor(obj: Partial<ProcessListRequestModel>) {
|
||||||
@@ -130,6 +122,7 @@ export class ProcessListRequestModel {
|
|||||||
this.suspendedFrom = obj.suspendedFrom;
|
this.suspendedFrom = obj.suspendedFrom;
|
||||||
this.suspendedTo = obj.suspendedTo;
|
this.suspendedTo = obj.suspendedTo;
|
||||||
this.processVariableKeys = obj.processVariableKeys;
|
this.processVariableKeys = obj.processVariableKeys;
|
||||||
|
this.processVariableFilters = obj.processVariableFilters;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,6 +141,7 @@ export class ProcessFilterCloudAdapter extends ProcessListRequestModel {
|
|||||||
initiator: filter.initiators,
|
initiator: filter.initiators,
|
||||||
appVersion: filter.appVersions,
|
appVersion: filter.appVersions,
|
||||||
status: filter.statuses,
|
status: filter.statuses,
|
||||||
|
processVariableFilters: filter.processVariableFilters,
|
||||||
lastModifiedFrom: filter.lastModifiedFrom?.toISOString(),
|
lastModifiedFrom: filter.lastModifiedFrom?.toISOString(),
|
||||||
lasModifiedTo: filter.lastModifiedTo?.toISOString(),
|
lasModifiedTo: filter.lastModifiedTo?.toISOString(),
|
||||||
startFrom: filter.startFrom,
|
startFrom: filter.startFrom,
|
||||||
|
@@ -114,7 +114,8 @@ export class ProcessListCloudService extends BaseCloudService {
|
|||||||
completedTo: requestNode.completedTo,
|
completedTo: requestNode.completedTo,
|
||||||
suspendedFrom: requestNode.suspendedFrom,
|
suspendedFrom: requestNode.suspendedFrom,
|
||||||
suspendedTo: requestNode.suspendedTo,
|
suspendedTo: requestNode.suspendedTo,
|
||||||
processVariableKeys: requestNode.processVariableKeys
|
processVariableKeys: requestNode.processVariableKeys,
|
||||||
|
processVariableFilters: requestNode.processVariableFilters
|
||||||
};
|
};
|
||||||
|
|
||||||
if (requestNode.sorting) {
|
if (requestNode.sorting) {
|
||||||
|
Reference in New Issue
Block a user