From 7398e2c95b502b6367b4411711264610004bf28a Mon Sep 17 00:00:00 2001 From: Jeff Godin Date: Mon, 16 Apr 2012 10:39:34 -0400 Subject: [PATCH] Copy summary group by call number, add max_lines Group copy summary by call number in addition to circ lib and copy location. Also, support setting of max_lines for limiting the number of call numbers output -- useful for bibs with lots of volumes at a single library -- to prevent the search results page from growing too long. Signed-off-by: Jeff Godin --- .../opac/skin/tadlv3/xml/result/result_table.xml | 48 +++++++++++++--------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/Open-ILS/web/opac/skin/tadlv3/xml/result/result_table.xml b/Open-ILS/web/opac/skin/tadlv3/xml/result/result_table.xml index c5ff85bbfc..a4caa8d038 100644 --- a/Open-ILS/web/opac/skin/tadlv3/xml/result/result_table.xml +++ b/Open-ILS/web/opac/skin/tadlv3/xml/result/result_table.xml @@ -144,6 +144,7 @@ var item_cnt = 0; var max_items = 4; + var max_lines = 3; var copySummaryObj = new Object(); var count_copies_unavail = 0; var count_copies_avail = 0; @@ -223,22 +224,21 @@ } else { count_copies_avail++; } - var cp_circ_lib_txt = cp_circ_lib.getAttribute('name'); - var cp_location_txt = BT.textContent(cp_location); - // copySummaryObj[cp_circ_lib_txt][cp_location_txt]['count'] - // copySummaryObj[cp_circ_lib_txt][cp_location_txt]['labels'] - // copySummaryObj[cp_circ_lib_txt][cp_location_txt]['reshelving_count'] - var libkey = cp_circ_lib_txt; - var lockey = cp_location_txt; + var libkey = cp_circ_lib.getAttribute('name'); + var lockey = BT.textContent(cp_location); + var cnkey = vol.getAttribute('label'); + if (!copySummaryObj[libkey]) { copySummaryObj[libkey] = new Object(); + } + if (!copySummaryObj[libkey][lockey]) { copySummaryObj[libkey][lockey] = new Object(); - copySummaryObj[libkey][lockey]['labels'] = new Object(); - copySummaryObj[libkey][lockey]['count'] = 0; - copySummaryObj[libkey][lockey]['reshelving_count'] = 0; } - copySummaryObj[libkey][lockey]['count']++; - copySummaryObj[libkey][lockey]['labels'][vol.getAttribute('label')] = 1; + if (!copySummaryObj[libkey][lockey][cnkey]) { + copySummaryObj[libkey][lockey][cnkey] = new Object(); + copySummaryObj[libkey][lockey][cnkey]['count'] = 0; + } + copySummaryObj[libkey][lockey][cnkey]['count']++; item_cnt++; //if (item_cnt >= max_items) { @@ -254,6 +254,7 @@ } if (numLibs == 0) { return; } if (numLibs == 1) { + var lines_output = 0; var sumdiv = dojo.create('div', { "style": "font-weight: bold;" }); // output the grouped-by-location summary for (var sumlib in copySummaryObj) { @@ -261,12 +262,19 @@ var atlib = dojo.create('div', null, sumdiv); atlib.appendChild(dojo.doc.createTextNode('At ' + sumlib)); for (var sumloc in copySummaryObj[sumlib]) { - // available copies in each location - var sumcount = copySummaryObj[sumlib][sumloc]['count']; - var sumreshelving = copySummaryObj[sumlib][sumloc]['reshelving_count']; - var summary_line = sumcount + ' available in ' + sumloc; - var locdiv = dojo.create('div', null, sumdiv); - locdiv.appendChild(dojo.doc.createTextNode(summary_line)); + for (var sumcn in copySummaryObj[sumlib][sumloc]) { + // available copies in each location, by cn label + if (max_lines && lines_output >= max_lines) { + var morediv = dojo.create('div', { "style": "font-weight: bold;" }, sumdiv); + morediv.appendChild(dojo.doc.createTextNode("additional copies available - click title for details")); + } else { + var sumcount = copySummaryObj[sumlib][sumloc][sumcn]['count']; + var summary_line = sumcount + ' available in ' + sumloc + ', call number ' + sumcn; + var locdiv = dojo.create('div', null, sumdiv); + locdiv.appendChild(dojo.doc.createTextNode(summary_line)); + lines_output++; + } + } } } output.appendChild(sumdiv); @@ -275,7 +283,9 @@ for (var libname in copySummaryObj) { var copycount = 0; for (var loc in copySummaryObj[libname]) { - copycount = copycount + copySummaryObj[libname][loc]['count']; + for (var cn in copySummaryObj[libname][loc]) { + copycount = copycount + copySummaryObj[libname][loc][cn]['count']; + } } } var libdiv = dojo.create('div'); -- 2.11.0