eg.accesskeys.disable setup
authorStephanie Leary <stephanie.leary@equinoxOLI.org>
Wed, 21 Dec 2022 23:03:08 +0000 (17:03 -0600)
committerStephanie Leary <stephanie.leary@equinoxOLI.org>
Wed, 21 Dec 2022 23:03:08 +0000 (17:03 -0600)
Signed-off-by: Stephanie Leary <stephanie.leary@equinoxOLI.org>
Open-ILS/src/eg2/src/app/share/accesskey/accesskey.directive.ts
Open-ILS/src/eg2/src/app/staff/staff.component.ts
Open-ILS/web/js/ui/default/staff/admin/workstation/app.js

index dfc835d..fcb44c2 100644 (file)
@@ -13,7 +13,7 @@
  */
 import {Directive, ElementRef, Input, OnInit} from '@angular/core';
 import {AccessKeyService} from '@eg/share/accesskey/accesskey.service';
-
+import {ServerStoreService} from '@eg/core/server-store.service';
 @Directive({
   selector: '[egAccessKey]'
 })
@@ -32,24 +32,33 @@ export class AccessKeyDirective implements OnInit {
 
     constructor(
         private elm: ElementRef,
-        private keyService: AccessKeyService
+        private keyService: AccessKeyService,
+        private store: ServerStoreService
     ) { }
 
     ngOnInit() {
 
-        if (!this.keySpec) {
-            console.warn('AccessKey no keySpec provided');
-            return;
-        }
-
-        this.keySpec.split(/ /).forEach(keySpec => {
-            this.keyService.assign({
-                key: keySpec,
-                desc: this.keyDesc,
-                ctx: this.keyCtx,
-                action: () => this.elm.nativeElement.click()
+        this.store.getItem('eg.accesskeys.disable').then(accessKeysDisabled => {
+            if (accessKeysDisabled) { 
+                console.log('AccessKeys disabled in user settings.');
+                return;
+            }
+
+            if (!this.keySpec) {
+                console.warn('AccessKey no keySpec provided');
+                return;
+            }
+    
+            this.keySpec.split(/ /).forEach(keySpec => {
+                this.keyService.assign({
+                    key: keySpec,
+                    desc: this.keyDesc,
+                    ctx: this.keyCtx,
+                    action: () => this.elm.nativeElement.click()
+                });
             });
         });
+
     }
 }
 
index ac075e3..9c9b216 100644 (file)
@@ -4,7 +4,7 @@ import {Router, ActivatedRoute, NavigationEnd} from '@angular/router';
 import {AuthService, AuthWsState} from '@eg/core/auth.service';
 import {NetService} from '@eg/core/net.service';
 import {AccessKeyService} from '@eg/share/accesskey/accesskey.service';
-import {AccessKeyInfoComponent} from '@eg/share/accesskey/accesskey-info.component';
+import {ServerStoreService} from '@eg/core/server-store.service';
 
 const LOGIN_PATH = '/staff/login';
 const WS_BASE_PATH = '/staff/admin/workstation/workstations/';
@@ -24,11 +24,21 @@ export class StaffComponent implements OnInit {
         private zone: NgZone,
         private net: NetService,
         private auth: AuthService,
-        private keys: AccessKeyService
+        private keys: AccessKeyService,
+        private store: ServerStoreService
     ) {}
 
     ngOnInit() {
 
+        /*
+        const disableAccessKeys = this.store.getItem('eg.accesskeys.disable').then(accessKeysDisabled => {
+            if (accessKeysDisabled) { 
+                console.log(`Keyboard shortcuts disabled by user settings.`);
+                return; 
+            }
+        });
+        /**/
+
         // Fires on all in-staff-app router navigation, but not initial
         // page load.
         this.router.events.subscribe(routeEvent => {
@@ -105,7 +115,13 @@ export class StaffComponent implements OnInit {
      * events down to the key service for processing.
      */
     @HostListener('window:keydown', ['$event']) onKeyDown(evt: KeyboardEvent) {
-        this.keys.fire(evt);
+        this.store.getItem('eg.accesskeys.disable').then(accessKeysDisabled => {
+            if (accessKeysDisabled) { 
+                return;
+            }
+
+            this.keys.fire(evt);
+        });
     }
 
     /**
index d928ad8..8d1e02a 100644 (file)
@@ -226,6 +226,16 @@ function($scope , $window , $location , egCore , egConfirmDialog) {
         }
     }
 
+    /*
+    $scope.apply_orgselect_disable_accesskeys = function() {
+        if ($scope.orgselect_disable_accesskeys) {
+            egCore.hatch.setItem('eg.accesskeys.disable', true);
+        } else {
+            egCore.hatch.removeItem('eg.accesskeys.disable');
+        }
+    }
+    /**/
+    
     $scope.test_audio = function(sound) {
         egCore.audio.play(sound);
     }