[% PROCESS "opac/parts/header.tt2"; PROCESS "opac/parts/misc_util.tt2"; PROCESS "opac/parts/myopac/column_sort_support.tt2"; WRAPPER "opac/parts/myopac/base.tt2"; myopac_page = "circs" %]

[% l('Current Items Checked Out') %]

[%- IF ebook_api.enabled %] [%- END %]
[% l('Current Items Checked Out') %]
[% IF ctx.circs.size < 1 %]
[% l('You have no items checked out.') %]
[% ELSE %] [% IF ctx.success_renewals %]
[% l("Successfully renewed [_1] item(s)", ctx.success_renewals) %]
[% END %] [% IF ctx.failed_renewals %]
[% l("Failed to renew [_1] item(s)", ctx.failed_renewals) %]
[% END %]
[% l('Renewing Help') %]
[%# Copy the ctx.circs into a local array, then add a SORT field that contains the value to sort on. Since we need the item attrs, invoke it and save the result in ATTRS. %] [% circ_items = ctx.circs; # Array assignment sort_field = CGI.param('sort'); # unless changed below... FOR circ IN circ_items; circ.ATTRS = {marc_xml => circ.marc_xml}; PROCESS get_marc_attrs args=circ.ATTRS; SWITCH sort_field; CASE "sort_title"; circ.SORTING = circ.ATTRS.sort_title; CASE "author"; circ.SORTING = circ.ATTRS.author; CASE "renews"; circ.SORTING = circ.circ.renewal_remaining; CASE "due"; circ.SORTING = circ.circ.due_date; CASE "barcode"; circ.SORTING = circ.circ.target_copy.barcode; CASE "callnum"; circ.SORTING = circ.circ.target_copy.call_number.label; CASE; sort_field = ""; END; # SWITCH END; #FOR circ IF (sort_field != "sort_title"); deemphasize_class = ""; ELSE; deemphasize_class = " class=\"sort_deemphasize\""; END; # Apply sorting to circ_items IF (sort_field); circ_items = circ_items.sort("SORTING"); IF (CGI.param("sort_type") == "desc"); circ_items = circ_items.reverse; END; END; # circ_items list is now sorted. Traverse and dump the information. FOR circ IN circ_items; %] [% due_date = ctx.parse_datetime(circ.circ.due_date, circ.circ.circ_lib); due_class = (date.now > date.format(due_date, '%s')) ? 'error' : ''; %] [% IF circ.renewal_response AND circ.renewal_response.textcode != 'SUCCESS' %] [% END; # FOR END %]
[% sort_head("sort_title", l("Title")) %] [% sort_head("author", l("Author")) %] [% sort_head("renews", l("Renewals Left")) %] [% sort_head("due", l("Due Date")) %] [% sort_head("barcode", l("Barcode")) %] [% sort_head("callnum", l("Call number")) %]
[% IF circ.circ.target_copy.call_number.id == -1 %] [% circ.circ.target_copy.dummy_title | html %] [% ELSIF circ.ATTRS.title %] [%- circ.ATTRS.title.substr(0,circ.ATTRS.nonfiling_characters) | html %] [%- circ.ATTRS.title.substr(circ.ATTRS.nonfiling_characters) | html %] [% END %] [% IF circ.circ.target_copy.call_number.id == -1 %] [% circ.circ.target_copy.dummy_author | html %] [% ELSIF circ.ATTRS.author %] [% circ.ATTRS.author | html %] [% END %] [% circ.circ.renewal_remaining %] [% date.format(due_date, DATE_FORMAT) %] [% circ.circ.target_copy.barcode | html %] [% circ.circ.target_copy.call_number.label | html %]
[%# XXX colspan="0" does not work in IE %] [% renew_fail_msg = ''; IF circ.renewal_response.textcode == 'TOTAL_HOLD_COPY_RATIO_EXCEEDED' OR circ.renewal_response.textcode == 'AVAIL_HOLD_COPY_RATIO_EXCEEDED'; # the stock hold ratio message may not be patron friendly renew_fail_msg = l('Item is needed for a hold'); ELSE; renew_fail_msg = circ.renewal_response.desc || circ.renewal_response.fail_part || circ.renewal_response.textcode; END; renew_fail_msg | html; %]
[% END %]
[% END %]