Bug 33895: Use template wrapper for tabs: OPAC user summary

This patch updates the OPAC user summary page so that it uses
the new WRAPPER syntax to generate tabs markup.

To test, apply the patch and log in to the OPAC. Check these tabs on
the patron summary page:

  - Checkouts
  - Relatives' checkouts
  - Relatives' charges
  - Overdues
  - Charges
  - Credits
  - Clubs
    - Test enrolling and unenrolling
  - Holds
  - Recalls
  - Article requests
  - Overdrive
    - Test with OverDriveCirculation enabled
    - Logging in, logging out

Signed-off-by: Sam Lau <samalau@gmail.com>

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Owen Leonard 2023-06-01 14:16:18 +00:00 committed by Tomas Cohen Arazi
parent 6cd84c54b5
commit 324a501f2c
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
5 changed files with 307 additions and 305 deletions

View File

@ -3,234 +3,230 @@
[% USE KohaDates %]
[% PROCESS 'i18n.inc' %]
[% IF ( HOLDS.count ) %]
<div id="opac-user-holds" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-holds-tab">
<table id="holdst" class="table table-bordered table-striped">
<caption>Holds <span class="count">([% HOLDS.count | html %] total)</span></caption>
<!-- HOLDS TABLE ROWS -->
<thead>
<tr>
<th class="anti-the">Title</th>
[% IF ( showpriority ) %]
<th>Placed on</th>
[% ELSE %]
<th class="psort">Placed on</th>
[% END %]
<th>Expires on</th>
[% UNLESS( singleBranchMode) %]
<th>Pickup location</th>
[% END %]
[% IF ( showpriority ) %]
<th class="psort">Priority</th>
[% END %]
<th>Status</th>
[% IF SuspendHoldsOpac and ! onlyinfo %]
<th class="nosort" >Suspend</th>
[% END %]
[% IF ! onlyinfo %]
<th class="nosort">Modify</th>
[% END %]
<th></th>
</tr>
</thead>
<tbody>
[% SET all_holds_waiting = 1 %]
[% FOREACH HOLD IN HOLDS %]
[% UNLESS ( HOLD.is_waiting || HOLD.is_in_transit || HOLD.is_in_processing) %]
[% SET all_holds_waiting = 0 %]
[% END %]
[% IF ( HOLD.is_at_destination ) %]
<tr class="reserved">
[% ELSIF HOLD.is_in_transit %]
<tr class="transfered">
[% ELSE %]
<tr>
[% END %]
<td class="title">
[% IF ! onlyinfo %]
[% INCLUDE 'biblio-title.inc' biblio=HOLD.biblio link=> 1 %]
[% HOLD.item.enumchron | html %]
[% ELSE %]
<strong>
[% INCLUDE 'biblio-title.inc' biblio=HOLD.biblio %]
[% HOLD.item.enumchron | html %]
</strong>
[% END %]
[% HOLD.biblio.author | html %]
[% IF HOLD.item_group_id %]
<p>Next available item from item group: <strong>[% HOLD.item_group.description | html %]</strong></p>
[% END %]
[% IF HOLD.item_level_hold %]
<p class="hint">Item on hold: [% HOLD.item.barcode | html %]</p>
[% END %]
</td>
<td class="reservedate" data-order="[% HOLD.reservedate | html %]">
<span class="tdlabel">Hold date:</span>
[% HOLD.reservedate | $KohaDates %]
</span>
</td>
[% IF ! HOLD.found %]
<td class="expirationdate" data-order="[% HOLD.expirationdate | html %]">
[% IF ( HOLD.expirationdate ) %]
<span class="tdlabel">Expiration:</span>
[% HOLD.expirationdate | $KohaDates %]
[% ELSE %]
<span class="tdlabel">Expiration:</span>
Never expires
[% END %]
[% ELSE %]
<td class="expirationdate" data-order="0000-00-00">
-
[% END %]
</td>
[% UNLESS( singleBranchMode) %]
<td class="branch">
<span class="tdlabel">Pickup location:</span>
[% HOLD.branch.branchname | html %]
[% IF ( HOLD.can_update_pickup_location_opac ) %]
<button type="button" class="btn btn-sm btn-link" data-toggle="modal" data-target="#changePickup[% HOLD.reserve_id | html %]">
<i class="fa-solid fa-pencil" aria-hidden="true"></i> Change
</button>
<!-- Change pickup location modal -->
<div class="modal" id="changePickup[% HOLD.reserve_id | html %]" tabindex="-1" aria-labelledby="changePickup[% HOLD.reserve_id | html %]Label" aria-hidden="true">
<div class="modal-dialog">
<form id="change_branch_form[% HOLD.reserve_id | html %]" action="/cgi-bin/koha/opac-modrequest.pl" method="post">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="changePickup[% HOLD.reserve_id | html %]Label">Change pickup location for <em>[% INCLUDE 'biblio-title.inc' biblio=HOLD.biblio %]</em></h5>
<button type="button" class="closebtn" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="new_branch[% HOLD.reserve_id | html %]">New pickup location:</label>
<select name="new_pickup_location" id="new_branch[% HOLD.reserve_id | html %]" class="form-control">
[% PROCESS options_for_libraries libraries = Branches.pickup_locations({ search_params => { biblio => HOLD.biblionumber, patron => HOLD.borrower }, selected => HOLD.branchcode }) %]
</select>
</div>
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
</div>
<div class="modal-footer">
<button type="submit" name="change_branch" value="1" class="btn btn-primary"><i class="fa fa-check" aria-hidden="true"></i> Save</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal"><i class="fa fa-times" aria-hidden="true"></i> Cancel</button>
</div>
</div> <!-- /.modal-content -->
</form>
</div> <!-- /.modal-dialog -->
</div> <!-- /.modal -->
[% END %]
</td>
[% END %]
[% IF ( showpriority ) %]
<td data-order="[% HOLD.priority | html %]" class="priority">
<span class="tdlabel">Priority:</span>
[% HOLD.priority | html %]
</td>
[% END %]
<td class="status">
<span class="tdlabel">Status:</span>
[% IF ( HOLD.is_waiting ) %]
<i class="fa fa-exclamation-circle text-warning" aria-hidden="true"></i>
[% IF ( HOLD.is_at_destination ) %]
Item waiting at <strong> [% HOLD.branch.branchname | html %]</strong>
[% IF ( HOLD.desk_id ) %], [% HOLD.desk.desk_name | html %],[% END %]
[% IF ( HOLD.waitingdate ) %]
since [% HOLD.waitingdate | $KohaDates %]
[% IF HOLD.expirationdate %]
until [% HOLD.expirationdate | $KohaDates %]
[% END %]
[% END %]
<input type="hidden" name="pickup" value="[% HOLD.branchcode | html %]" />
[% ELSE %]
Item in transit to <strong> [% Branches.GetName( HOLD.branchcode ) | html %]</strong> <input type="hidden" name="pickup" value="[% HOLD.branchcode | html %]" />
[% END %]
[% ELSE %]
[% IF ( HOLD.is_in_transit ) %]
[% SET transfer = HOLD.item.get_transfer %]
[% branch_name = BLOCK %]<strong>[% Branches.GetName( transfer.frombranch ) | html %]</strong>[% END %]
<span>Item in transit from [% branch_name| $raw %] since</span>
[% transfer.datesent | $KohaDates %]
[% ELSIF ( HOLD.is_in_processing ) %]
<span>Item in processing</span>
[% ELSIF ( HOLD.suspend ) %]
<span>Suspended</span>[% IF ( HOLD.suspend_until ) %] <span>until</span> [% HOLD.suspend_until | $KohaDates %][% END %]
[% ELSE %]
[% IF HOLD.itemtype %]
<span>Pending for next available item of item type '[% ItemTypes.GetDescription( HOLD.itemtype ) | html %]'</span>
[% ELSE %]
<span>Pending</span>
[% END %]
[% END %]
[% END %]
</td>
[% IF SuspendHoldsOpac and ! onlyinfo %]
<td>
[% IF ( HOLD.is_cancelable_from_opac ) %]
[% IF HOLD.suspend %]
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<button class="btn btn-link" type="submit" name="submit"><i class="fa fa-play" aria-hidden="true"></i> Resume</button>
</form>
[% ELSE %]
[% IF AutoResumeSuspendedHolds %]
<a class="btn btn-link suspend_hold js-show" href="#" role="button" data-title="[% HOLD.biblio.title | html %] [% FOREACH subtitle IN HOLD.biblio.subtitle.split(' \| ') %][% IF Koha.Preference('marcflavour')=='UNIMARC' %],[% END %][% subtitle | html %][% END %]" data-reserve_id="[% HOLD.reserve_id | html %]"><i class="fa fa-pause" aria-hidden="true"></i> Suspend</a>
[% ELSE %]
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<button class="btn btn-link" type="submit" name="submit"><i class="fa fa-pause" aria-hidden="true"></i> Suspend</button>
</form>
[% END # / IF AutoResumeSuspendedHolds %]
[% END # / IF HOLD.suspend %]
[% END # / IF ( HOLD.is_cancelable_from_opac )%]
</td>
[% END # / IF SuspendHoldsOpac %]
[% IF ! onlyinfo %]
<td class="modify">
[% IF ( HOLD.is_cancelable_from_opac ) %]
<form id="delete_hold_[% HOLD.reserve_id | html %]" action="/cgi-bin/koha/opac-modrequest.pl" method="post">
<input type="hidden" name="biblionumber" value="[% HOLD.biblionumber | html %]" />
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<button data-title="[% INCLUDE 'biblio-title-head.inc' biblio=HOLD.biblio %]" data-reserve_id="[% HOLD.reserve_id | html %]" type="submit" class="btn btn-sm btn-danger btn-delete-hold"><i class="fa fa-times" aria-hidden="true"></i> [% tp('Cancel hold button', 'Cancel') | html %]</button>
</form>
[% ELSIF HOLD.is_waiting && HOLD.cancellation_requestable_from_opac %]
<form id="req_cancel_hold_[% HOLD.reserve_id | html %]" action="/cgi-bin/koha/opac-modrequest.pl" method="post">
<input type="hidden" name="biblionumber" value="[% HOLD.biblionumber | html %]" />
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<input type="hidden" name="cancellation_request" value="1" />
<button data-title="[% INCLUDE 'biblio-title-head.inc' biblio=HOLD.biblio %]" data-reserve_id="[% HOLD.reserve_id | html %]" type="submit" class="btn btn-sm btn-danger btn-req-delete-hold"><i class="fa fa-times" aria-hidden="true"></i> [% tp('Cancel hold button', 'Cancel') | html %]</button>
</form>
[% END %]
</td>
<td></td>
[% END # / IF onlyinfo %]
</tr>
[% END # /FOREACH HOLDS %]
</tbody>
</table>
[% IF SuspendHoldsOpac and ! onlyinfo %]
[% UNLESS ( all_holds_waiting ) %]
<div>
<form class="form-inline" id="suspend_all_holds" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<button type="submit" id="suspend_all_submit" class="btn btn-primary"><i class="fa fa-pause" aria-hidden="true"></i> Suspend all holds</button>
<input type="hidden" name="suspend" value="1" />
[% IF AutoResumeSuspendedHolds %]
<label for="suspend_until"> until </label>
<input type="text" name="suspend_until" id="suspend_until" class="flatpickr futuredate" size="10" />
<p><a href="#" class="clear-flatpickr" data-fp="suspend_until">Clear date to suspend indefinitely</a></p>
[% END %]
</form>
</div>
<br/>
<div>
<form id="resume_all_holds" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<button type="submit" id="resume_all_submit" class="btn btn-primary"><i class="fa fa-play" aria-hidden="true"></i> Resume all suspended holds</button>
<input type="hidden" name="suspend" value="0" />
</form>
</div>
<table id="holdst" class="table table-bordered table-striped">
<caption>Holds <span class="count">([% HOLDS.count | html %] total)</span></caption>
<!-- HOLDS TABLE ROWS -->
<thead>
<tr>
<th class="anti-the">Title</th>
[% IF ( showpriority ) %]
<th>Placed on</th>
[% ELSE %]
<th class="psort">Placed on</th>
[% END %]
[% END %]
</div> <!-- / #opac-user-holds -->
[% END # / #HOLDS.count %]
<th>Expires on</th>
[% UNLESS( singleBranchMode) %]
<th>Pickup location</th>
[% END %]
[% IF ( showpriority ) %]
<th class="psort">Priority</th>
[% END %]
<th>Status</th>
[% IF SuspendHoldsOpac and ! onlyinfo %]
<th class="nosort" >Suspend</th>
[% END %]
[% IF ! onlyinfo %]
<th class="nosort">Modify</th>
[% END %]
<th></th>
</tr>
</thead>
<tbody>
[% SET all_holds_waiting = 1 %]
[% FOREACH HOLD IN HOLDS %]
[% UNLESS ( HOLD.is_waiting || HOLD.is_in_transit || HOLD.is_in_processing) %]
[% SET all_holds_waiting = 0 %]
[% END %]
[% IF ( HOLD.is_at_destination ) %]
<tr class="reserved">
[% ELSIF HOLD.is_in_transit %]
<tr class="transfered">
[% ELSE %]
<tr>
[% END %]
<td class="title">
[% IF ! onlyinfo %]
[% INCLUDE 'biblio-title.inc' biblio=HOLD.biblio link=> 1 %]
[% HOLD.item.enumchron | html %]
[% ELSE %]
<strong>
[% INCLUDE 'biblio-title.inc' biblio=HOLD.biblio %]
[% HOLD.item.enumchron | html %]
</strong>
[% END %]
[% HOLD.biblio.author | html %]
[% IF HOLD.item_group_id %]
<p>Next available item from item group: <strong>[% HOLD.item_group.description | html %]</strong></p>
[% END %]
[% IF HOLD.item_level_hold %]
<p class="hint">Item on hold: [% HOLD.item.barcode | html %]</p>
[% END %]
</td>
<td class="reservedate" data-order="[% HOLD.reservedate | html %]">
<span class="tdlabel">Hold date:</span>
[% HOLD.reservedate | $KohaDates %]
</span>
</td>
[% IF ! HOLD.found %]
<td class="expirationdate" data-order="[% HOLD.expirationdate | html %]">
[% IF ( HOLD.expirationdate ) %]
<span class="tdlabel">Expiration:</span>
[% HOLD.expirationdate | $KohaDates %]
[% ELSE %]
<span class="tdlabel">Expiration:</span>
Never expires
[% END %]
[% ELSE %]
<td class="expirationdate" data-order="0000-00-00">
-
[% END %]
</td>
[% UNLESS( singleBranchMode) %]
<td class="branch">
<span class="tdlabel">Pickup location:</span>
[% HOLD.branch.branchname | html %]
[% IF ( HOLD.can_update_pickup_location_opac ) %]
<button type="button" class="btn btn-sm btn-link" data-toggle="modal" data-target="#changePickup[% HOLD.reserve_id | html %]">
<i class="fa fa-pencil-alt" aria-hidden="true"></i> Change
</button>
<!-- Change pickup location modal -->
<div class="modal" id="changePickup[% HOLD.reserve_id | html %]" tabindex="-1" aria-labelledby="changePickup[% HOLD.reserve_id | html %]Label" aria-hidden="true">
<div class="modal-dialog">
<form id="change_branch_form[% HOLD.reserve_id | html %]" action="/cgi-bin/koha/opac-modrequest.pl" method="post">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="changePickup[% HOLD.reserve_id | html %]Label">Change pickup location for <em>[% INCLUDE 'biblio-title.inc' biblio=HOLD.biblio %]</em></h5>
<button type="button" class="closebtn" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="form-group">
<label for="new_branch[% HOLD.reserve_id | html %]">New pickup location:</label>
<select name="new_pickup_location" id="new_branch[% HOLD.reserve_id | html %]" class="form-control">
[% PROCESS options_for_libraries libraries = Branches.pickup_locations({ search_params => { biblio => HOLD.biblionumber, patron => HOLD.borrower }, selected => HOLD.branchcode }) %]
</select>
</div>
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
</div>
<div class="modal-footer">
<button type="submit" name="change_branch" value="1" class="btn btn-primary"><i class="fa fa-check" aria-hidden="true"></i> Save</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal"><i class="fa fa-times" aria-hidden="true"></i> Cancel</button>
</div>
</div> <!-- /.modal-content -->
</form>
</div> <!-- /.modal-dialog -->
</div> <!-- /.modal -->
[% END %]
</td>
[% END %]
[% IF ( showpriority ) %]
<td data-order="[% HOLD.priority | html %]" class="priority">
<span class="tdlabel">Priority:</span>
[% HOLD.priority | html %]
</td>
[% END %]
<td class="status">
<span class="tdlabel">Status:</span>
[% IF ( HOLD.is_waiting ) %]
<i class="fa fa-exclamation-circle text-warning" aria-hidden="true"></i>
[% IF ( HOLD.is_at_destination ) %]
Item waiting at <strong> [% HOLD.branch.branchname | html %]</strong>
[% IF ( HOLD.desk_id ) %], [% HOLD.desk.desk_name | html %],[% END %]
[% IF ( HOLD.waitingdate ) %]
since [% HOLD.waitingdate | $KohaDates %]
[% IF HOLD.expirationdate %]
until [% HOLD.expirationdate | $KohaDates %]
[% END %]
[% END %]
<input type="hidden" name="pickup" value="[% HOLD.branchcode | html %]" />
[% ELSE %]
Item in transit to <strong> [% Branches.GetName( HOLD.branchcode ) | html %]</strong> <input type="hidden" name="pickup" value="[% HOLD.branchcode | html %]" />
[% END %]
[% ELSE %]
[% IF ( HOLD.is_in_transit ) %]
[% SET transfer = HOLD.item.get_transfer %]
[% branch_name = BLOCK %]<strong>[% Branches.GetName( transfer.frombranch ) | html %]</strong>[% END %]
<span>Item in transit from [% branch_name| $raw %] since</span>
[% transfer.datesent | $KohaDates %]
[% ELSIF ( HOLD.is_in_processing ) %]
<span>Item in processing</span>
[% ELSIF ( HOLD.suspend ) %]
<span>Suspended</span>[% IF ( HOLD.suspend_until ) %] <span>until</span> [% HOLD.suspend_until | $KohaDates %][% END %]
[% ELSE %]
[% IF HOLD.itemtype %]
<span>Pending for next available item of item type '[% ItemTypes.GetDescription( HOLD.itemtype ) | html %]'</span>
[% ELSE %]
<span>Pending</span>
[% END %]
[% END %]
[% END %]
</td>
[% IF SuspendHoldsOpac and ! onlyinfo %]
<td>
[% IF ( HOLD.is_cancelable_from_opac ) %]
[% IF HOLD.suspend %]
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<button class="btn btn-link" type="submit" name="submit"><i class="fa fa-play" aria-hidden="true"></i> Resume</button>
</form>
[% ELSE %]
[% IF AutoResumeSuspendedHolds %]
<a class="btn btn-link suspend_hold js-show" href="#" role="button" data-title="[% HOLD.biblio.title | html %] [% FOREACH subtitle IN HOLD.biblio.subtitle.split(' \| ') %][% IF Koha.Preference('marcflavour')=='UNIMARC' %],[% END %][% subtitle | html %][% END %]" data-reserve_id="[% HOLD.reserve_id | html %]"><i class="fa fa-pause" aria-hidden="true"></i> Suspend</a>
[% ELSE %]
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<button class="btn btn-link" type="submit" name="submit"><i class="fa fa-pause" aria-hidden="true"></i> Suspend</button>
</form>
[% END # / IF AutoResumeSuspendedHolds %]
[% END # / IF HOLD.suspend %]
[% END # / IF ( HOLD.is_cancelable_from_opac )%]
</td>
[% END # / IF SuspendHoldsOpac %]
[% IF ! onlyinfo %]
<td class="modify">
[% IF ( HOLD.is_cancelable_from_opac ) %]
<form id="delete_hold_[% HOLD.reserve_id | html %]" action="/cgi-bin/koha/opac-modrequest.pl" method="post">
<input type="hidden" name="biblionumber" value="[% HOLD.biblionumber | html %]" />
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<button data-title="[% INCLUDE 'biblio-title-head.inc' biblio=HOLD.biblio %]" data-reserve_id="[% HOLD.reserve_id | html %]" type="submit" class="btn btn-sm btn-danger btn-delete-hold"><i class="fa fa-times" aria-hidden="true"></i> [% tp('Cancel hold button', 'Cancel') | html %]</button>
</form>
[% ELSIF HOLD.is_waiting && HOLD.cancellation_requestable_from_opac %]
<form id="req_cancel_hold_[% HOLD.reserve_id | html %]" action="/cgi-bin/koha/opac-modrequest.pl" method="post">
<input type="hidden" name="biblionumber" value="[% HOLD.biblionumber | html %]" />
<input type="hidden" name="reserve_id" value="[% HOLD.reserve_id | html %]" />
<input type="hidden" name="cancellation_request" value="1" />
<button data-title="[% INCLUDE 'biblio-title-head.inc' biblio=HOLD.biblio %]" data-reserve_id="[% HOLD.reserve_id | html %]" type="submit" class="btn btn-sm btn-danger btn-req-delete-hold"><i class="fa fa-times" aria-hidden="true"></i> [% tp('Cancel hold button', 'Cancel') | html %]</button>
</form>
[% END %]
</td>
<td></td>
[% END # / IF onlyinfo %]
</tr>
[% END # /FOREACH HOLDS %]
</tbody>
</table>
[% IF SuspendHoldsOpac and ! onlyinfo %]
[% UNLESS ( all_holds_waiting ) %]
<div>
<form class="form-inline" id="suspend_all_holds" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<button type="submit" id="suspend_all_submit" class="btn btn-primary"><i class="fa fa-pause" aria-hidden="true"></i> Suspend all holds</button>
<input type="hidden" name="suspend" value="1" />
[% IF AutoResumeSuspendedHolds %]
<label for="suspend_until"> until </label>
<input type="text" name="suspend_until" id="suspend_until" class="flatpickr futuredate" size="10" />
<p><a href="#" class="clear-flatpickr" data-fp="suspend_until">Clear date to suspend indefinitely</a></p>
[% END %]
</form>
</div>
<br/>
<div>
<form id="resume_all_holds" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
<button type="submit" id="resume_all_submit" class="btn btn-primary"><i class="fa fa-play" aria-hidden="true"></i> Resume all suspended holds</button>
<input type="hidden" name="suspend" value="0" />
</form>
</div>
[% END %]
[% END %]

View File

@ -76,7 +76,7 @@
<script>
function loadEnrollmentForm( id ) {
$("body").css("cursor", "progress");
$('#opac-user-clubs').load('/cgi-bin/koha/clubs/enroll.pl?borrowernumber=[% borrower.borrowernumber | html %]&id=' + id, function() {
$('#opac-user-clubs_panel').load('/cgi-bin/koha/clubs/enroll.pl?borrowernumber=[% borrower.borrowernumber | html %]&id=' + id, function() {
$("body").css("cursor", "default");
});
@ -91,7 +91,7 @@ function cancelEnrollment( id ) {
data: { id: id },
success: function( data ) {
if ( data.success ) {
$('#opac-user-clubs').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrower.borrowernumber | html %]', function() {
$('#opac-user-clubs_panel').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrower.borrowernumber | html %]', function() {
$("body").css("cursor", "default");
});
} else {

View File

@ -44,7 +44,7 @@ function addEnrollment() {
data: $( "#patron-enrollment-form" ).serialize(),
success: function( data ) {
if ( data.success ) {
$('#opac-user-clubs').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrowernumber | html %]&id=[% club.id | html %]', function() {
$('#opac-user-clubs_panel').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrowernumber | html %]&id=[% club.id | html %]', function() {
$("body").css("cursor", "default");
});
} else {
@ -58,7 +58,7 @@ function addEnrollment() {
function showClubs() {
$("body").css("cursor", "progress");
$('#opac-user-clubs').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrowernumber | html %]&id=[% club.id | html %]', function() {
$('#opac-user-clubs_panel').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrowernumber | html %]&id=[% club.id | html %]', function() {
$("body").css("cursor", "default");
});
}

View File

@ -251,73 +251,72 @@
</form>
[% END %]
<div id="opac-user-views" class="toptabs">
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="opac-user-checkouts-tab" data-toggle="tab" role="tab" aria-controls="opac-user-checkouts" aria-selected="true" href="#opac-user-checkouts">Checked out ([% issues_count | html %])</a>
</li>
[% WRAPPER tabs id= "opac-user-views" %]
[% WRAPPER tabs_nav %]
[% WRAPPER tab_item tabname= "opac-user-checkouts" %]
<span>Checked out ([% issues_count | html %])</span>
[% END %]
[% IF relatives %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-relative-issues-tab" data-toggle="tab" role="tab" aria-controls="opac-user-relative-issues" aria-selected="false" href="#opac-user-relative-issues">Relatives' checkouts</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-relative-issues" %]
<span>Relatives' checkouts</span>
[% END %]
[% END %]
[% IF ( overdues_count ) %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-overdues-tab" data-toggle="tab" role="tab" aria-controls="opac-user-overdues" aria-selected="false" href="#opac-user-overdues">Overdue ([% overdues_count | html %])</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-overdues" %]
<span>Overdue ([% overdues_count | html %])</span>
[% END %]
[% END %]
[% IF ( OPACFinesTab ) %]
[% IF ( amountoutstanding > 0 ) %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-fines-tab" data-toggle="tab" role="tab" aria-controls="opac-user-fines" aria-selected="false" href="#opac-user-fines">Charges ([% amountoutstanding | $Price %])</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-fines" %]
<span>Charges ([% amountoutstanding | $Price %])</span>
[% END %]
[% END %]
[% IF ( amountoutstanding < 0 ) %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-fines-tab" data-toggle="tab" role="tab" aria-controls="opac-user-fines" aria-selected="false" href="#opac-user-fines">Credits ([% amountoutstanding * -1 | $Price %])</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-fines" %]
<span>Credits ([% amountoutstanding * -1 | $Price %])</span>
[% END %]
[% END %]
[% IF relatives_with_fines %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-relative-fines-tab" data-toggle="tab" role="tab" aria-controls="opac-user-relative-fines" aria-selected="false" href="#opac-user-relative-fines">Relatives' charges</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-relative-fines" %]
<span>Relatives' charges</span>
[% END %]
[% END %]
[% END %]
[% IF borrower_club_enrollments.count || borrower_enrollable_clubs.count %]
<li class="nav-item" role="presentation">
<a class="nav-link" data-toggle="tab" role="tab" aria-controls="opac-user-clubs" aria-selected="false" id="opac-user-clubs-tab-link" href="#opac-user-clubs">
Clubs ([% borrower_club_enrollments.count || 0 | html %]/[% borrower_enrollable_clubs.count || 0 | html %])
</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-clubs" %]
<span>Clubs ([% borrower_club_enrollments.count || 0 | html %]/[% borrower_enrollable_clubs.count || 0 | html %])</span>
[% END %]
[% END %]
[% IF ( RESERVES.count ) %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-holds-tab" data-toggle="tab" role="tab" aria-controls="opac-user-holds" aria-selected="false" href="#opac-user-holds">Holds ([% RESERVES.count | html %])</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-holds" %]
<span>Holds ([% RESERVES.count | html %])</span>
[% END %]
[% END %]
[% IF Koha.Preference('UseRecalls') && RECALLS.count %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-recalls-tab" data-toggle="tab" role="tab" aria-controls="opac-user-recalls" aria-selected="false" href="#opac-user-recalls">Recalls ([% RECALLS.count | html %])</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-recalls" %]
<span>Recalls ([% RECALLS.count | html %])</span>
[% END %]
[% END %]
[% IF Koha.Preference('ArticleRequests') %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-article-requests-tab" data-toggle="tab" role="tab" aria-controls="opac-user-article-requests" aria-selected="false" href="#opac-user-article-requests">Article requests ([% current_article_requests.size || 0 | html %])</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-article-requests" %]
<span>Article requests ([% current_article_requests.size || 0 | html %])</span>
[% END %]
[% END %]
[% IF ( OverDriveCirculation ) %]
<li class="nav-item" role="presentation">
<a class="nav-link" id="opac-user-overdrive-tab" data-toggle="tab" role="tab" aria-controls="opac-user-overdrive" aria-selected="false" href="#opac-user-overdrive">OverDrive account</a>
</li>
[% WRAPPER tab_item tabname= "opac-user-overdrive" %]
<span>OverDrive account</span>
[% END %]
[% END %]
</ul>
<div class="tab-content">
[% END # /WRAPPER tabs_nav %]
<div id="opac-user-overdrive" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-overdrive-tab">
</div>
<div id="opac-user-checkouts" class="tab-pane active" role="tabpanel" aria-labelledby="opac-user-checkouts-tab">
[% WRAPPER tab_panels %]
[% WRAPPER tab_panel tabname="opac-user-overdrive" %]
[% END # /tab_panel#opac-user-overdrive %]
[% WRAPPER tab_panel tabname="opac-user-checkouts" %]
[% IF ( issues_count ) %]
<form id="renewselected" action="/cgi-bin/koha/opac-renew.pl" method="post">
<legend class="sr-only">Renew selected</legend>
@ -602,19 +601,18 @@
</form>
</div>
</div>
</div> <!-- / .opac-user-checkouts -->
[% END # /tab_panel#opac-user-checkouts %]
[% IF borrower_club_enrollments.count || borrower_enrollable_clubs.count %]
<div id="opac-user-clubs" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-clubs-tab-link">
[% WRAPPER tab_panel tabname="opac-user-clubs" %]
Loading...
</div>
[% END # /tab_panel#opac-user-clubs %]
[% END %]
[% IF ( OPACFinesTab ) %]
<!-- FINES BOX -->
[% IF ( amountoutstanding > 0 ) %]
<div id="opac-user-fines" class="tab-pane" id="home" role="tabpanel" aria-labelledby="opac-user-fines-tab">
[% WRAPPER tab_panel tabname="opac-user-fines" %]
<table class="table table-bordered table-striped">
<caption>Charges</caption>
<thead><tr><th colspan="2">Amount</th></tr></thead>
@ -625,11 +623,11 @@
</tr>
</tbody>
</table>
</div>
[% END # /tab_panel#opac-user-fines %]
[% END %]
[% IF ( amountoutstanding < 0 ) %]
<div id="opac-user-fines" class="tab-pane" id="home" role="tabpanel" aria-labelledby="opac-user-fines-tab">
[% WRAPPER tab_panel tabname="opac-user-fines" %]
<table class="table table-bordered table-striped">
<caption>Credits</caption>
<thead><tr><th colspan="2">Amount</th></tr></thead>
@ -639,11 +637,11 @@
</tr>
</tbody>
</table>
</div>
[% END # /tab_panel#opac-user-fines %]
[% END %]
[% IF relatives_with_fines %]
<div id="opac-user-relative-fines" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-relative-fines-tab">
[% WRAPPER tab_panel tabname="opac-user-relative-fines" %]
<table class="table table-bordered table-striped">
<caption>Fines and charges</caption>
<thead>
@ -660,12 +658,12 @@
[% END %]
</tbody>
</table>
</div>
[% END # /tab_panel#opac-user-relative-fines %]
[% END %]
[% END # / OPACFinesTab %]
[% IF relatives %]
<div id="opac-user-relative-issues" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-relative-issues-tab">
[% WRAPPER tab_panel tabname="opac-user-relative-issues" %]
<table id="opac-user-relative-issues-table" class="table table-bordered table-striped">
<caption class="sr-only">Relatives' checkouts</caption>
<thead>
@ -710,11 +708,11 @@
[% END %]
</tbody>
</table>
</div>
[% END # /tab_panel#opac-user-relative-issues %]
[% END %]
[% IF ( overdues_count ) %]
<div id="opac-user-overdues" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-overdues-tab">
[% WRAPPER tab_panel tabname="opac-user-overdues" %]
<table id="overduest" class="table table-bordered table-striped">
<caption>Overdues <span class="count">([% overdues_count | html %] total)</span></caption>
<!-- OVERDUES TABLE ROWS -->
@ -835,13 +833,17 @@
[% END %]
</tbody>
</table>
</div> <!-- / #opac-user-overdues -->
[% END # /tab_panel#opac-user-overdues %]
[% END # /overdues_count %]
[% PROCESS 'holds-table.inc' HOLDS = RESERVES, SuspendHoldsOpac = SuspendHoldsOpac, showpriority = showpriority, AutoResumeSuspendedHolds = AutoResumeSuspendedHolds %]
[% IF ( RESERVES.count ) %]
[% WRAPPER tab_panel tabname="opac-user-holds" %]
[% PROCESS 'holds-table.inc' HOLDS = RESERVES, SuspendHoldsOpac = SuspendHoldsOpac, showpriority = showpriority, AutoResumeSuspendedHolds = AutoResumeSuspendedHolds %]
[% END # /tab_panel#opac-user-holds %]
[% END # / #RESERVES.count %]
[% IF Koha.Preference('UseRecalls') && RECALLS.count %]
<div id="opac-user-recalls" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-recalls-tab">
[% WRAPPER tab_panel tabname="opac-user-recalls" %]
<table id="recalls-table" class="table table-bordered table-striped">
<caption>Recalls <span class="count">([% RECALLS.count | html %])</span></caption>
<thead>
@ -912,11 +914,11 @@
</tr>
</tbody>
</table>
</div>
[% END # /tab_panel#opac-user-recalls %]
[% END # / # RECALLS.count %]
[% IF Koha.Preference('ArticleRequests') %]
<div id="opac-user-article-requests" class="tab-pane" role="tabpanel" aria-labelledby="opac-user-article-requests-tab">
[% WRAPPER tab_panel tabname="opac-user-article-requests" %]
[% IF current_article_requests.size %]
<table id="article-requests-table" class="table table-bordered table-striped">
<caption>Article requests <span class="count"></span></caption>
@ -1025,10 +1027,10 @@
<tr><td>You have no article requests currently.</td></tr>
</table>
[% END # IF current_article_requests.size %]
</div> <!-- / #opac-user-article-requests -->
[% END # /tab_panel#opac-user-article-requests %]
[% END %]
</div> <!-- /.tab-content -->
</div> <!-- /#opac-user-views -->
[% END # /WRAPPER tab_panels %]
[% END # /WRAPPER tabs#opac-user-views %]
</div> <!-- /#userdetails -->
</div> <!-- /.col-10 -->
</div> <!-- /.row -->
@ -1330,10 +1332,10 @@
$("#change-pickup-location" + hold_id ).show();
});
if ( $('#opac-user-clubs').length ) {
$('#opac-user-clubs-tab-link').on('click', function() {
$('#opac-user-clubs').text(_("Loading..."));
$('#opac-user-clubs').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrowernumber | html %]');
if ( $('#opac-user-clubs_panel').length ) {
$('#opac-user-clubs-tab').on('click', function() {
$('#opac-user-clubs_panel').text(_("Loading..."));
$('#opac-user-clubs_panel').load('/cgi-bin/koha/clubs/clubs-tab.pl?borrowernumber=[% borrowernumber | html %]');
});
}
@ -1369,6 +1371,10 @@
$(".dismiss-message-button").click(function(e){
return confirmDelete(_("Are you sure you want to dismiss this message?"));
});
if( $("#opac-user-views .tab-pane.active").length < 1 ){
$("#opac-user-views a:first").tab("show");
}
});
function submitNote( title, issue_id, note ){
@ -1451,14 +1457,14 @@
[%- END -%]
$(document).ready(function() {
[% IF ( overdrive_error ) %]
KOHA.OverDriveCirculation.display_error("#opac-user-overdrive", "[% overdrive_error.dquote | html %]");
KOHA.OverDriveCirculation.display_error("#opac-user-overdrive_panel", "[% overdrive_error.dquote | html %]");
[% END %]
[% IF ( overdrive_tab ) %]
$("#opac-user-views a[href='#opac-user-overdrive']").tab("show");
$("#opac-user-views a[href='#opac-user-overdrive_panel']").tab("show");
[% END %]
$("#opac-user-overdrive").each( function() {
$("#opac-user-overdrive_panel").each( function() {
KOHA.OverDriveCirculation.display_account_details(this);
} );
});

View File

@ -225,7 +225,7 @@ KOHA.OverDriveCirculation = new function() {
if( $("#overdrive-results-page").length > 0 ){
location.reload();
} else {
KOHA.OverDriveCirculation.display_account_details( $("#opac-user-overdrive") );
KOHA.OverDriveCirculation.display_account_details( $("#opac-user-overdrive_panel") );
}
}
});