From afe2848074bd8c3979d6ec25f40c6dd50123e243 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Fri, 23 Sep 2011 10:55:28 -0400 Subject: [PATCH] LP857460: Get the generic class scheme when adding vols In a default Evergreen instance, in the "Add Volumes" interface for a bib record with both LC and Dewey call numbers, the list of call numbers from which you can select appears to be limited to Dewey, even though the "Bib Call #" field is populated with an LC call number. The problem is that here we're grabbing the first entry from the asset.call_number_classification table, and you might expect that to be the "Generic" entry - however, it turns out to be the "Dewey" entry because the entries are ordered alphabetically by .name(), not by database ID. (You can test this be changing the name of "Dewey" to "Vicious" and see that the "Generic" entry is chosen instead). This commit changes the process to first search the acnc array for a name() = "Generic"; and then if we don't find that, fall back to the first entry in the classification scheme. Signed-off-by: Dan Scott Signed-off-by: Dan Wells --- .../staff_client/server/cat/volume_copy_creator.js | 29 ++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) 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 595706876a..a589114321 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 @@ -110,15 +110,30 @@ function my_init() { var ou_ids = xul_param('ou_ids',{'concat' : true}) || []; // Get the default callnumber classification scheme from OU settings - dojo.require('fieldmapper.OrgUtils'); - //fieldmapper.aou.fetchOrgSettingDefault(ses('ws_ou'), 'cat.default_classification_scheme'); - g.label_class = g.data.hash.aous['cat.default_classification_scheme']; - - // Assign a default value if none was returned - if (!g.label_class) { - g.label_class = g.data.list.acnc[0].id(); + // or a reasonable fall-back + function get_default_label_class() { + g.label_class = g.data.hash.aous['cat.default_classification_scheme']; + + // Assign a default value if none was returned + // Begin by looking for the "Generic" label class by name + if (!g.label_class) { + for (var i = 0; i < g.data.list.acnc.length; i++) { + if (g.data.list.acnc[i].name() == 'Generic') { + g.label_class = g.data.list.acnc[i].id(); + break; + } + } + } + // Maybe this database has renamed or removed their Generic + // entry; in that case, just return the first one that we + // know exists + if (!g.label_class) { + g.label_class = g.data.list.acnc[0].id(); + } } + get_default_label_class(); + /***********************************************************************************************************/ /* If we're passed existing_copies, rig up a copy_shortcut object to leverage existing code for rendering the volume labels, etc. * Also make a lookup object for existing copies keyed on org id and callnumber composite key, and another keyed on copy id. */ -- 2.11.0