[open-ils-commits] r17359 - trunk/Open-ILS/xul/staff_client/server/cat (dbs)
svn at svn.open-ils.org
svn at svn.open-ils.org
Fri Aug 27 10:10:29 EDT 2010
Author: dbs
Date: 2010-08-27 10:10:27 -0400 (Fri, 27 Aug 2010)
New Revision: 17359
Modified:
trunk/Open-ILS/xul/staff_client/server/cat/spine_labels.js
Log:
Split spine labels between the alpha and numeric part of the LC subclass
Some sites jam the alpha and numberic parts of the LC subclass together;
for example "QA76.76" instead of "QA 76.76". Without the space, Evergreen
was not inserting a line break. This commit will insert a line break
automatically if the first element of a call number contains 1 to 3 alpha
characters followed immediately by 1 or more numbers.
This should not affect Dewey or most other classification systems, but will
have the effect of making call numbers split as follows:
Given "QA76.76 S93 1998", generate:
QA
76.76
S93
1998
Modified: trunk/Open-ILS/xul/staff_client/server/cat/spine_labels.js
===================================================================
--- trunk/Open-ILS/xul/staff_client/server/cat/spine_labels.js 2010-08-27 01:19:26 UTC (rev 17358)
+++ trunk/Open-ILS/xul/staff_client/server/cat/spine_labels.js 2010-08-27 14:10:27 UTC (rev 17359)
@@ -153,6 +153,9 @@
names = String(volume.label()).split(/\s+/);
}
var j = 0;
+ var name_cnt = 0;
+ /* for LC, split between classification subclass letters and numbers */
+ var lc_class_re = /^([A-Z]{1,3})([0-9]+.*?$)/i;
while (j < label_cfg.spine_length || j < label_cfg.pocket_length) {
var hb2 = document.createElement('hbox'); label_node.appendChild(hb2);
@@ -171,9 +174,21 @@
tb.setAttribute('name','spine');
var spine_row_id = 'acn_' + volume.id() + '_spine_' + j;
tb.setAttribute('id',spine_row_id);
+
var name = names.shift();
if (name) {
name = String( name );
+
+ /* Split LC subclass between alpha and numeric part */
+ if (name_cnt == 0) {
+ var lc_class_match = lc_class_re.exec(name);
+ if (lc_class_match && lc_class_match.length > 1) {
+ name = lc_class_match[1];
+ names = [lc_class_match[2]].concat(names);
+ }
+ name_cnt = 1;
+ }
+
/* if the name is greater than the label width... */
if (name.length > label_cfg.spine_width) {
/* then try to split it on periods */
More information about the open-ils-commits
mailing list