LP173259 - Array error appears in search box while placing hold after advanced search
authorDan Pearl <dpearl@cwmars.org>
Fri, 2 Mar 2018 18:37:43 +0000 (13:37 -0500)
committerJason Stephenson <jason@sigio.com>
Wed, 18 Apr 2018 13:42:01 +0000 (09:42 -0400)
The place-hold code assumed it was not in "_adv" parameter mode.  This assumption was faulty.  Now, the
link generated for Place Hold from (advanced search) results will translate the argument list to the
single-line format that Place Hold expected.

Signed-off-by: Dan Pearl <dpearl@cwmars.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Open-ILS/src/templates/opac/parts/result/table.tt2

index c913555..d594f87 100644 (file)
@@ -10,6 +10,7 @@
 
 %]
 
+[% USE cgi %]
 [% PROCESS "opac/parts/result/paginate.tt2" %] 
 [% ctx.results_count_header = PROCESS results_count_header;
     ctx.results_count_header %]
@@ -386,10 +387,27 @@ END;
             && (ctx.holds_block.enabled != 'true' || attrs.org_copy_counts.$search_ou.available == 0)
         )
 %]
+                                                        [% del_parms = ['tag','subfield','term','_special',
+                                                                   'sort','page'];
+                                                        add_parms = {hold_target => rec.id, 
+                                                                     hold_type => hold_type, 
+                                                                     hold_source_page => mkurl()};
+
+                                                        IF cgi.param("_adv");
+                                                            # Do not pass "advanced params" to hold code
+                                                            # Instead, pass the scrubed query in one-line form
+                                                            add_del_parms = ['query', 'bool', 
+                                                                            'qtype', 'contains', '_adv'];
+                                                            del_parms = del_parms.merge(add_del_parms);
+                                                            add_parms = {hold_target => rec.id, 
+                                                                     hold_type => hold_type, 
+                                                                     hold_source_page => mkurl(),
+                                                                     query = ctx.naive_query_scrub(ctx.user_query)};
+                                                        END; %]
+
                                                         <div class="results_aux_utils place_hold"><a
                                                                 href="[% mkurl(ctx.opac_root _ '/place_hold',
-                                                                    {hold_target => rec.id, hold_type => hold_type, 
-                                                                      hold_source_page => mkurl()}, ['tag','subfield','term','_special','sort','page']) %]"
+                                                                    add_parms, del_parms) %]"
                                                                 [% html_text_attr('title', l('Place Hold on [_1]', attrs.title)) %]
                                                                     class="no-dec" rel="nofollow" vocab=""><img
                                                                 src="[% ctx.media_prefix %]/images/green_check.png[% ctx.cache_key %]"