From 9d27be6f11a1734b24f11f7b46471d1c5a1dc5a4 Mon Sep 17 00:00:00 2001 From: jasquat Date: Wed, 3 May 2023 11:16:13 -0400 Subject: [PATCH] removed the format header method from frontend so we only use the columns that come from the metadata now w/ burnettk --- .../process_instance_report_service.py | 2 +- .../components/ProcessInstanceListTable.tsx | 45 ++++++++----------- spiffworkflow-frontend/src/interfaces.ts | 6 +++ 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py index fc7b9d43..d6406117 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py @@ -100,7 +100,7 @@ class ProcessInstanceReportService: {"Header": "Waiting For", "accessor": "waiting_for", "filterable": False}, {"Header": "Started", "accessor": "start_in_seconds", "filterable": False}, {"Header": "Last Updated", "accessor": "task_updated_at_in_seconds", "filterable": False}, - {"Header": "status", "accessor": "status", "filterable": False}, + {"Header": "Status", "accessor": "status", "filterable": False}, ], "filter_by": [ {"field_name": "initiated_by_me", "field_value": True, "operator": "equals"}, diff --git a/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx b/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx index 46407642..ef213c92 100644 --- a/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx +++ b/spiffworkflow-frontend/src/components/ProcessInstanceListTable.tsx @@ -138,7 +138,9 @@ export default function ProcessInstanceListTable({ ); const canSearchUsers: boolean = ability.can('GET', targetUris.userSearch); - const [processInstances, setProcessInstances] = useState([]); + const [processInstances, setProcessInstances] = useState( + [] + ); const [reportMetadata, setReportMetadata] = useState(); const [pagination, setPagination] = useState(null); @@ -1509,7 +1511,7 @@ export default function ProcessInstanceListTable({ return value; }; - const formattedColumn = (row: any, column: any) => { + const formattedColumn = (row: ProcessInstance, column: ReportColumn) => { const reportColumnFormatters: Record = { id: formatProcessInstanceId, process_model_identifier: formatProcessModelIdentifier, @@ -1520,40 +1522,41 @@ export default function ProcessInstanceListTable({ updated_at_in_seconds: formatSecondsForDisplay, task_updated_at_in_seconds: formatSecondsForDisplay, }; + const columnAccessor = column.accessor as keyof ProcessInstance; const formatter = - reportColumnFormatters[column.accessor] ?? defaultFormatter; - const value = row[column.accessor]; + reportColumnFormatters[columnAccessor] ?? defaultFormatter; + const value = row[columnAccessor]; - if (column.accessor === 'status') { + if (columnAccessor === 'status') { return ( {formatter(row, value)} ); } - if (column.accessor === 'process_model_display_name') { + if (columnAccessor === 'process_model_display_name') { return {formatter(row, value)} ; } - if (column.accessor === 'waiting_for') { + if (columnAccessor === 'waiting_for') { return {getWaitingForTableCellComponent(row)} ; } - if (column.accessor === 'updated_at_in_seconds') { + if (columnAccessor === 'updated_at_in_seconds') { return ( ); } - if (column.accessor === 'task_updated_at_in_seconds') { + if (columnAccessor === 'task_updated_at_in_seconds') { return ( ); } return ( // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions - + {formatter(row, value)} ); @@ -1561,27 +1564,15 @@ export default function ProcessInstanceListTable({ // eslint-disable-next-line sonarjs/cognitive-complexity const buildTable = () => { - const headerLabels: Record = { - id: 'Id', - process_model_identifier: 'Process', - process_model_display_name: 'Process', - start_in_seconds: 'Start Time', - end_in_seconds: 'End Time', - status: 'Status', - process_initiator_username: 'Started By', - }; - const getHeaderLabel = (header: string) => { - return headerLabels[header] ?? header; - }; - const headers = reportColumns().map((column: any) => { - return getHeaderLabel((column as any).Header); + const headers = reportColumns().map((column: ReportColumn) => { + return column.Header; }); if (showActionsColumn) { headers.push('Action'); } - const rows = processInstances.map((row: any) => { - const currentRow = reportColumns().map((column: any) => { + const rows = processInstances.map((row: ProcessInstance) => { + const currentRow = reportColumns().map((column: ReportColumn) => { return formattedColumn(row, column); }); if (showActionsColumn) { diff --git a/spiffworkflow-frontend/src/interfaces.ts b/spiffworkflow-frontend/src/interfaces.ts index 680d2ee5..37899b3c 100644 --- a/spiffworkflow-frontend/src/interfaces.ts +++ b/spiffworkflow-frontend/src/interfaces.ts @@ -143,6 +143,12 @@ export interface ProcessInstance { bpmn_version_control_type: string; process_metadata?: ProcessInstanceMetadata[]; process_model_with_diagram_identifier?: string; + + // from tasks + potential_owner_usernames?: string; + task_id?: string; + task_updated_at_in_seconds?: number; + waiting_for?: string; } export interface MessageCorrelationProperties {