From 29157cb35692b4f87053cfff6c5c1a547a99f9c0 Mon Sep 17 00:00:00 2001 From: Stephanie Leary Date: Wed, 21 Dec 2022 17:03:08 -0600 Subject: [PATCH] eg.accesskeys.disable setup Signed-off-by: Stephanie Leary --- .../src/app/share/accesskey/accesskey.directive.ts | 35 ++++++++++++++-------- Open-ILS/src/eg2/src/app/staff/staff.component.ts | 22 ++++++++++++-- .../js/ui/default/staff/admin/workstation/app.js | 10 +++++++ 3 files changed, 51 insertions(+), 16 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/share/accesskey/accesskey.directive.ts b/Open-ILS/src/eg2/src/app/share/accesskey/accesskey.directive.ts index dfc835d9bd..fcb44c2fc1 100644 --- a/Open-ILS/src/eg2/src/app/share/accesskey/accesskey.directive.ts +++ b/Open-ILS/src/eg2/src/app/share/accesskey/accesskey.directive.ts @@ -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() + }); }); }); + } } diff --git a/Open-ILS/src/eg2/src/app/staff/staff.component.ts b/Open-ILS/src/eg2/src/app/staff/staff.component.ts index ac075e39d9..9c9b216e0c 100644 --- a/Open-ILS/src/eg2/src/app/staff/staff.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/staff.component.ts @@ -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); + }); } /** diff --git a/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js b/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js index d928ad89d8..8d1e02a205 100644 --- a/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js +++ b/Open-ILS/web/js/ui/default/staff/admin/workstation/app.js @@ -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); } -- 2.11.0