]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/templates/opac/browse.tt2
Bib record browser with 'see also', etc from linked authority headings
[working/Evergreen.git] / Open-ILS / src / templates / opac / browse.tt2
1 [%- # This is the bib and authority combined record browser.
2
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";
8
9     ctx.page_title = l("Browse the Catalog");
10     blimit = CGI.param('blimit') || 10;
11     boffset = CGI.param('boffset') || 0;
12
13     depart_list = ['blimit', 'bterm', 'boffset', 'bpivot', 'bback'];
14 %]
15
16     <div id="search-wrapper">
17         [%# XXX TODO Give searchbar.tt2 more smarts so we can just do:
18           # INCLUDE "opac/parts/searchbar.tt2" %]
19         <div id="search-box">
20             <span class="search_catalog_lbl"><a href="[% mkurl(ctx.opac_root _ '/home', {}, depart_list) %]">[% l('Search the Catalog') %]</a></span>
21             <span><a href="[% mkurl(ctx.opac_root _ '/advanced', {}, depart_list) %]"
22                     id="home_adv_search_link">[%l('Advanced Search')%]</a></span>
23             <span>[% l('Browse the Catalog') %]</span>
24         </div>
25     </div>
26     <div id="content-wrapper">
27         <div id="main-content">
28             <div id="browse-the-catalog">
29                 <div id="browse-controls">
30                     <form method="get">
31                         <input type="hidden" name="blimit"
32                             value="[% blimit %]" />
33
34                         [% control_qtype = INCLUDE "opac/parts/qtype_selector.tt2"
35                             id="browse-search-class" browse_only=1 %]
36
37                         [% control_bterm = BLOCK %]<input type="text" name="bterm" id="browse-term"
38                             value="[% CGI.param('bterm') | html %]" />[% END %]
39                         [% control_locg = INCLUDE build_org_selector id='browse-context'
40                             show_loc_groups=1
41                             arialabel=l('Select holding library') %]
42                         [% l('Browse by [_1] for [_2] held under [_3]', control_qtype, control_bterm, control_locg) %]
43
44                         <input type="submit" value="[% l('Go') %]" />
45                     </form>
46                 </div>
47
48                 [% BLOCK browse_pager %]
49                 <div class="browse-pager">
50                     [% IF ctx.more_back %]
51                     <a class="opac-button" href="[% mkurl('', {bpivot => ctx.back_pivot, bback => 1}) %]">&larr; [%l ('Back') %]</a>
52                     [% END %]
53                     [% IF browse.english_pager; # XXX how to apply i18n here?
54                         current_qtype = CGI.param('qtype') || 'title' %]
55                     <span class="browse-shortcuts">
56                         <a href="[% mkurl('', {qtype => current_qtype, bterm => '0'}, ['boffset','bpivot','bback']) %]">0-9</a>
57                         [% FOR letter IN ['A'..'Z'] %]
58                             <a href="[% mkurl('', {qtype => current_qtype, bterm => letter}, ['boffset','bpivot','bback']) %]">[% letter %]</a>
59                         [% END %]
60                     </span>
61                     [% END %]
62
63                     [% IF ctx.more_forward %]
64                     <a class="opac-button" href="[% mkurl('', {bpivot => ctx.forward_pivot}, ['bback']) %]">[%l ('Forward') %] &rarr;</a>
65                     [% END %]
66                 </div>
67                 [% END %]
68
69                 [% PROCESS browse_pager %]
70
71                 <div id="browse-results">
72                 [% IF ctx.browse_error %]
73                     <span class="browse-error">
74                         [% l("An error occurred browsing records. " _
75                         "Please try again in a moment or report the issue " _
76                         "to library staff.") %]
77                     </span>
78                 [% ELSE %]
79                     [% IF ctx.browse_leading_article_warning %]
80                     <div class="browse-leading-article-warning">
81                             [% l("Your browse term seems to begin with an article. You might get better results by omitting the article.") %]
82                     </div>
83                     [% END %]
84                     <ul class="browse-result-list">
85                     [% FOR result IN ctx.browse_results %]
86                         <li class="browse-result">
87                             <span class="browse-result-value">
88                                 <a href="[% mkurl(
89                                     ctx.opac_root _ '/results', {
90                                         'fi:has_browse_entry' => (result.browse_entry _ ',' _ result.fields)
91                                     }) %]">[% result.value | html %]</a>
92                             </span>
93                             <span class="browse-result-sources">([%
94                                 IF result.accurate == 'f';
95                                     l("At least"); " ";
96                                 END;
97                                 result.sources %])</span>
98                             [% IF result.authorities.size %]
99                             <ul class="browse-result-authority-headings">
100                                 [% FOR a IN result.authorities;
101                                     PROCESS authority_notes authority=a;
102
103                                     # Other than displaying public general
104                                     # notes, we can go no further sans
105                                     # control_set.
106                                     NEXT UNLESS a.control_set;
107
108                                     # get_authority_fields is fast and cache-y.
109                                     acs = ctx.get_authority_fields(a.control_set);
110                                     FOR field_group IN a.headings;
111                                         field_id = field_group.keys.0;
112                                         field = acs.$field_id;
113                                         headings = field_group.values.0;
114                                         FOR h IN headings;
115                                             # We could display headings without
116                                             # links here when h.target is
117                                             # undef, if we wanted to, but note
118                                             # that h.target_count is only
119                                             # defined when h.target is.
120
121                                             IF h.target %]
122                                             <li><span class="browse-result-authority-field-name">[% field.name %]</span>
123                                             <a href="[% mkurl(ctx.opac_root _ '/results', {query => 'identifier|authority_id[' _ h.target _ ']'}) %]">[% h.heading | html %]</a>
124                                             <span class="browse-result-authority-bib-links">([% h.target_count %])</span>
125                                             </li>
126                                             [% END %]
127                                         [% END %]
128                                     [% END %]
129                                 [% END %]
130                             </ul>
131                             [% END %]
132                         </li>
133                     [% END %]
134                     </ul>
135                 [% END %]
136                 </div>
137
138                 [% PROCESS browse_pager %]
139             </div>
140
141             <div class="common-full-pad"></div> 
142         </div>
143     </div>
144
145     [% BLOCK authority_notes;
146         # Displays public general notes (sometimes called "scope notes" ?)
147         FOR note IN authority.notes %]
148             <div class="browse-public-general-note">
149                 <span class="browse-public-general-note-label">
150                     [% l("Note:") %]
151                 </span>
152                 <span class="browse-public-general-note-body">
153             [% FOR piece IN note;
154                 IF piece.heading;
155                     mkurl_args = {bterm => piece.bterm};
156                     IF piece.org_id;
157                         mkurl_args.locg = piece.org_id;
158                     END;
159                 %]
160                 <a href="[% mkurl('', mkurl_args, ['boffset','bpivot','bback']) %]">[% piece.heading | html %]</a>
161                 [% ELSIF piece.institution %]
162                 <span class="browse-public-general-note-institution">
163                     [% piece.institution | html %]
164                 </span>
165                 [% ELSE %]
166                     [% piece | html %]
167                 [% END;
168             END %]
169                 </span>
170             </div>
171         [% END;
172     END;    # end of BLOCK authority_notes %]
173
174 [% END %]