lp1373203: Allow users to escape metarecord holds
authorKathy Lussier <klussier@masslnc.org>
Sat, 21 Feb 2015 14:50:13 +0000 (09:50 -0500)
committerBen Shum <bshum@biblio.org>
Wed, 25 Feb 2015 20:10:21 +0000 (15:10 -0500)
Provides a means for users to escape a metarecord hold if they accidentally
clicked the Advanced Hold Options link. A Basic Hold Options link will be
provided to allow the user to return to a title hold. If the hold starts as a
metarecord hold, the basic hold options link won't display since we don't know
which bib the patron wants.

Also fixes an issue where the hold cancel button always returned the user to
the previous screen. We will instead utilize the existing hold_source_page
parameter to identify the return page.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/templates/opac/parts/place_hold.tt2
Open-ILS/src/templates/opac/parts/place_hold_result.tt2

index 192b65b..467e02b 100644 (file)
                     [% END %]
                     [% IF NOT metarecords.disabled %]
                         [% IF CGI.param('hold_type') == 'T' AND hdata.record.metarecord %]
+                        <!-- Grab the bre_id so that we can restore it if user accidentally clicks advanced options -->
+                           [% bre_id = hdata.target.id %]
                             <a  id='advanced_hold_link'
-                                href="[% mkurl('', {hold_type => 'M', hold_target => hdata.record.metarecord.id}) %]">
+                                href="[% mkurl('', {hold_type => 'M', hold_target => hdata.record.metarecord.id, bre_id => bre_id}) %]">
                                 [% l('Advanced Hold Options') %]</a>
                         [% END %]
+                        [% IF CGI.param('hold_type') == 'M' AND CGI.param('bre_id') %]
+                            <input type="hidden" name="bre_id" value="[% CGI.param('bre_id') %]" />
+                            <a id='basic_hold_link'
+                               href="[% mkurl('', {hold_target => CGI.param('bre_id'), hold_type => 'T'}) %]">
+                                [% l('Basic Hold Options') %]</a>
+                        [% END %]
                         [% IF hdata.metarecord_filters.formats.size OR # should this be size > 1
                             (hdata.metarecord_filters.langs.size && hdata.metarecord_filters.langs.size > 1);
                             PROCESS metarecord_hold_filters_selector hold_data=hdata;
             value="[% l('Submit') %]" title="[% l('Submit') %]"
             alt="[% l('Submit') %]" class="opac-button" />
         [% END # some_holds_allowed %]
-        <input type="reset" name="cancel" onclick="javascript:history.go(-1);"
-            value="[% l('Cancel') %]" id="holds_cancel" class="opac-button" />
+        <input type="reset" name="cancel" onclick="window.location='[% redirect | html %]'" value="[% l('Cancel') %]" id="holds_cancel" class="opac-button" />
     </form>
 </div>
 
index 5ec0afc..5cf09c1 100644 (file)
                 ELSE;
                   hold_type_label = 'title';
               END %]
-               <span><a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_source_page => CGI.param('hold_source_page')}) %]">
+               <span><a href="[% mkurl(ctx.opac_root _ '/place_hold', {hold_source_page => CGI.param('hold_source_page'), bre_id => CGI.param('bre_id')}) %]">
                [% l('Place another hold for this ') %] [% hold_type_label %]</a>
                </span>
           [% END %]