From: Jason Etheridge Date: Thu, 10 Mar 2011 05:48:13 +0000 (-0500) Subject: volumes on save X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3e18cb681d614821f1882daf5d0b27df670adeb1;p=evergreen%2Fequinox.git volumes on save --- 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 13d7c9608c..d55ed4189b 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 @@ -836,12 +836,7 @@ g.gather_copies = function() { copy.ischanged('1'); } copy.barcode( barcode ); - if (typeof g.acn_map[ acn_id ] != 'undefined') { - copy.call_number( g.acn_map[ acn_id].id() ); /* handles vivicated call numbers */ - } else { - dump('FIXME: In volume_copy_creator.js, g.gather_copies(), using acn_id, but no g.acn_map[acn_id]. acn_id = ' + acn_id + '\n'); - copy.call_number( acn_id ); - } + copy.call_number( acn_id ); // FIXME - at some point we will have multi-home multi-part items, and will need to preserve foreign parts copy.parts( bmp_id ? [ g.parts_hash[ bmp_id ] ] : null ); copies.push( copy ); @@ -857,8 +852,9 @@ g.gather_copies = function() { } } -g.vivicate_volumes = function() { +g.vivicate_update_volumes = function() { try { + var volumes = []; for (var ou_id in g.volumes_scaffold) { for (var composite_key in g.volumes_scaffold[ou_id]) { @@ -895,6 +891,7 @@ g.vivicate_volumes = function() { } } +/* var my_acn = g.acn_map[ acn_id ]; var node = g.volumes_scaffold[ou_id][composite_key].node; @@ -902,15 +899,35 @@ g.vivicate_volumes = function() { var prefix_menulist = node.parentNode.previousSibling.firstChild; var suffix_menulist = node.parentNode.nextSibling.firstChild; - class_menulist.value = my_acn.label_class(); - prefix_menulist.value = my_acn.prefix(); - suffix_menulist.value = my_acn.suffix(); + if ( String(class_menulist.value) != String(my_acn.label_class()) { + my_acn.label_class( class_menulist.value ); + my_acn.ischanged( get_db_true() ); + } + if ( String(prefix_menulist.value) != String(my_acn.prefix()) { + my_acn.prefix( prefix_menulist.value ); + my_acn.ischanged( get_db_true() ); + } + if ( String(suffix_menulist.value) != String(my_acn.suffix()) { + my_acn.suffix( suffix_menulist.value ); + my_acn.ischanged( get_db_true() ); + } if (get_bool( my_acn.ischanged() )) { - dump('******\nPUSHING my_acn = ' + js2JSON(my_acn) + '\n',4); volumes.push( my_acn ); - } else { - dump('******\nNOT PUSHING my_acn = ' + js2JSON(my_acn) + '\n',4); + } +*/ + } + } + if (volumes.length > 0) { + if (typeof xul_param('update_volume') == 'function') { + xul_param('update_volume')(volumes); + } else { + var r = g.network.simple_request( + 'FM_ACN_TREE_UPDATE', + [ ses(),volumes, false, { 'auto_merge_vols' : false } ] + ); + if (typeof r.ilsevent != 'undefined') { + g.error.standard_unexpected_error_alert('volume update',r); } } } @@ -923,7 +940,6 @@ g.stash_and_close = function(param) { try { - var volumes; var copies; if (xulG.unified_interface) { copies = xulG.copies; @@ -933,19 +949,18 @@ g.stash_and_close = function(param) { } var dont_close = false; - if (volumes.length > 0) { - if (typeof xul_param('update_volume') == 'function') { - xul_param('update_volume')(volumes); + + g.vivicate_update_volumes(); + for (var i = 0; i < copies.length; i++) { + var acn_id = copies[i].call_number(); + if (typeof g.acn_map[acn_id] != 'undefined') { + // handle vivicated-callnumbers + copies[i].call_number( g.acn_map[acn_id].id() ); } else { - var r = g.network.simple_request( - 'FM_ACN_TREE_UPDATE', - [ ses(),volumes, false, { 'auto_merge_vols' : false } ] - ); - if (typeof r.ilsevent != 'undefined') { - g.error.standard_unexpected_error_alert('volume update',r); - } + alert('error in stash and close, acn_id = ' + acn_id); } } + if (copies.length > 0) { if (param == 'edit') { JSAN.use('cat.util');