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:10:04 +0000 (15:10 -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 aec871a..1430b5d 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 25ee3ef..3bc1891 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 48b87c5..7b0bee9 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;
         }
 
         /***********************************************************************************************************/
@@ -234,7 +219,7 @@ function my_init() {
         g.load_prefs();
 
         if (g.existing_copies.length > 0) {
-            g.gather_copies_soon();
+            g.gather_copies_soon(true);
         }
 
         try {
@@ -290,10 +275,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() {
@@ -482,7 +467,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);
@@ -550,10 +535,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; }
 
@@ -646,7 +631,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);
                 }
             });
         },
@@ -662,7 +647,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) {
@@ -671,7 +656,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;
 }
@@ -755,12 +740,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,'');
@@ -778,7 +763,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) {
@@ -816,7 +801,7 @@ g.generate_barcodes = function() {
 
         setTimeout(
             function() {
-                g.gather_copies_soon();
+                g.gather_copies_soon(true);
             },0
         );
 
@@ -825,21 +810,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);
         }
@@ -849,8 +833,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');
@@ -1555,7 +1540,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 d089ced..8ad17cd 100644 (file)
@@ -149,5 +149,3 @@ listitem { border-bottom: solid thin black; }
 
 .oils_event { color: red; }
 
-.blue_bg { background-color: blue; }
-.red_bg { background-color: red; }