Include call number prefix/suffix in display and sorting of holds for Print Full...
authorJason Etheridge <jason@esilibrary.com>
Wed, 18 May 2011 05:05:17 +0000 (01:05 -0400)
committerJason Etheridge <jason@esilibrary.com>
Wed, 18 May 2011 05:14:59 +0000 (01:14 -0400)
Signed-off-by: Jason Etheridge <jason@esilibrary.com>

Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
Open-ILS/web/opac/extras/circ/alt_holds_print.html
Open-ILS/web/opac/extras/circ/alt_holds_print.js

index f56a52d..03f947f 100644 (file)
@@ -1348,7 +1348,7 @@ __PACKAGE__->register_method(
         desc   => 'Returns a stream of fleshed holds',
         params => [
             { desc => 'Authtoken', type => 'string'},
-            { desc => 'Hash of optional param: Org unit ID (defaults to workstation org unit), limit, offset, sort (array of: acplo.position, call_number, request_time)',
+            { desc => 'Hash of optional param: Org unit ID (defaults to workstation org unit), limit, offset, sort (array of: acplo.position, prefix, call_number, suffix, request_time)',
               type => 'object'
             },
         ],
@@ -1383,8 +1383,12 @@ sub print_hold_pull_list_stream {
                     "class" => "acplo", "field" => "position",
                     "transform" => "coalesce", "params" => [999]
                 };
+            } elsif ($s eq 'prefix') {
+                push @$sort, {"class" => "acnp", "field" => "label_sortkey"};
             } elsif ($s eq 'call_number') {
-                push @$sort, {"class" => "acn", "field" => "label"};
+                push @$sort, {"class" => "acn", "field" => "label_sortkey"};
+            } elsif ($s eq 'suffix') {
+                push @$sort, {"class" => "acns", "field" => "label_sortkey"};
             } elsif ($s eq 'request_time') {
                 push @$sort, {"class" => "ahr", "field" => "request_time"};
             }
@@ -1407,7 +1411,17 @@ sub print_hold_pull_list_stream {
                         "join" => {
                             "acn" => {
                                 "field" => "id",
-                                "fkey" => "call_number" 
+                                "fkey" => "call_number",
+                                "join" => {
+                                    "acnp" => {
+                                        "field" => "id",
+                                        "fkey" => "prefix"
+                                    },
+                                    "acns" => {
+                                        "field" => "id",
+                                        "fkey" => "suffix"
+                                    }
+                                }
                             },
                             "acplo" => {
                                 "field" => "org",
@@ -1448,7 +1462,7 @@ sub print_hold_pull_list_stream {
                     "ahr" => ["usr", "current_copy"],
                     "au"  => ["card"],
                     "acp" => ["location", "call_number"],
-                    "acn" => ["record"]
+                    "acn" => ["record","prefix","suffix"]
                 }
             }
         ]);
index 405aaed..5801df2 100644 (file)
@@ -31,7 +31,7 @@
         <!-- Dojo goodness -->
         <script type="text/javascript">
             var djConfig = {parseOnLoad:true,isDebug:false,AutoIDL:['aou','aout','pgt','ahr','acp','acn']};
-            var sort_order = ["acplo.position", "call_number", "request_time"];
+            var sort_order = ["acplo.position", "prefix", "call_number", "suffix", "request_time"];
         </script>
         <script type="text/javascript" src="/js/dojo/dojo/dojo.js"></script>
         <script type="text/javascript" src="/js/dojo/dojo/openils_dojo.js"></script>
@@ -93,7 +93,7 @@
                     <td type='opac/slot-data' query='datafield[tag=245]'></td>
                     <td type='opac/slot-data' query='datafield[tag^=1]' limit='1'> </td>
                     <td>${current_copy.location.name}</td>
-                    <td>${current_copy.call_number.label}</td>
+                    <td>${current_copy.call_number.prefix.label} ${current_copy.call_number.label} ${current_copy.call_number.suffix.label}</td>
                     <td>${current_copy.barcode}</td>
                 </tr>
             </tbody>
index 31a21c1..a3f0378 100644 (file)
@@ -35,6 +35,8 @@ function do_pull_list() {
                 hold.current_copy.location = hold_fm.current_copy().location().toHash(true);
                 hold.current_copy.call_number = hold_fm.current_copy().call_number().toHash(true);
                 hold.current_copy.call_number.record = hold_fm.current_copy().call_number().record().toHash(true);
+                hold.current_copy.call_number.prefix = hold_fm.current_copy().call_number().prefix().toHash(true);
+                hold.current_copy.call_number.suffix = hold_fm.current_copy().call_number().suffix().toHash(true);
 
                 // clone the template's html
                 var tr = dojo.clone(