From a21f8ccb59bbf8c2d553cbd6023533ff35ea7fae Mon Sep 17 00:00:00 2001 From: Jenny Zhu Date: Tue, 14 May 2019 13:05:11 -0700 Subject: [PATCH 1/2] deleted created_time in "status" --- web-console/src/views/tasks-view.tsx | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/web-console/src/views/tasks-view.tsx b/web-console/src/views/tasks-view.tsx index 8acee1002803..194a724d3dae 100644 --- a/web-console/src/views/tasks-view.tsx +++ b/web-console/src/views/tasks-view.tsx @@ -600,7 +600,7 @@ ORDER BY "rank" DESC, "created_time" DESC`); Header: 'Status', id: 'status', width: 110, - accessor: (row) => { return {status: row.status, created_time: row.created_time}; }, + accessor: (row) => row.status, Cell: row => { if (row.aggregated) return ''; const { status, location } = row.original; @@ -617,23 +617,12 @@ ORDER BY "rank" DESC, "created_time" DESC`); {errorMsg && this.setState({ alertErrorMsg: errorMsg })} title={errorMsg}> ?} ; }, - PivotValue: (opt) => { - const { subRows, value } = opt; - if (!subRows || !subRows.length) return ''; - return `${subRows[0]._original['status']} (${subRows.length})`; - }, - Aggregated: (opt: any) => { - const { subRows, column } = opt; - const previewValues = subRows.filter((d: any) => typeof d[column.id] !== 'undefined').map((row: any) => row._original[column.id]); - const previewCount = countBy(previewValues); - return {Object.keys(previewCount).sort().map(v => `${v} (${previewCount[v]})`).join(', ')}; - }, sortMethod: (d1, d2) => { const statusRanking: any = TasksView.statusRanking; - return statusRanking[d1.status] - statusRanking[d2.status] || d1.created_time.localeCompare(d2.created_time); + return statusRanking[d1] - statusRanking[d2]; }, filterMethod: (filter: Filter, row: any) => { - return booleanCustomTableFilter(filter, row.status.status); + return booleanCustomTableFilter(filter, row.status); }, show: taskTableColumnSelectionHandler.showColumn('Status') }, From 36b9b5d3f5e013990bf3dc570aeb3583668d6dc7 Mon Sep 17 00:00:00 2001 From: Jenny Zhu Date: Thu, 16 May 2019 13:26:07 -0700 Subject: [PATCH 2/2] added toString on the status object --- web-console/src/views/tasks-view.tsx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/web-console/src/views/tasks-view.tsx b/web-console/src/views/tasks-view.tsx index 194a724d3dae..b76d23d5d218 100644 --- a/web-console/src/views/tasks-view.tsx +++ b/web-console/src/views/tasks-view.tsx @@ -117,7 +117,7 @@ export class TasksView extends React.Component { private taskQueryManager: QueryManager; private supervisorTableColumnSelectionHandler: TableColumnSelectionHandler; private taskTableColumnSelectionHandler: TableColumnSelectionHandler; - static statusRanking = {RUNNING: 4, PENDING: 3, WAITING: 2, SUCCESS: 1, FAILED: 1}; + static statusRanking: Record = {RUNNING: 4, PENDING: 3, WAITING: 2, SUCCESS: 1, FAILED: 1}; constructor(props: TasksViewProps, context: any) { super(props, context); @@ -600,7 +600,7 @@ ORDER BY "rank" DESC, "created_time" DESC`); Header: 'Status', id: 'status', width: 110, - accessor: (row) => row.status, + accessor: (row) => ({ status: row.status, created_time: row.created_time, toString: () => row.status }), Cell: row => { if (row.aggregated) return ''; const { status, location } = row.original; @@ -618,11 +618,22 @@ ORDER BY "rank" DESC, "created_time" DESC`); ; }, sortMethod: (d1, d2) => { - const statusRanking: any = TasksView.statusRanking; - return statusRanking[d1] - statusRanking[d2]; + const typeofD1 = typeof d1; + const typeofD2 = typeof d2; + if (typeofD1 !== typeofD2) return 0; + switch (typeofD1) { + case 'string': + return TasksView.statusRanking[d1] - TasksView.statusRanking[d2]; + + case 'object': + return TasksView.statusRanking[d1.status] - TasksView.statusRanking[d2.status] || d1.created_time.localeCompare(d2.created_time); + + default: + return 0; + } }, filterMethod: (filter: Filter, row: any) => { - return booleanCustomTableFilter(filter, row.status); + return booleanCustomTableFilter(filter, row.status.status); }, show: taskTableColumnSelectionHandler.showColumn('Status') },