@@ -, +, @@ the holds page - Locate a title in the catalog with multiple holds. - View the holds on that title. In the list of holds you should see "Delete" and "Suspend" buttons in the last two columns of the tabel of holds. - Test that the "Delete" button works correctly, - Test the "Suspend" button. Clicking it should trigger a modal window where you can set a date for the hold to resume. - Submitting the form with a date should result in the page reloading and showing the hold as suspended until that date. - Submitting hte form without a date should result in the page reloading and showing the hold as suspended. - Test that the "Resume" button works to remove the suspension. - Disable AutoResumeSuspendedHolds. Now when you click the "Suspend" button you should not see the modal. The page should reload and the hold should be suspended without a resume date. --- .../prog/en/includes/holds_table.inc | 23 ++++--- .../prog/en/modules/reserve/request.tt | 62 ++++++++++++++++++- 2 files changed, 73 insertions(+), 12 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/holds_table.inc @@ -177,6 +177,13 @@ [% IF hold.non_priority %]
Non priority hold [% END %] + [% IF ( hold.suspend ) %] + [% IF ( hold.suspend_until ) -%] +

Hold is suspended until [% hold.suspend_until | $KohaDates %]

+ [% ELSE %] +

Hold is suspended

+ [% END %] + [% END %] [% IF ( CAN_user_reserveforothers_modify_holds_priority ) %] @@ -196,28 +203,24 @@ [% END %] - - Cancel + + Delete [% IF Koha.Preference('SuspendHoldsIntranet') %] [% UNLESS ( hold.found ) %] - - - [% IF Koha.Preference('AutoResumeSuspendedHolds') %] - - - Clear date + [% IF ( hold.suspend ) %] + Resume [% ELSE %] - + Suspend [% END %] [% END %] [% END # IF SuspendHoldsIntranet %] [% IF ( hold.found ) %] - + [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -1000,12 +1000,12 @@ [% holds_by_itemtype.push( h ) %] [% END %] [% END %] - [% INCLUDE holds_table.inc holds=holds_by_itemtype %] + [% INCLUDE holds_table.inc holds=holds_by_itemtype hold_title = biblioloo.title %] [% END %] [% END # /FOREACH b %] [% ELSE %] - [% INCLUDE holds_table.inc holds=biblioloo.reserveloop %] + [% INCLUDE holds_table.inc holds=biblioloo.reserveloop hold_title = biblioloo.title %] [% END # /IF HoldsSplitQueue %] [% END # /IF biblioloo.reserveloop %] @@ -1590,6 +1590,64 @@ stickTo: "#existing_holds", stickyClass: "floating" }); + + $("body").append("\ + \ + "); + + $(".hold-suspend, .hold-resume").on( "click", function(e) { + e.preventDefault(); + var id = $(this).data("reserve-id") + var title = $(this).data("title"); + var borrowernumber = $(this).data("borrowernumber"); + var biblionumber = $(this).data("biblionumber"); + var date = $(this).data("date"); + + $("#suspend-modal-title").html( title ); + $("#suspend-modal-reserve_id").val( id ); + $("#suspend-modal-borrowernumber").val( borrowernumber ); + $("#suspend-modal-biblionumber").val( biblionumber ); + $("#suspend-modal-date").val( date ); + /* Actions based on which button was pushed */ + if( $(this).hasClass("hold-resume") ){ + document.forms["suspend-modal-form"].submit(); + } else { + [% IF Koha.Preference('AutoResumeSuspendedHolds') %] + $('#suspend-modal').modal('show'); + [% ELSE %] + document.forms["suspend-modal-form"].submit(); + [% END %] + } + }); + + $("#suspend-modal-until").datepicker({ minDate: 1 }); // Require that "until date" be in the future + $("#suspend-modal-clear-date").on( "click", function() { $("#suspend-modal-until").val(""); } ); + }); [% END %] --