Spine label editor assumes LC as reported in LP #780665.
authorJames Fournie <jfournie@sitka.bclibraries.ca>
Mon, 6 Jun 2011 17:00:22 +0000 (10:00 -0700)
committerDan Scott <dan@coffeecode.net>
Mon, 18 Jul 2011 14:37:52 +0000 (10:37 -0400)
This patch encapsulates the LC-assuming code in an IF block which
considers the asset.call_number.volume.label_class.  If that is equal to
3, it will use the LC formatting.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Dan Scott <dan@coffeecode.net>
Open-ILS/xul/staff_client/server/cat/spine_labels.js

index 04aff17..22b64ca 100644 (file)
                 /* take the call number and split it on whitespace */
                 callnum = String(volume.label());
             }
+            /* handle spine lables differently if using LC */
+            if(volume.label_class() == 3){
+                /* for LC, split between classification subclass letters and numbers */
+                var lc_class_re = /^([A-Z]{1,3})([0-9]+.*?)$/i;
+                var lc_class_match = lc_class_re.exec(callnum);
+                if (lc_class_match && lc_class_match.length > 1) {
+                    callnum = lc_class_match[1] + ' ' + lc_class_match[2];
+                }
 
-            /* for LC, split between classification subclass letters and numbers */
-            var lc_class_re = /^([A-Z]{1,3})([0-9]+.*?)$/i;
-            var lc_class_match = lc_class_re.exec(callnum);
-            if (lc_class_match && lc_class_match.length > 1) {
-                callnum = lc_class_match[1] + ' ' + lc_class_match[2];
-            }
-
-            /* for LC, split between Cutter numbers */
-            var lc_cutter_re = /^(.*)(\.[A-Z]{1}[0-9]+.*?)$/ig;
-            var lc_cutter_match = lc_cutter_re.exec(callnum);
-            if (lc_cutter_match && lc_cutter_match.length > 1) {
-                callnum = '';
-                for (var i = 1; i < lc_cutter_match.length; i++) {
-                    callnum += lc_cutter_match[i] + ' ';
+                /* for LC, split between Cutter numbers */
+                var lc_cutter_re = /^(.*)(\.[A-Z]{1}[0-9]+.*?)$/ig;
+                var lc_cutter_match = lc_cutter_re.exec(callnum);
+                if (lc_cutter_match && lc_cutter_match.length > 1) {
+                    callnum = '';
+                    for (var i = 1; i < lc_cutter_match.length; i++) {
+                        callnum += lc_cutter_match[i] + ' ';
+                    }
                 }
             }