in lieu of Ready Item Editor
authorJason Etheridge <jason@esilibrary.com>
Thu, 11 Aug 2011 18:16:24 +0000 (14:16 -0400)
committerMike Rylander <mrylander@gmail.com>
Fri, 12 Aug 2011 19:09:45 +0000 (15:09 -0400)
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>
Open-ILS/web/opac/locale/en-US/lang.dtd
Open-ILS/xul/staff_client/server/cat/copy_editor.js
Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js
Open-ILS/xul/staff_client/server/cat/volume_copy_creator.xul
Open-ILS/xul/staff_client/server/skin/cat.css
Open-ILS/xul/staff_client/server/skin/global.css

index 6dd1e96..b0e907f 100644 (file)
 <!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">
index a279359..b6b5d93 100644 (file)
@@ -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) {
index aae4edc..127d5c4 100644 (file)
@@ -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 );
index 00a846f..5cfc111 100644 (file)
                 <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>
index 3fc7a30..27d055a 100644 (file)
@@ -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; }
index 29112e2..1c9da3e 100644 (file)
@@ -145,5 +145,3 @@ listitem { border-bottom: solid thin black; }
 
 .oils_event { color: red; }
 
-.blue_bg { background-color: blue; }
-.red_bg { background-color: red; }