LP1904036 Prompt dialog focus input; submit on enter
authorBill Erickson <berickxx@gmail.com>
Sun, 7 Feb 2021 19:20:40 +0000 (14:20 -0500)
committerGalen Charlton <gmc@equinoxOLI.org>
Fri, 28 Oct 2022 00:13:23 +0000 (20:13 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jane Sandberg <js7389@princeton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Open-ILS/src/eg2/src/app/share/dialog/prompt.component.html
Open-ILS/src/eg2/src/app/share/dialog/prompt.component.ts

index a44a601..1d6df67 100644 (file)
@@ -9,10 +9,10 @@
   <div class="modal-body">
     <p>{{dialogBody}}</p>
     <div class="text-center">
-        <input type="{{promptType}}" class="form-control" 
+        <input type="{{promptType}}" class="form-control" id="{{inputDomId}}"
           [attr.min]="promptType == 'number' ? promptMin : ''"
           [attr.max]="promptType == 'number' ? promptMax : ''"
-          [(ngModel)]="promptValue"/>
+          (keyup.enter)="close(promptValue)" [(ngModel)]="promptValue"/>
     </div>
   </div>
   <div class="modal-footer">
index 82f0999..68ca8b1 100644 (file)
@@ -1,4 +1,4 @@
-import {Component, Input, ViewChild, TemplateRef} from '@angular/core';
+import {Component, Input, ViewChild, OnInit, TemplateRef} from '@angular/core';
 import {DialogComponent} from '@eg/share/dialog/dialog.component';
 
 @Component({
@@ -9,7 +9,11 @@ import {DialogComponent} from '@eg/share/dialog/dialog.component';
 /**
  * Promptation dialog that requests user input.
  */
-export class PromptDialogComponent extends DialogComponent {
+export class PromptDialogComponent extends DialogComponent implements OnInit {
+    static domId = 0;
+
+    @Input() inputDomId = 'eg-prompt-dialog-' + PromptDialogComponent.domId++;
+
     // What question are we asking?
     @Input() public dialogBody: string;
     // Value to return to the caller
@@ -20,6 +24,13 @@ export class PromptDialogComponent extends DialogComponent {
     // May be used when promptType == 'number'
     @Input() promptMin: number = null;
     @Input() promptMax: number = null;
+
+    ngOnInit() {
+        this.onOpen$.subscribe(_ => {
+            const node = document.getElementById(this.inputDomId);
+            if (node) { node.focus(); node.select(); }
+        });
+    }
 }