From 97b8f951d88dd53f0b40bac96ce7f6dda39f23ce Mon Sep 17 00:00:00 2001 From: phasefx Date: Thu, 3 Jun 2010 15:08:50 +0000 Subject: [PATCH] backport changesets 16564, 16566, 16567: fix logic error that could result in partial list of available libs for workstation registration and fix bug where attempting to use the home lib as a menu default when the home lib is not among the working location and descendeants git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6@16581 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/xul/staff_client/server/main/ws_info.xul | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/main/ws_info.xul b/Open-ILS/xul/staff_client/server/main/ws_info.xul index 2f001c5dfb..7bf628c33f 100644 --- a/Open-ILS/xul/staff_client/server/main/ws_info.xul +++ b/Open-ILS/xul/staff_client/server/main/ws_info.xul @@ -101,9 +101,13 @@ g.my_libs_shortname_hash = {}; g.my_libs_ou_hash = {}; + g.my_deduped_libs = []; for (var i = 0; i < g.my_libs.length; i++) { - g.my_libs_shortname_hash[ g.my_libs[i].id() ] = g.my_libs[i].shortname(); - g.my_libs_ou_hash[ g.my_libs[i].id() ] = function(o){return o;}(g.my_libs[i]); + if (typeof g.my_libs_shortname_hash[ g.my_libs[i].id() ] == 'undefined') { + g.my_libs_shortname_hash[ g.my_libs[i].id() ] = g.my_libs[i].shortname(); + g.my_libs_ou_hash[ g.my_libs[i].id() ] = function(o){return o;}(g.my_libs[i]); + g.my_deduped_libs.push( g.my_libs[i] ); + } } g.tb = document.getElementById('wsname'); @@ -122,13 +126,22 @@ util.widgets.remove_children( x ); var default_lib = g.my_lib; - if ( !get_bool( g.aout_hash[ g.my_libs_ou_hash[ default_lib ].ou_type() ].can_have_users() ) ) { + try { + if (typeof g.my_libs_ou_hash[ default_lib ] == 'undefined') { + default_lib = null; + } else { + if ( !get_bool( g.aout_hash[ g.my_libs_ou_hash[ default_lib ].ou_type() ].can_have_users() ) ) { + default_lib = null; + } + } + } catch(E) { + dump('Error in ws_info.xul, render_menulist(): ' + E + '\n'); default_lib = null; } g.ml = util.widgets.make_menulist( util.functional.map_list( - util.fm_utils.flatten_ou_branch( g.my_libs_tree ), + g.my_deduped_libs, function(obj) { if (!default_lib) { if ( get_bool( g.aout_hash[ obj.ou_type() ].can_have_users() ) ) default_lib = obj.id(); -- 2.11.0