LP1929741 Combobox asyncSupportsEmptyTermClick fix
authorBill Erickson <berickxx@gmail.com>
Fri, 4 Dec 2020 16:17:51 +0000 (11:17 -0500)
committerJane Sandberg <js7389@princeton.edu>
Sun, 2 Oct 2022 15:02:49 +0000 (08:02 -0700)
Fixes situation where combobox would fetch the needed entries in async
mode, but fail to open the drop-down after a click.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Open-ILS/src/eg2/src/app/share/combobox/combobox.component.ts

index 7df59e8..a365c7e 100644 (file)
@@ -475,12 +475,14 @@ export class ComboboxComponent implements ControlValueAccessor, OnInit, AfterVie
             return of(term);
         }
 
-        let searchTerm: string;
-        searchTerm = term;
-        if (searchTerm === '_CLICK_') {
+        let searchTerm = term;
+        if (term === '_CLICK_') {
             if (this.asyncSupportsEmptyTermClick) {
+                // Search for "all", but retain and propage the _CLICK_
+                // term so the filter knows to open the selector
                 searchTerm = '';
             } else {
+                // Skip the final filter map and display nothing.
                 return of();
             }
         }
@@ -532,17 +534,8 @@ export class ComboboxComponent implements ControlValueAccessor, OnInit, AfterVie
                 // click action occurred.
                 if (term === '') { return []; }
 
-                // Clicking always displays the full list.
-                if (term === '_CLICK_') {
-                    if (this.asyncDataSource) {
-                        term = '';
-                    } else {
-                        // Give the typeahead a chance to open before applying
-                        // the disabled entry styling.
-                        setTimeout(() => this.applyDisableStyle());
-                        return this.entrylist;
-                    }
-                }
+                // If we make it this far, _CLICK_ means show everything.
+                if (term === '_CLICK_') { term = ''; }
 
                 // Give the typeahead a chance to open before applying
                 // the disabled entry styling.