mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
AAE-21967 use column id to retrieve variable column types (#9629)
* AAE-21967 use column id to retrieve variable column types * AAE-21967 fix variable mapper units
This commit is contained in:
@@ -26,7 +26,7 @@ describe('ProcessListDatatableAdapter', () => {
|
|||||||
const viewModel: ProcessInstanceCloudListViewModel = {
|
const viewModel: ProcessInstanceCloudListViewModel = {
|
||||||
id: '1',
|
id: '1',
|
||||||
variablesMap: {
|
variablesMap: {
|
||||||
columnDisplayName1: getProcessInstanceVariableMock({ type: 'number' })
|
columnId1: getProcessInstanceVariableMock({ type: 'number' })
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ describe('ProcessListDatatableAdapter', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const column: DataColumn<ProcessListDataColumnCustomData> = getDataColumnMock({
|
const column: DataColumn<ProcessListDataColumnCustomData> = getDataColumnMock({
|
||||||
title: 'columnDisplayName1',
|
id: 'columnId1',
|
||||||
customData: {
|
customData: {
|
||||||
assignedVariableDefinitionIds: ['1'],
|
assignedVariableDefinitionIds: ['1'],
|
||||||
variableDefinitionsPayload: ['processKey/variableName'],
|
variableDefinitionsPayload: ['processKey/variableName'],
|
||||||
|
@@ -20,17 +20,13 @@ import { ProcessListDataColumnCustomData, PROCESS_LIST_CUSTOM_VARIABLE_COLUMN }
|
|||||||
import { ProcessInstanceCloudListViewModel } from '../models/perocess-instance-cloud-view.model';
|
import { ProcessInstanceCloudListViewModel } from '../models/perocess-instance-cloud-view.model';
|
||||||
|
|
||||||
export class ProcessListDatatableAdapter extends ObjectDataTableAdapter {
|
export class ProcessListDatatableAdapter extends ObjectDataTableAdapter {
|
||||||
constructor(
|
constructor(data: ProcessInstanceCloudListViewModel[], schema: DataColumn<ProcessListDataColumnCustomData>[]) {
|
||||||
data: ProcessInstanceCloudListViewModel[],
|
|
||||||
schema: DataColumn<ProcessListDataColumnCustomData>[]
|
|
||||||
) {
|
|
||||||
super(data, schema);
|
super(data, schema);
|
||||||
}
|
}
|
||||||
|
|
||||||
getColumnType(row: DataRow, col: DataColumn<ProcessListDataColumnCustomData>): string {
|
getColumnType(row: DataRow, col: DataColumn<ProcessListDataColumnCustomData>): string {
|
||||||
if (col.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN) {
|
if (col.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN) {
|
||||||
const variableDisplayName = col.title;
|
const columnType = row.obj.variablesMap?.[col.id]?.type;
|
||||||
const columnType = row.obj.variablesMap?.[variableDisplayName]?.type;
|
|
||||||
return columnType ?? 'text';
|
return columnType ?? 'text';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -32,7 +32,7 @@ describe('VariableMapperService', () => {
|
|||||||
|
|
||||||
const viewModel = service.mapVariablesByColumnTitle([objectWithVariables], [column]);
|
const viewModel = service.mapVariablesByColumnTitle([objectWithVariables], [column]);
|
||||||
|
|
||||||
expect(viewModel[0].variablesMap[column.title].type).toEqual(expectedColumnType);
|
expect(viewModel[0].variablesMap[column.id].type).toEqual(expectedColumnType);
|
||||||
};
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
@@ -58,11 +58,11 @@ describe('VariableMapperService', () => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should map variables by column title', () => {
|
it('should map variables by column id', () => {
|
||||||
const expectedObjectWithVariableMap = {
|
const expectedObjectWithVariableMap = {
|
||||||
...objectWithVariables,
|
...objectWithVariables,
|
||||||
variablesMap: {
|
variablesMap: {
|
||||||
[column.title]: variable
|
[column.id]: variable
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -23,7 +23,7 @@ import { DataColumnType } from '@alfresco/adf-extensions';
|
|||||||
|
|
||||||
@Injectable({ providedIn: 'root' })
|
@Injectable({ providedIn: 'root' })
|
||||||
export class VariableMapperService {
|
export class VariableMapperService {
|
||||||
mapVariablesByColumnTitle <T extends { variables?: ProcessInstanceVariable[] }>(
|
mapVariablesByColumnTitle<T extends { variables?: ProcessInstanceVariable[] }>(
|
||||||
instancesList: T[] = [],
|
instancesList: T[] = [],
|
||||||
columnsSchema: DataColumn<ProcessListDataColumnCustomData>[] = []
|
columnsSchema: DataColumn<ProcessListDataColumnCustomData>[] = []
|
||||||
): Array<WithVariablesMap<T>> {
|
): Array<WithVariablesMap<T>> {
|
||||||
@@ -34,19 +34,22 @@ export class VariableMapperService {
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
const variablesMap = (instance.variables ?? []).reduce<{[columnTitle: string]: ProcessInstanceVariable}>((variableAccumulator, variable) => {
|
const variablesMap = (instance.variables ?? []).reduce<{ [columnTitle: string]: ProcessInstanceVariable }>(
|
||||||
const processVariableDefinitionPayload = `${variable.processDefinitionKey}/${variable.name}`;
|
(variableAccumulator, variable) => {
|
||||||
|
const processVariableDefinitionPayload = `${variable.processDefinitionKey}/${variable.name}`;
|
||||||
|
|
||||||
const column = columnsByVariables[processVariableDefinitionPayload];
|
const column = columnsByVariables[processVariableDefinitionPayload];
|
||||||
if (column) {
|
if (column) {
|
||||||
variableAccumulator[column] = {
|
variableAccumulator[column] = {
|
||||||
...variable,
|
...variable,
|
||||||
type: this.mapProcessVariableTypes(variable.type)
|
type: this.mapProcessVariableTypes(variable.type)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return variableAccumulator;
|
return variableAccumulator;
|
||||||
}, {});
|
},
|
||||||
|
{}
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...instance,
|
...instance,
|
||||||
@@ -57,20 +60,16 @@ export class VariableMapperService {
|
|||||||
return rowsViewModel;
|
return rowsViewModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private mapColumnKeysByVariable(
|
private mapColumnKeysByVariable(columnsSchema: DataColumn<ProcessListDataColumnCustomData>[]): { [key: string]: string } {
|
||||||
columnsSchema: DataColumn<ProcessListDataColumnCustomData>[]
|
|
||||||
): { [key: string]: string } {
|
|
||||||
const columnsByVariables = columnsSchema
|
const columnsByVariables = columnsSchema
|
||||||
.filter(column => !!column.customData)
|
.filter((column) => !!column.customData)
|
||||||
.reduce<{ [key: string]: string }>((columnsByVariable, column) => {
|
.reduce<{ [key: string]: string }>((columnsByVariable, column) => {
|
||||||
const columnTitle = column.title;
|
|
||||||
const variables = column.customData.variableDefinitionsPayload;
|
const variables = column.customData.variableDefinitionsPayload;
|
||||||
|
|
||||||
variables.forEach((key) => {
|
variables.forEach((key) => {
|
||||||
columnsByVariable[key] = columnTitle;
|
columnsByVariable[key] = column.id;
|
||||||
});
|
});
|
||||||
return columnsByVariable;
|
return columnsByVariable;
|
||||||
|
|
||||||
}, {});
|
}, {});
|
||||||
|
|
||||||
return columnsByVariables;
|
return columnsByVariables;
|
||||||
|
@@ -36,7 +36,7 @@ describe('TasksListDatatableAdapter', () => {
|
|||||||
const viewModel: TaskInstanceCloudListViewModel = {
|
const viewModel: TaskInstanceCloudListViewModel = {
|
||||||
...cloudModel,
|
...cloudModel,
|
||||||
variablesMap: {
|
variablesMap: {
|
||||||
columnDisplayName1: processVariable
|
columnId1: processVariable
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ describe('TasksListDatatableAdapter', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const column: DataColumn<ProcessListDataColumnCustomData> = getDataColumnMock({
|
const column: DataColumn<ProcessListDataColumnCustomData> = getDataColumnMock({
|
||||||
title: 'columnDisplayName1',
|
id: 'columnId1',
|
||||||
customData: {
|
customData: {
|
||||||
assignedVariableDefinitionIds: ['variableDefinitionId'],
|
assignedVariableDefinitionIds: ['variableDefinitionId'],
|
||||||
variableDefinitionsPayload: ['processKey/variableName'],
|
variableDefinitionsPayload: ['processKey/variableName'],
|
||||||
|
@@ -20,17 +20,13 @@ import { ProcessListDataColumnCustomData, PROCESS_LIST_CUSTOM_VARIABLE_COLUMN }
|
|||||||
import { TaskInstanceCloudListViewModel } from '../models/task-cloud-view.model';
|
import { TaskInstanceCloudListViewModel } from '../models/task-cloud-view.model';
|
||||||
|
|
||||||
export class TasksListDatatableAdapter extends ObjectDataTableAdapter {
|
export class TasksListDatatableAdapter extends ObjectDataTableAdapter {
|
||||||
constructor(
|
constructor(data: TaskInstanceCloudListViewModel[], schema: DataColumn<ProcessListDataColumnCustomData>[]) {
|
||||||
data: TaskInstanceCloudListViewModel[],
|
|
||||||
schema: DataColumn<ProcessListDataColumnCustomData>[]
|
|
||||||
) {
|
|
||||||
super(data, schema);
|
super(data, schema);
|
||||||
}
|
}
|
||||||
|
|
||||||
getColumnType(row: DataRow, col: DataColumn<ProcessListDataColumnCustomData>): string {
|
getColumnType(row: DataRow, col: DataColumn<ProcessListDataColumnCustomData>): string {
|
||||||
if (col.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN) {
|
if (col.customData?.columnType === PROCESS_LIST_CUSTOM_VARIABLE_COLUMN) {
|
||||||
const variableDisplayName = col.title;
|
const columnType = row.obj.variablesMap?.[col.id]?.type;
|
||||||
const columnType = row.obj.variablesMap?.[variableDisplayName]?.type;
|
|
||||||
return columnType ?? 'text';
|
return columnType ?? 'text';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user