[% PROCESS "opac/parts/misc_util.tt2"; USE ResolverResolver; ctx.result_start = 1 + ctx.page_size * page; ctx.result_stop = ctx.page_size * (page + 1); IF ctx.result_stop > ctx.hit_count; ctx.result_stop = ctx.hit_count; END; result_count = ctx.result_start; %] [% PROCESS "opac/parts/result/paginate.tt2" %] [% ctx.results_count_header = PROCESS results_count_header; ctx.results_count_header %] [% IF ctx.bookbag %]
[% ctx.bookbag.name | html %]
[% ctx.bookbag.description | html %]
[% END %]
[%- IF ctx.is_staff %]

[% l('Saved Searches') %]

[% INCLUDE "opac/parts/staff_saved_searches.tt2" %] [%- END %]

[% l('Search Results facets') %]

[% INCLUDE 'opac/parts/result/facets.tt2' %]

[% l('Search Results List') %]

[% IF !ctx.is_meta %] [% END %] [% FOR rec IN ctx.records; attrs = {}; attrs.marc_xml = rec.marc_xml; attrs.mr_constituent_ids = []; FOREACH mr_constituent_id IN rec.mr_constituent_ids; attrs.mr_constituent_ids.push(mr_constituent_id); END; PROCESS get_marc_attrs args=attrs; IF show_detail_view; attrs.title = attrs.title_extended; END; # note: rec.id refers to the record identifier, regardless # of the type of record. i.e. rec.id = mmr_id ? mmr_id : bre_id IF rec.mmr_id; IF rec.mr_constituent_count > 1; # metarecords link to record list page record_url_path = ctx.opac_root _ '/results'; add_parms = {metarecord => rec.mmr_id}; del_parms = ['page']; ELSE; # for MR, bre_id refers to the master and in # this case, only, record record_url_path = ctx.opac_root _ '/record/' _ attrs.mr_constituent_ids.0; add_parms = { badges => rec.badges.join(',') }; del_parms = ['quux']; END; hold_type = 'M'; ELSE; record_url_path = ctx.opac_root _ '/record/' _ rec.bre_id; add_parms = { badges => rec.badges.join(',') }; del_parms = ['quux']; hold_type = 'T'; END; IF is_advanced; # Do not pass "advanced params" to result detail code. # Instead, pass the scrubed query in one-line form del_parms = del_parms.merge(['query', 'bool', 'qtype', 'contains', '_adv']); add_parms.import( {query => ctx.naive_query_scrub(ctx.user_query)} ); END; is_selected = ctx.mylist.grep('^' _ rec.id _ '$').size; %] [%- IF ENV.OILS_CHILIFRESH_ACCOUNT %] [%- END %] [% END %]
[% l('Search result number') %] [% l('Book jacket cover art') %] [% l('Item details and Actions') %]
[% IF !ctx.is_meta; %] [% END %] [% result_count; result_count = result_count + 1 %].
[%- search_ou = ctx.search_ou; num_holdable_copies = attrs.marc_xml.findnodes('//*[local-name()="holdings" and @has_holdable="true"]').size || 0; IF ctx.place_unfillable || ( num_holdable_copies > 0 && (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 is_advanced; # Do not pass "advanced params" to hold code # Instead, pass the scrubed query in one-line form del_parms = del_parms.merge(['query', 'bool', 'qtype', 'contains', '_adv']); add_parms.import( {query => ctx.naive_query_scrub(ctx.user_query)}); END; %] [%- END -%] [%- IF ebook_api.enabled == 'true' && args.ebook %] [%- END -%] [% IF !ctx.is_meta %]
[% IF !ctx.is_staff %] [% addhref = mkurl(ctx.opac_root _ '/mylist/add', {record => rec.id, anchor => 'record_' _ rec.id}, 1); delhref = mkurl(ctx.opac_root _ '/mylist/delete', {record => rec.id, anchor => 'record_' _ rec.id}, 1); %] [% l("Add to basket") %] [% l("Remove from basket") %] [% IF ctx.user; INCLUDE "opac/parts/bookbag_actions.tt2"; END; %] [% END %]
[% END %] [% IF ENV.OILS_CONTENT_CAFE_USER %] [% ident = attrs.isbn_clean || attrs.upc %] [% END %]