From 5f767e2c9ae12e004bf034f5943f22e8c4ab9ac4 Mon Sep 17 00:00:00 2001 From: Speak Your Code Date: Mon, 8 Jun 2020 14:28:45 +0200 Subject: [PATCH] TablePanel: Sort numbers correctly (#25421) * Table sortType to basic to be able to sort negative numbers * Table sortType based on field type --- packages/grafana-ui/src/components/Table/utils.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/grafana-ui/src/components/Table/utils.ts b/packages/grafana-ui/src/components/Table/utils.ts index 6559d078de8..ce37b5c99fd 100644 --- a/packages/grafana-ui/src/components/Table/utils.ts +++ b/packages/grafana-ui/src/components/Table/utils.ts @@ -35,7 +35,7 @@ export function getTextAlign(field?: Field): TextAlignProperty { } export function getColumns(data: DataFrame, availableWidth: number, columnMinWidth: number): Column[] { - const columns: Column[] = []; + const columns: any[] = []; let fieldCountWithoutWidth = data.fields.length; for (const [fieldIndex, field] of data.fields.entries()) { @@ -50,6 +50,15 @@ export function getColumns(data: DataFrame, availableWidth: number, columnMinWid fieldCountWithoutWidth -= 1; } + const selectSortType = (type: FieldType): string => { + switch (type) { + case FieldType.number: + case FieldType.time: + return 'basic'; + default: + return 'alphanumeric'; + } + }; const Cell = getCellComponent(fieldTableOptions.displayMode, field); columns.push({ Cell, @@ -58,6 +67,7 @@ export function getColumns(data: DataFrame, availableWidth: number, columnMinWid accessor: (row: any, i: number) => { return field.values.get(i); }, + sortType: selectSortType(field.type), width: fieldTableOptions.width, minWidth: 50, });