LP1891699 Ang grid column picker sorting
authorBill Erickson <berickxx@gmail.com>
Fri, 14 Aug 2020 18:49:24 +0000 (14:49 -0400)
committerGalen Charlton <gmc@equinoxOLI.org>
Fri, 28 Oct 2022 00:13:35 +0000 (20:13 -0400)
Angular grid column picker displays colums in the following order:

1. Visible colums first, sorted alphabetically.
2. Non-visible columns second, sorted alphabetically.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mike Risher <mrisher@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/share/grid/grid.ts

index 13e7167..c22289e 100644 (file)
@@ -400,6 +400,19 @@ export class GridColumnSet {
             this.columns.filter(c => c.required && !c.visible));
     }
 
+    // Sorted visible columns followed by sorted non-visible columns.
+    // Note we don't sort this.columns directly as it would impact
+    // grid column display ordering.
+    sortForColPicker(): GridColumn[] {
+        const visible = this.columns.filter(c => c.visible);
+        const invisible = this.columns.filter(c => !c.visible);
+
+        visible.sort((a, b) => a.label < b.label ? -1 : 1);
+        invisible.sort((a, b) => a.label < b.label ? -1 : 1);
+
+        return visible.concat(invisible);
+    }
+
     insertBefore(source: GridColumn, target: GridColumn) {
         let targetIdx = -1;
         let sourceIdx = -1;