[AAE-9461] Change variable process definition id (#7706)

This commit is contained in:
Bartosz Sekuła 2022-07-12 16:10:07 +02:00 committed by GitHub
parent 23a76e0e79
commit 635e62cbd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 30 additions and 19 deletions

View File

@ -18,5 +18,6 @@
export const PROCESS_LIST_CUSTOM_VARIABLE_COLUMN = 'process-variable-column'; export const PROCESS_LIST_CUSTOM_VARIABLE_COLUMN = 'process-variable-column';
export interface ProcessListDataColumnCustomData { export interface ProcessListDataColumnCustomData {
assignedVariableDefinitionIds: string[]; assignedVariableDefinitionIds: string[];
variableDefinitionsPayload: string[];
columnType: string; columnType: string;
} }

View File

@ -49,7 +49,7 @@ export class TaskQueryCloudRequestModel {
completedFrom?: string; completedFrom?: string;
completedTo?: string; completedTo?: string;
candidateGroupId?: string; candidateGroupId?: string;
variableDefinitions?: string[]; variableKeys?: string[];
constructor(obj?: any) { constructor(obj?: any) {
if (obj) { if (obj) {
@ -84,7 +84,7 @@ export class TaskQueryCloudRequestModel {
this.completedTo = obj.completedTo; this.completedTo = obj.completedTo;
this.completedDate = obj.completedDate; this.completedDate = obj.completedDate;
this.candidateGroupId = obj.candidateGroupId; this.candidateGroupId = obj.candidateGroupId;
this.variableDefinitions = obj.variableDefinitions; this.variableKeys = obj.variableKeys;
} }
} }
} }

View File

@ -115,6 +115,7 @@ describe('ProcessListCloudComponent', () => {
getDataColumnMock({ getDataColumnMock({
id: 'variableColumnId', id: 'variableColumnId',
customData: { customData: {
variableDefinitionsPayload: ['processKey/variableName'],
assignedVariableDefinitionIds: ['variableDefinitionId'], assignedVariableDefinitionIds: ['variableDefinitionId'],
columnType: PROCESS_LIST_CUSTOM_VARIABLE_COLUMN columnType: PROCESS_LIST_CUSTOM_VARIABLE_COLUMN
} }
@ -321,7 +322,7 @@ describe('ProcessListCloudComponent', () => {
component.ngAfterContentInit(); component.ngAfterContentInit();
component.reload(); component.reload();
expect(component.requestNode.variableDefinitions).not.toBeDefined(); expect(component.requestNode.variableKeys).not.toBeDefined();
}); });
it('should request process variable if column for process variable is displayed', () => { it('should request process variable if column for process variable is displayed', () => {
@ -333,7 +334,7 @@ describe('ProcessListCloudComponent', () => {
entries: [{ entries: [{
entry: { entry: {
key: ProcessListCloudPreferences.columnsVisibility, key: ProcessListCloudPreferences.columnsVisibility,
value: '{"variableColumnId":true, "2":true}' value: '{"variableColumnId":"id", "2":true}'
} }
}] }]
} }
@ -342,7 +343,7 @@ describe('ProcessListCloudComponent', () => {
component.ngAfterContentInit(); component.ngAfterContentInit();
component.reload(); component.reload();
expect(component.requestNode.variableDefinitions).toEqual(['variableDefinitionId']); expect(component.requestNode.variableKeys).toEqual(['processKey/variableName']);
}); });
it('should reload tasks when reload() is called', (done) => { it('should reload tasks when reload() is called', (done) => {

View File

@ -440,7 +440,7 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
suspendedTo: this.suspendedTo, suspendedTo: this.suspendedTo,
completedDate: this.completedDate, completedDate: this.completedDate,
sorting: this.sorting, sorting: this.sorting,
variableDefinitions: this.getRequestNodeVariableIds() variableKeys: this.getVariableDefinitionsRequestModel()
}; };
return new ProcessQueryCloudRequestModel(requestNode); return new ProcessQueryCloudRequestModel(requestNode);
@ -469,14 +469,17 @@ export class ProcessListCloudComponent extends DataTableSchema<ProcessListDataCo
return sorting.length && sorting[0].orderBy && sorting[0].direction; return sorting.length && sorting[0].orderBy && sorting[0].direction;
} }
private getRequestNodeVariableIds(): string[] | undefined { private getVariableDefinitionsRequestModel(): string[] | undefined {
const displayedVariableColumns = this.columns const displayedVariableColumns = this.columns
.filter(column => .filter(column =>
column.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN && column.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN &&
column.isHidden !== true column.isHidden !== true
) )
.map(column => column.customData.assignedVariableDefinitionIds) .map(column => {
.reduce((allIds, ids) => [...ids, ...allIds], []); const variableDefinitionsPayload = column.customData.variableDefinitionsPayload;
return variableDefinitionsPayload;
})
.reduce((variablesPayload, payload) => [...variablesPayload, ...payload], []);
return displayedVariableColumns.length ? displayedVariableColumns : undefined; return displayedVariableColumns.length ? displayedVariableColumns : undefined;
} }

View File

@ -41,6 +41,7 @@ describe('ProcessListDatatableAdapter', () => {
title: 'columnDisplayName1', title: 'columnDisplayName1',
customData: { customData: {
assignedVariableDefinitionIds: ['1'], assignedVariableDefinitionIds: ['1'],
variableDefinitionsPayload: ['processKey/variableName'],
columnType: PROCESS_LIST_CUSTOM_VARIABLE_COLUMN columnType: PROCESS_LIST_CUSTOM_VARIABLE_COLUMN
} }
}); });

View File

@ -42,7 +42,7 @@ export class ProcessQueryCloudRequestModel {
maxItems: number; maxItems: number;
skipCount: number; skipCount: number;
sorting?: ProcessListCloudSortingModel[]; sorting?: ProcessListCloudSortingModel[];
variableDefinitions?: string[]; variableKeys?: string[];
constructor(obj?: any) { constructor(obj?: any) {
if (obj) { if (obj) {
@ -70,7 +70,7 @@ export class ProcessQueryCloudRequestModel {
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.variableDefinitions = obj.variableDefinitions; this.variableKeys = obj.variableKeys;
} }
} }
} }

View File

@ -88,7 +88,7 @@ export class ProcessListCloudService extends BaseCloudService {
requestNode: ProcessQueryCloudRequestModel, requestNode: ProcessQueryCloudRequestModel,
property: keyof ProcessQueryCloudRequestModel property: keyof ProcessQueryCloudRequestModel
) { ) {
if (property === 'variableDefinitions' && requestNode[property]?.length > 0) { if (property === 'variableKeys' && requestNode[property]?.length > 0) {
return `${requestNode[property].map(variableId => variableId).join(',')}`; return `${requestNode[property].map(variableId => variableId).join(',')}`;
} }

View File

@ -42,6 +42,7 @@ describe('VariableMapperService', () => {
title: 'column name', title: 'column name',
key: '', key: '',
customData: { customData: {
variableDefinitionsPayload: ['processKey/variableName'],
assignedVariableDefinitionIds: [variable.variableDefinitionId], assignedVariableDefinitionIds: [variable.variableDefinitionId],
columnType: 'text' columnType: 'text'
} }

View File

@ -33,7 +33,7 @@ export class VariableMapperService {
return instance; return instance;
} }
const variablesMap = (instance.variables ?? []).reduce((variableAccumulator, variable) => { const variablesMap = (instance.variables ?? []).reduce<{[columnTitle: string]: ProcessInstanceVariable}>((variableAccumulator, variable) => {
const processVariableDefinitionId = variable.variableDefinitionId; const processVariableDefinitionId = variable.variableDefinitionId;
const column = columnsByVariableId[processVariableDefinitionId]; const column = columnsByVariableId[processVariableDefinitionId];

View File

@ -214,20 +214,23 @@ export class TaskListCloudComponent extends BaseTaskListCloudComponent<ProcessLi
completedTo: this.completedTo, completedTo: this.completedTo,
completedDate: this.completedDate, completedDate: this.completedDate,
candidateGroupId: this.candidateGroupId, candidateGroupId: this.candidateGroupId,
variableDefinitions: this.getRequestNodeVariableIds() variableKeys: this.getRequestNodeVariables()
}; };
return new TaskQueryCloudRequestModel(requestNode); return new TaskQueryCloudRequestModel(requestNode);
} }
private getRequestNodeVariableIds(): string[] | undefined { private getRequestNodeVariables(): string[] | undefined {
const displayedVariableColumns: string[] = (this.columns ?? []) const displayedVariableColumns: string[] = (this.columns ?? [])
.filter(column => .filter(column =>
column.customData?.columnType === 'process-variable-column' && column.customData?.columnType === 'process-variable-column' &&
column.isHidden !== true column.isHidden !== true
) )
.map(column => column.customData.assignedVariableDefinitionIds) .map(column => {
.reduce((allIds, ids) => [...ids, ...allIds], []); const variableDefinitionsPayload = column.customData.variableDefinitionsPayload;
return variableDefinitionsPayload;
})
.reduce((allRequestKeys, requestKeys) => [...requestKeys, ...allRequestKeys], []);
return displayedVariableColumns.length ? displayedVariableColumns : undefined; return displayedVariableColumns.length ? displayedVariableColumns : undefined;
} }

View File

@ -51,6 +51,7 @@ describe('TasksListDatatableAdapter', () => {
title: 'columnDisplayName1', title: 'columnDisplayName1',
customData: { customData: {
assignedVariableDefinitionIds: ['variableDefinitionId'], assignedVariableDefinitionIds: ['variableDefinitionId'],
variableDefinitionsPayload: ['processKey/variableName'],
columnType: PROCESS_LIST_CUSTOM_VARIABLE_COLUMN columnType: PROCESS_LIST_CUSTOM_VARIABLE_COLUMN
} }
}); });

View File

@ -72,8 +72,8 @@ export class TaskListCloudService extends BaseCloudService implements TaskListCl
!this.isExcludedField(propertyKey) && !this.isExcludedField(propertyKey) &&
this.isPropertyValueValid(requestNode, propertyKey) this.isPropertyValueValid(requestNode, propertyKey)
) { ) {
if (propertyKey === 'variableDefinitions' && requestNode[propertyKey]?.length > 0) { if (propertyKey === 'variableKeys' && requestNode[propertyKey]?.length > 0) {
queryParam['variableDefinitions'] = requestNode[propertyKey].join(','); queryParam[propertyKey] = requestNode[propertyKey].join(',');
} else { } else {
queryParam[propertyKey] = requestNode[propertyKey]; queryParam[propertyKey] = requestNode[propertyKey];
} }