From: Jason Etheridge <jason@esilibrary.com>
Date: Thu, 11 Aug 2011 18:16:24 +0000 (-0400)
Subject: in lieu of Ready Item Editor
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=92b2d3ec7ce4d847461dcbd43771845215ccf166;p=evergreen%2Fmasslnc.git

in lieu of Ready Item Editor

We're trying to prevent folks from using the item attribute editor in the
unified interface when the volume pane is still updating its information
(i.e. building the copies to feed to the attribute editor), so that a
given editing widget isn't ripped out from under staff while its being
used.  This change removes the heavy-handed Ready Item Editor button and
instead tries to more gracefully manage the editor state based on change
and keypress events.  Also change the color scheme for a disabled editor
from red to light pink.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
---

diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd
index 6dd1e96a45..b0e907f56f 100644
--- a/Open-ILS/web/opac/locale/en-US/lang.dtd
+++ b/Open-ILS/web/opac/locale/en-US/lang.dtd
@@ -2875,8 +2875,6 @@
 <!ENTITY staff.cat.volume_copy_creator.batch_bar.call_number.label.label "Call Number:">
 <!ENTITY staff.cat.volume_copy_creator.batch_bar.call_number.label.accesskey "L">
 <!ENTITY staff.cat.volume_copy_creator.batch_bar.call_number.suffix "Suffix:">
-<!ENTITY staff.cat.volume_copy_creator.ready_item_editor.label "Ready Item Editor">
-<!ENTITY staff.cat.volume_copy_creator.ready_item_editor.accesskey "R">
 <!ENTITY staff.cat.volume_editor.title "Volumes">
 <!ENTITY staff.cat.volume_editor.caption.label "Volume Editor">
 <!ENTITY staff.cat.volume_editor.modify.label "Modify">
diff --git a/Open-ILS/xul/staff_client/server/cat/copy_editor.js b/Open-ILS/xul/staff_client/server/cat/copy_editor.js
index a279359479..b6b5d93ae9 100644
--- a/Open-ILS/xul/staff_client/server/cat/copy_editor.js
+++ b/Open-ILS/xul/staff_client/server/cat/copy_editor.js
@@ -165,17 +165,17 @@ function my_init() {
 
         if (xulG.unified_interface) {
             xulG.disable_copy_editor = function(c) {
-                addCSSClass(document.documentElement,'red_bg');
+                addCSSClass(document.documentElement,'disabled_copy_editor');
                 g.disabled = true;
             }
             xulG.enable_copy_editor = function(c) {
-                removeCSSClass(document.documentElement,'red_bg');
+                removeCSSClass(document.documentElement,'disabled_copy_editor');
                 g.disabled = false;
                 xulG.refresh_copy_editor();
             }
             xulG.refresh_copy_editor = function() {
                 dump('refresh_copy_editor\n');
-                addCSSClass(document.documentElement,'blue_bg');
+                addCSSClass(document.documentElement,'enabling_copy_editor');
                 try {
                     xulG.clear_update_copy_editor_timeout();
                     g.copies = xulG.copies;
@@ -198,7 +198,7 @@ function my_init() {
                     g.check_for_unmet_required_fields();
                     setTimeout(
                         function() {
-                            removeCSSClass(document.documentElement,'blue_bg');
+                            removeCSSClass(document.documentElement,'enabling_copy_editor');
                         }, 1000
                     );
                 } catch(E) {
diff --git a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js
index aae4edce1b..127d5c4814 100644
--- a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js
+++ b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js
@@ -68,23 +68,8 @@ function my_init() {
                     g.gather_copies();
                 }
             }
-            $('Sync').addEventListener(
-                'command',
-                function() {
-                    // give gather_copies_soon fired off directly/indirectly by
-                    // onchange a chance to go first
-                    setTimeout(
-                        function() {
-                            xulG.enable_copy_editor();
-                        },
-                        0
-                    );
-                },
-                false
-            );
         } else {
             $('Create').hidden = true;
-            $('Sync').hidden = true;
         }
 
         /***********************************************************************************************************/
@@ -249,7 +234,7 @@ function my_init() {
         g.load_prefs();
 
         if (g.existing_copies.length > 0) {
-            g.gather_copies_soon();
+            g.gather_copies_soon(true);
         }
 
         try {
@@ -305,10 +290,10 @@ g.render_volume_count_entry = function(row,ou_id) {
     util.widgets.apply_vertical_tab_on_enter_handler(
         tb,
         function() { render_copy_count_entry({'target':tb}); setTimeout(function(){util.widgets.vertical_tab(tb);},0); }
-        ,function() { $('Sync').disabled = true; }
+        ,function() { g.delay_gather_copies_soon(false); }
     );
     tb.addEventListener( 'change', render_copy_count_entry, false);
-    tb.addEventListener( 'change', g.gather_copies_soon, false);
+    //tb.addEventListener( 'change', g.gather_copies_soon, false);
     tb.addEventListener( 'focus', function(ev) { g.last_focus = ev.target; }, false );
     setTimeout(
         function() {
@@ -497,7 +482,7 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) {
                                 },0
                             );
                         }
-                        ,function() { $('Sync').disabled = true; }
+                        ,function() { g.delay_gather_copies_soon(false); }
                     );
                     call_number_column_textbox.addEventListener( 'change', handle_change_to_callnumber_data, false);
                     //call_number_column_textbox.addEventListener( 'change', g.gather_copies_soon, false);
@@ -565,10 +550,10 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) {
                                 },0
                             );
                         }
-                        ,function() { $('Sync').disabled = true; }
+                        ,function() { g.delay_gather_copies_soon(false); }
                     );
                     number_of_copies_column_textbox.addEventListener( 'change', handle_change_number_of_copies_column_textbox, false);
