From 88d26e9d6033bad60a7d186b2e4282ce2aecc250 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 7 Jul 2020 16:24:49 -0400 Subject: [PATCH] LP#1886713: fix issue where AngularJS hotkeys fail to initialize Fixes a race condition where the navbar service can look for eg-accesskey attributes before all of the elements that have them meet the conditions to show up in the DOM. To test ------- [1] From an AngularJS part of the staff interface, note that hitting F8 sometimes does not perform the retrieve last patron action, nor does F8 show up on the list of hot keys when you hit "?" outside of an input. [2] Apply the patch and repeat step 1. This time, the F8 hotkey should consistently work. Signed-off-by: Galen Charlton Signed-off-by: Rogan Hamby Signed-off-by: Mike Rylander --- Open-ILS/web/js/ui/default/staff/services/navbar.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/services/navbar.js b/Open-ILS/web/js/ui/default/staff/services/navbar.js index b6ff1d31fe..a00e26a55c 100644 --- a/Open-ILS/web/js/ui/default/staff/services/navbar.js +++ b/Open-ILS/web/js/ui/default/staff/services/navbar.js @@ -120,12 +120,15 @@ angular.module('egCoreMod') $scope.showAngularCatalog = s['ui.staff.angular_catalog.enabled']; + }).then(function() { + // need to defer initialization of hotkeys to this point + // as it depends on various settings. + $timeout(function(){find_accesskeys($element)}); }); + } else { + // fallback initialization of hotkeys + $timeout(function(){find_accesskeys($element)}); } - // need to defer initialization of hotkeys to this point - // as some of them are conditional on whether one is logged in - // or is working in offline circulation mode - $timeout(function(){find_accesskeys($element)}); } ); } -- 2.11.0