LP#1626157 org select display on click
authorBill Erickson <berickxx@gmail.com>
Mon, 16 Apr 2018 14:52:44 +0000 (14:52 +0000)
committerBill Erickson <berickxx@gmail.com>
Mon, 16 Apr 2018 14:52:44 +0000 (14:52 +0000)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/share/accesskey/accesskey.directive.ts
Open-ILS/src/eg2/src/app/share/org-select.component.html
Open-ILS/src/eg2/src/app/share/org-select.component.ts

index 8e58ab1..ddbe693 100644 (file)
@@ -30,8 +30,10 @@ export class EgAccessKeyDirective implements OnInit {
 
 
     ngOnInit() {
+        /*
         console.debug(
             `EgAccessKey assigning '${this.keySpec}' => ${this.keyDesc}`);
+        */
 
         this.keyService.assign({
             key: this.keySpec, 
index d7b9101..e628ab2 100644 (file)
@@ -11,5 +11,7 @@
   [ngbTypeahead]="filter"
   [resultTemplate]="displayTemplate"
   [inputFormatter]="formatter"
+  (click)="click$.next($event.target.value)"
   (selectItem)="orgChanged($event)"
+  #instance="ngbTypeahead"
 />
index f502c9e..4d0e776 100644 (file)
@@ -1,11 +1,13 @@
-import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';
+import {Component, OnInit, Input, Output, ViewChild, EventEmitter} from '@angular/core';
 import {Observable} from 'rxjs/Observable';
 import {map, debounceTime} from 'rxjs/operators';
+import {Subject} from 'rxjs/Subject'; 
 import {EgAuthService} from '@eg/core/auth.service';
 import {EgStoreService} from '@eg/core/store.service';
 import {EgOrgService} from '@eg/core/org.service';
 import {EgIdlObject} from '@eg/core/idl.service';
-import {NgbTypeaheadSelectItemEvent} from '@ng-bootstrap/ng-bootstrap';
+import {NgbTypeahead, NgbTypeaheadSelectItemEvent} 
+    from '@ng-bootstrap/ng-bootstrap';
 
 // Use a unicode char for spacing instead of ASCII=32 so the browser 
 // won't collapse the nested display entries down to a single space.
@@ -27,6 +29,10 @@ export class EgOrgSelectComponent implements OnInit {
     startOrg: EgIdlObject;
     hidden: number[] = [];
     disabled: number[] = [];
+    //focus$ = new Subject<string>();
+    click$ = new Subject<string>();
+
+    @ViewChild('instance') instance: NgbTypeahead;
 
     // Read-only properties optionally provided by the calling component.
     @Input() placeholder: string;
@@ -82,6 +88,7 @@ export class EgOrgSelectComponent implements OnInit {
         return text$
             .debounceTime(100)
             .distinctUntilChanged()
+            .merge(this.click$.filter(() => !this.instance.isPopupOpen()))
             .map(term => {
 
                 return this.org.list().filter(org => {