-                    number_of_copies_column_textbox.addEventListener( 'change', g.gather_copies_soon, false);
+                    //number_of_copies_column_textbox.addEventListener( 'change', g.gather_copies_soon, false);
                     number_of_copies_column_textbox.addEventListener( 'focus', function(ev) { g.last_focus = ev.target; }, false );
                     if ( !g.last_focus ) { number_of_copies_column_textbox.focus(); g.last_focus = number_of_copies_column_textbox; }
 
@@ -661,7 +646,7 @@ g.render_part_menu = function(barcode_tb) {
                         barcode_tb.setAttribute('bmp_id',menulist.selectedItem.value);
                         button.hidden = true;
                     }
-                    g.gather_copies_soon();
+                    g.gather_copies_soon(true);
                 }
             });
         },
@@ -677,7 +662,7 @@ g.render_part_menu = function(barcode_tb) {
         },
         false
     );
-    menulist.addEventListener('change',g.gather_copies_soon,false);
+    menulist.addEventListener('change',function() { g.gather_copies_soon(true); },false);
     menulist.addEventListener(
         'command',
         function(ev) {
@@ -686,7 +671,7 @@ g.render_part_menu = function(barcode_tb) {
         },
         false
     );
-    menulist.addEventListener('command',g.gather_copies_soon,false);
+    menulist.addEventListener('command',function() { g.gather_copies_soon(true); },false);
 
     return hbox;
 }
