diff --git a/core/ui/modules/grid-actions.js b/core/ui/modules/grid-actions.js index 6f1e866..fb9c59f 100644 --- a/core/ui/modules/grid-actions.js +++ b/core/ui/modules/grid-actions.js @@ -42,11 +42,17 @@ export function goToPage(pageIndex) { } export function onColumnSort(columnName) { - if (state.sortedColumn === columnName) { - state.sortAscending = !state.sortAscending; - } else { + // Cycle through three states on repeated clicks of the same column: + // none (original order) -> ascending -> descending -> none ... + if (state.sortedColumn !== columnName) { state.sortedColumn = columnName; state.sortAscending = true; + } else if (state.sortAscending) { + state.sortAscending = false; + } else { + // Back to the original, unsorted order. + state.sortedColumn = null; + state.sortAscending = true; } loadTableData(); persistState(); diff --git a/core/ui/modules/grid-render.js b/core/ui/modules/grid-render.js index 0c9b37e..89fc116 100644 --- a/core/ui/modules/grid-render.js +++ b/core/ui/modules/grid-render.js @@ -66,7 +66,7 @@ function createTableHeader(rowNumWidth, orderedColumns, pinnedColumnOffsets) { th.innerHTML = `