3 PROCESS "opac/parts/header.tt2";
4 PROCESS "opac/parts/misc_util.tt2";
5 PROCESS "opac/parts/org_selector.tt2";
6 WRAPPER "opac/parts/base.tt2";
7 INCLUDE "opac/parts/topnav.tt2";
9 ctx.page_title = l("Browse Courses");
10 blimit = CGI.param('blimit') || ctx.opac_hits_per_page || 10;
11 display_idx = CGI.param('didx') || ctx.match_idx || 0;
15 depart_list = ['blimit', 'bterm', 'bpivot'];
16 ctx.metalinks.push('<meta name="robots" content="noindex,follow">');
19 <h2 class="sr-only">[% l('Course Browse') %]</h2>
21 <div id="content-wrapper" class="my-5">
22 <div class="container mx-auto w-75">
23 <div id="browse-for-courses">
24 <div id="browse-controls" class='row'>
25 <form method="get" onsubmit="$('browse-submit-spinner').className = ''; return true" class="mx-auto">
26 <input type="hidden" name="blimit"
27 value="[% blimit | html %]" />
28 [% control_qtype = INCLUDE "opac/parts/course_search/qtype_selector.tt2"
29 id="browse-search-class" browse_only=1 plural=1 %]
31 [% control_bterm = BLOCK %]
32 <input type="text" name="bterm" id="browse-term"
33 aria-label="[% l('Browse term') %]"
34 value="[% CGI.param('bterm') | html %]">
35 [% END; #control_bterm BLOCK %]
37 [% control_locg = INCLUDE build_org_selector id='browse-context'
38 show_log_groups=1 arialabel=l('Select owning Library') %]
40 [% l('Browse for [_1] starting with [_2] in [_3]',
41 control_qtype, control_bterm, control_locg) %]
43 <button id='search-submit-go' type="submit" class="btn btn-confirm my-2"><i class="fas fa-book-reader" aria-hidden="true"></i> [% l('Browse') %]</button>
44 <img id="browse-submit-spinner" class="hidden"
45 style="width: 16px; height: 16px;"
46 alt="[% l('Search in progress icon') %]"
47 src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]" />
51 [% BLOCK browse_pager %]
53 pivot_lower = CGI.param('didx') - blimit;
54 pivot_higher = CGI.param('didx') + blimit;
58 IF CGI.param('didx') <= 0;
64 IF pivot_higher > ctx.browse_results.size;
65 pivot_higher = ctx.browse_results.size - (blimit + 1);
71 [% IF ctx.browse_results.size >= blimit %]
72 <div class="browse-pager">
73 [% IF lower_limit == 0 %]
74 <a class="btn btn-opac" href="[% mkurl('', {didx => pivot_lower}) %]"
75 onclick="$('browse-pager-spinner-[% id %]').className = '';"
76 >← [%l ('Back') %]</a>
78 [% IF upper_limit == 0 %]
79 <a class="btn btn-opac" href="[% mkurl('', {didx => pivot_higher}) %]"
80 onclick="$('browse-pager-spinner-[% id %]').className = '';"
81 >[%l ('Next') %] →</a>
83 <img id="browse-pager-spinner-[% id %]"
84 src="[% ctx.media_prefix %]/opac/images/progressbar_green.gif[% ctx.cache_key %]"
85 class="hidden" style="width: 16px; height: 16px;"
86 alt="[% l('Search in progress icon') %]" />
91 [% PROCESS browse_pager id=0 %]
93 <div id="browse-results">
94 [% IF ctx.browse_error %]
95 <span class="browse-error">
96 [% l("An error occurred browsing records. " _
97 "Please try again in a moment or report the issue " _
98 "to library staff.") %]
101 [% IF ctx.browse_leading_article_warning %]
102 <div class="browse-leading-article-warning">
103 [% l("Your browse term seems to begin with an article (a, an, the). You might get better results by omitting the article.") %]
104 [% IF ctx.browse_leading_article_alternative %]
105 <p>[% alternative_link = BLOCK %]
106 <a href="[% mkurl('', {bterm => ctx.browse_leading_article_alternative}, ['bpivot']) %]">[% ctx.browse_leading_article_alternative | html %]</a>
107 [%- END; # alternative_link BLOCK
108 l("Did you mean [_1]?", alternative_link);
112 [% END # IF browse leading article warning %]
114 <ul class="browse-result-list">
115 [% FOR result IN ctx.browse_results %]
116 [% IF result.browse_index >= CGI.param('didx') &&
117 result.browse_index <= (CGI.param('didx') + blimit - 1) %]
118 <li class="browse-result">
119 <span class="browse-result-value[% result.match == 1 ? ' browse-result-best-match' : '' %]">
120 [% IF result.results_count > 0 %]
121 <a href="[% mkurl(ctx.opac_root _ '/course/results', {
122 'query' => result.value, 'bool' => 'and'}
123 )%]">[% result.value | html %]</a>
124 <span class="browse-result-sources">([%
125 IF result.accurate == 'f';
127 END; #result.accurate IF
128 result.results_count %])</span>
130 [% result.value | html %]
131 [% END; #result.sources IF %]
135 [% END; #result in browse_results %]
137 [% END; #browse error ELSE %]
140 [% PROCESS browse_pager id=1 %]
143 <div class="common-full-pad"></div>