maintain one row per barcode, toward change/remove actions. sort on upper for peer...
authorJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 18:37:14 +0000 (14:37 -0400)
committerJason Etheridge <jason@esilibrary.com>
Tue, 5 Apr 2011 18:37:14 +0000 (14:37 -0400)
Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js

index 6d0f58c..0500f9d 100644 (file)
@@ -1,4 +1,5 @@
-var data; var list; var error; var net; var pcrud; var rows; var sound;
+var data; var list; var error; var net; var pcrud; var sound;
+var rows = {};
 
 var commonStrings;
 var catStrings;
@@ -57,8 +58,8 @@ function init_menu() {
         var ml = util.widgets.make_menulist(
             util.functional.map_list(
                 data.list.bpt.sort( function(a,b) {
-                    if (a.name() < b.name()) return -1;
-                    if (a.name() > b.name()) return 1;
+                    if (a.name().toUpperCase() < b.name().toUpperCase()) return -1;
+                    if (a.name().toUpperCase() > b.name().toUpperCase()) return 1;
                     return 0;
                 }),
                 function(obj) {
@@ -105,7 +106,11 @@ function init_list() {
                     })
                 ).concat(
                     list.fm_columns('bpbcm', {
-                        '*' : { 'expanded_label' : true, 'hidden' : true }
+                        '*' : { 'expanded_label' : false, 'hidden' : true },
+                        'bpbcm_peer_type' : {
+                            'hidden' : false,
+                            'render' : function(my) { return my.bpbcm ? data.hash.bpt[ my.bpbcm.peer_type() ].name() : ''; }
+                        }
                     })
                 )
             }
@@ -140,12 +145,22 @@ function handle_submit(create,my_bpbcm) {
             'row' : {
                 'my' : {
                     'acp' : placeholder_acp,
-                    'bpbcm' : bpbcm
+                    'bpbcm' : my_bpbcm
                 }
             }
         };
 
-        var row_params = list.append(row_params);
+        if (barcode && rows[barcode]) {
+                var node = rows[barcode].my_node;
+                var parentNode = node.parentNode;
+                parentNode.removeChild( node );
+                delete(rows[barcode]);
+        }
+
+        row_params = list.append(row_params);
+        if (barcode) {
+            rows[barcode] = row_params;
+        }
 
         function handle_req(req) {
             try {
@@ -153,6 +168,8 @@ function handle_submit(create,my_bpbcm) {
                 if (typeof robj.ilsevent != 'undefined') {
                     row_params.row.my.result = robj.textcode;
                 } else {
+                    rows[robj.copy.barcode()] = row_params;
+
                     row_params.row.my.acp = robj.copy;
                     row_params.row.my.mvr = robj.mvr;
 
@@ -211,7 +228,6 @@ function handle_submit(create,my_bpbcm) {
             );
         }
 
-
     } catch(E) {
         alert('Error in manage_multi_home_items.js, handle_submit(): ' + E);
     }