@@ -770,12 +755,12 @@ g.render_barcode_entry = function(node,callnumber_composite_key,count,ou_id) {
                 util.widgets.apply_vertical_tab_on_enter_handler(
                     tb,
                     function() { ready_to_create({'target':tb}); setTimeout(function(){util.widgets.vertical_tab(tb);},0); },
-                    g.delay_gather_copies_soon
+                    function() { g.delay_gather_copies_soon(true); }
                 );
                 util.widgets.apply_vertical_tab_on_enter_handler(
                     part_menu.firstChild,
                     function() { setTimeout(function(){util.widgets.vertical_tab(part_menu.firstChild);},0); },
-                    g.delay_gather_copies_soon
+                    function() { g.delay_gather_copies_soon(true); }
                 );
                 tb.addEventListener('change', function(ev) {
                     var barcode = String( ev.target.value ).replace(/\s/g,'');
@@ -793,7 +778,7 @@ g.render_barcode_entry = function(node,callnumber_composite_key,count,ou_id) {
             }
         }
 
-        g.gather_copies_soon();
+        g.gather_copies_soon(true);
         setTimeout( function() { if (g.first_focus) { g.first_focus.focus(); } }, 0 );
 
     } catch(E) {
@@ -831,7 +816,7 @@ g.generate_barcodes = function() {
 
         setTimeout(
             function() {
-                g.gather_copies_soon();
+                g.gather_copies_soon(true);
             },0
         );
 
@@ -840,21 +825,20 @@ g.generate_barcodes = function() {
     }
 }
 
-g.delay_gather_copies_soon = function() {
+g.delay_gather_copies_soon = function(enable_copy_editor) {
     if (xulG.unified_interface) {
         dump('g.delay_gather_copies_soon()\n');
-        g.gather_copies_soon();
+        g.gather_copies_soon(enable_copy_editor);
     }
 }
 
-g.gather_copies_soon = function(ev) {
+g.gather_copies_soon = function(enable_copy_editor) {
     try {
         if (!xulG.unified_interface) { return; }
         dump('g.gather_copies_soon()\n');
         if (typeof xulG.disable_copy_editor == 'function') {
             xulG.disable_copy_editor();
         }
-        $('Sync').disabled = true;
         if (g.update_copy_editor_timeoutID) {
             clearTimeout(g.update_copy_editor_timeoutID);
         }
@@ -864,8 +848,9 @@ g.gather_copies_soon = function(ev) {
             function() {
                 try {
                     g.gather_copies();
-                    //xulG.enable_copy_editor();
-                    $('Sync').disabled = false;
+                    if (enable_copy_editor) {
+                        xulG.enable_copy_editor();
+                    }
                     xulG.refresh_copy_editor();
                 } catch(E) {
                     dump('Error in volume_copy_editor.js with g.gather_copies_soon setTimeout func(): ' + E + '\n');
@@ -1447,7 +1432,7 @@ g.render_batch_button = function() {
             }
             setTimeout(
                 function() {
-                    g.gather_copies_soon();
+                    g.gather_copies_soon(true);
                 },0
             );
             if (g.last_focus) setTimeout( function() { g.last_focus.focus(); }, 0 );
diff --git a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.xul b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.xul
index 00a846f576..5cfc111c9b 100644
--- a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.xul
+++ b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.xul
@@ -121,11 +121,6 @@
                 <button id="CreateWithDefaults" disabled="true" oncommand="g.stash_and_close('noedit');"/>
                 <button id="EditThenCreate" disabled="true" oncommand="g.stash_and_close('edit');"/>
             </hbox>
-            <button id="Sync"
-                label="&staff.cat.volume_copy_creator.ready_item_editor.label;"
-                accesskey="&staff.cat.volume_copy_creator.ready_item_editor.accesskey;"
-                disabled="true"
-                image="/xul/server/skin/media/images/down_arrow.gif"/>
             <button id="Create" disabled="true" oncommand="g.stash_and_close('unified_interface');"/>
         </hbox>
     </vbox>
diff --git a/Open-ILS/xul/staff_client/server/skin/cat.css b/Open-ILS/xul/staff_client/server/skin/cat.css
index 3fc7a30449..27d055a3e8 100644
--- a/Open-ILS/xul/staff_client/server/skin/cat.css
+++ b/Open-ILS/xul/staff_client/server/skin/cat.css
@@ -17,3 +17,6 @@ row#batch_bar { background-color: gray; }
 .cn_suffix { display: none; }
 .part_column { display: none; }
 */
+
+.disabled_copy_editor { background-color: LightPink; }
+.enabling_copy_editor { background-color: LightPink; }
diff --git a/Open-ILS/xul/staff_client/server/skin/global.css b/Open-ILS/xul/staff_client/server/skin/global.css
index 29112e2dda..1c9da3e3a8 100644
--- a/Open-ILS/xul/staff_client/server/skin/global.css
+++ b/Open-ILS/xul/staff_client/server/skin/global.css
@@ -145,5 +145,3 @@ listitem { border-bottom: solid thin black; }
 
 .oils_event { color: red; }
 
-.blue_bg { background-color: blue; }
-.red_bg { background-color: red; }