From 24ed88d5cbd7ea8283ae3d684a34fb972102ce4c Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Mon, 2 Apr 2012 17:07:55 -0400 Subject: [PATCH] don't let function keys lock the MARC editor lock = put the interface into a state where it prompts with an unsaved data warning before closing the interface Signed-off-by: Jason Etheridge --- Open-ILS/xul/staff_client/server/cat/marcedit.js | 45 ++++++- Open-ILS/xul/staff_client/server/cat/marcedit.xul | 136 +++++++++++----------- 2 files changed, 112 insertions(+), 69 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/cat/marcedit.js b/Open-ILS/xul/staff_client/server/cat/marcedit.js index 418d0eedc2..df51058c19 100644 --- a/Open-ILS/xul/staff_client/server/cat/marcedit.js +++ b/Open-ILS/xul/staff_client/server/cat/marcedit.js @@ -491,11 +491,54 @@ function setFocusToNextTag (row, direction) { return true; } +function set_lock_on_keypress(ev) { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + //dump('keypress: isChar = ' + ev.isChar + ' char = ' + ev.char + ' charCode = ' + ev.charCode + ' key = ' + ev.key + ' keyCode = ' + ev.keyCode + '\n'); + if (! /* NOT */( + ev.altKey + || ev.ctrlKey + || ev.metaKey + || ev.keyCode == ev.DOM_VK_F1 + || ev.keyCode == ev.DOM_VK_F2 + || ev.keyCode == ev.DOM_VK_F3 + || ev.keyCode == ev.DOM_VK_F4 + || ev.keyCode == ev.DOM_VK_F5 + || ev.keyCode == ev.DOM_VK_F6 + || ev.keyCode == ev.DOM_VK_F7 + || ev.keyCode == ev.DOM_VK_F8 + || ev.keyCode == ev.DOM_VK_F9 + || ev.keyCode == ev.DOM_VK_F10 + || ev.keyCode == ev.DOM_VK_F11 + || ev.keyCode == ev.DOM_VK_F12 + || ev.keyCode == ev.DOM_VK_F13 + || ev.keyCode == ev.DOM_VK_F14 + || ev.keyCode == ev.DOM_VK_F15 + || ev.keyCode == ev.DOM_VK_F16 + || ev.keyCode == ev.DOM_VK_F17 + || ev.keyCode == ev.DOM_VK_F18 + || ev.keyCode == ev.DOM_VK_F19 + || ev.keyCode == ev.DOM_VK_F20 + || ev.keyCode == ev.DOM_VK_F21 + || ev.keyCode == ev.DOM_VK_F22 + || ev.keyCode == ev.DOM_VK_F23 + || ev.keyCode == ev.DOM_VK_F24 + )) { + oils_lock_page(); + } + } catch(E) { + alert(E); + } +} function createMARCTextbox (element,attrs) { var box = createComplexXULElement('textbox', attrs, Array.prototype.slice.apply(arguments, [2]) ); - box.addEventListener('keypress',function(ev) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); if (!(ev.altKey || ev.ctrlKey || ev.metaKey)) { oils_lock_page(); } },false); + box.addEventListener( + 'keypress', + set_lock_on_keypress, + false + ); box.onkeypress = function (event) { var root_node; var node = element; diff --git a/Open-ILS/xul/staff_client/server/cat/marcedit.xul b/Open-ILS/xul/staff_client/server/cat/marcedit.xul index 7204883616..7b2edd89b7 100644 --- a/Open-ILS/xul/staff_client/server/cat/marcedit.xul +++ b/Open-ILS/xul/staff_client/server/cat/marcedit.xul @@ -46,9 +46,9 @@ @@ -80,157 +80,157 @@ @@ -258,7 +258,7 @@