6 [% INCLUDE 'doc-head-open.inc' %]
7 <title>Advanced search › Catalog › Koha</title>
8 [% INCLUDE 'doc-head-close.inc' %]
11 [%- BLOCK language_limit_select -%]
12 <select name="limit" id="[% ln_id | html %]">
13 <option value="">No limit</option>
14 [% FOREACH ln_loo IN ln_loop %]
15 [% IF ( ln_loo.selected or selected == ln_loo.iso639_2_code ) %]
16 <option value="[% ln_index | html %],rtrn:[% ln_loo.iso639_2_code | html %]" selected="selected">
17 [% ln_loo.language_description | html %]
20 <option value="[% ln_index | html %],rtrn:[% ln_loo.iso639_2_code | html %]">
21 [% ln_loo.language_description | html %]
28 <body id="catalog_advsearch" class="catalog">
29 [% WRAPPER 'header.inc' %]
30 [% INCLUDE 'adv-search.inc' %]
33 [% WRAPPER 'sub-header.inc' %]
34 <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
37 <a href="/cgi-bin/koha/mainpage.pl"><i class="fa fa-home"></i></a>
40 <a href="#" aria-current="page">
48 <div class="main container-fluid">
50 <div class="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
52 <form action="search.pl" method="get">
53 <div id="advanced-search">
54 <input type="hidden" name="advsearch" value="1"/>
55 <h1>Advanced search</h1>
57 <a href="/cgi-bin/koha/catalogue/itemsearch.pl">Go to item search</a>
59 <div id="previous_search_link"></div>
63 <!-- SEARCH BUTTONS -->
64 <div id="toolbar" class="btn-toolbar">
65 <fieldset class="action" id="submit1">
66 <div class="btn-group">
67 <button class="btn btn-default" type="submit" accesskey="s"><i class="fa fa-search"></i> Search</button>
69 <div class="btn-group">
70 [% IF ( expanded_options ) %]
71 <a href="/cgi-bin/koha/catalogue/search.pl?expanded_options=0" class="btn btn-link"><i class="fa fa-search-minus"></i> Fewer options</a>
74 <a href="/cgi-bin/koha/catalogue/search.pl?expanded_options=1" class="btn btn-link"><i class="fa fa-search-plus"></i> More options</a>
77 <div class="btn-group">
78 <a href="/cgi-bin/koha/catalogue/search.pl?do=Clear&expanded_options=[% expanded_options | uri %]" class="btn btn-link"><i class="fa fa-trash"></i> Clear fields</a>
80 </fieldset> <!-- /.action -->
81 </div> <!-- /#toolbar -->
82 <!-- /SEARCH BUTTONS -->
84 [% IF ( outer_servers_loop ) %]
87 <legend>Select local databases</legend>
88 [% FOREACH local_servers_loo IN local_servers_loop %]
89 [% IF ( local_servers_loo.checked ) %]
90 <input type="checkbox" id="[% local_servers_loo.id | html %]" name="[% local_servers_loo.name | html %]" checked="checked" value="[% local_servers_loo.value | html %]" />
92 <input type="checkbox" id="[% local_servers_loo.id | html %]" name="[% local_servers_loo.name | html %]" value="[% local_servers_loo.value | html %]" />
94 <label for="[% local_servers_loo.id | html %]">
95 <img width="16" height="16" alt="[% local_servers_loo.id | html %]" src="[% themelang | html %]/img/[% local_servers_loo.icon | html %]" /> [% local_servers_loo.label | html %]
97 [% END # /FOREACH local_servers_loo %]
100 [% END # /IF ( outer_servers_loop ) %]
102 [% IF ( outer_servers_loop ) %]
103 <!-- REMOTE DATABASES -->
104 <fieldset id="databases">
105 <legend>Select remote databases</legend>
106 [% FOREACH outer_servers_loo IN outer_servers_loop %]
107 [% IF ( outer_servers_loo.checked ) %]
108 <input type="checkbox" id="[% outer_servers_loo.id | html %]" name="[% outer_servers_loo.name | html %]" checked="checked" value="[% outer_servers_loo.value | html %]" />
110 <input type="checkbox" id="[% outer_servers_loo.id | html %]" name="[% outer_servers_loo.name | html %]" value="[% outer_servers_loo.value | html %]" />
112 <label for="[% outer_servers_loo.id | html %]">
113 <img alt="[% outer_servers_loo.id | html %]" src="[% themelang | html %]/images/[% outer_servers_loo.icon | html %]" />[% outer_servers_loo.label | html %]
115 [% END # /FOREACH outer_servers_loo %]
116 </fieldset> <!-- /#databases -->
117 <!-- /REMOTE DATABASES -->
120 <!-- BOOLEAN SEARCH OPTIONS -->
121 <fieldset id="searchterms">
122 <legend>Search for </legend>
123 [% FOREACH query IN queries %]
124 [% IF ( expanded_options ) %]
126 <div class="search-term-row" style="text-indent: 4.25em;">
128 <div class="search-term-row">
129 [% SET opindex = loop.index - 1 %]
131 [% IF operators.$opindex == 'OR' %]
132 <option value="AND">and</option>
133 <option value="OR" selected="selected">or</option>
134 <option value="NOT">not</option>
135 [% ELSIF operators.$opindex == 'NOT' %]
136 <option value="AND">and</option>
137 <option value="OR">or</option>
138 <option value="NOT" selected="selected">not</option>
140 <option value="AND" selected="selected">and</option>
141 <option value="OR">or</option>
142 <option value="NOT">not</option>
145 [% END # /IF loop.first %]
148 [% END # /IF ( expanded_options ) %]
150 [% SET preselect = 'ms_' _ indexes.${loop.index}.replace(',','comma') %]
151 [% INCLUDE 'search_indexes.inc' %]
152 <input type="text" size="30" name="q" title="Enter search terms" value="[% query | html %]" />
153 [% IF ( expanded_options ) %]
154 [% IF ( loop.last ) %]
155 <a href="JavaScript:add_field();" id="ButtonPlus" title="Add another field">[+]</a>
157 [% IF ( loop.first ) %]
158 <label for="scan">Scan indexes:</label> <input type="checkbox" name="scan" id="scan" value="1" />
160 [% END # /IF ( expanded_options ) %]
161 </div> <!-- /.search-term-row -->
162 [% END # /FOREACH query IN queries %]
164 [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %]
165 [% IF ( expanded_options ) %]
167 [% IF Koha.Preference('ElasticsearchMARCFormat') == 'ARRAY' %]
168 <label><input type="checkbox" name="whole_record" /> Search entire MARC record</label>
170 <span id="weight_search">
171 <label><input type="checkbox" name="weight_search" checked="checked" /> Apply field weights to search</label>
175 <input type="hidden" name="weight_search" value="1" />
176 [% END # /IF ( expanded_options ) %]
177 [% END #/IF Koha.Preference('SearchEngine') %]
178 </fieldset> <!-- /#searchterms -->
179 <!-- /BOOLEAN SEARCH OPTIONS -->
180 </div> <!-- /#advanced-search -->
182 <!-- MC-TYPE LIMITS -->
183 <div id="advsearches" class="toptabs">
184 <ul class="nav nav-tabs" role="tablist">
185 [% FOREACH advsearchloo IN advancedsearchesloop %]
186 <li role="presentation" id="advsearch-tab-[% advsearchloo.advanced_search_type | html %]">
187 <a href="#advsearch-[% advsearchloo.advanced_search_type | uri %]" aria-controls="advsearch-[% advsearchloo.advanced_search_type | uri %]" role="tab" data-toggle="tab">
188 [% IF ( advsearchloo.advanced_search_type == 'itemtypes' ) %]<span>Item type</span>
189 [% ELSIF ( advsearchloo.advanced_search_type == 'ccode' ) %]<span>Collection</span>
190 [% ELSIF ( advsearchloo.advanced_search_type == 'loc' ) %]<span>Shelving location</span>
191 [% ELSE %]<span>Something else</span>
195 [% END # /FOREACH advsearchloo %]
198 <div class="tab-content">
199 [% FOREACH advsearchloo IN advancedsearchesloop %]
200 <div id="advsearch-[% advsearchloo.advanced_search_type | html %]" role="tabpanel" class="tab-pane advsearch">
201 <h4>Limit to any of the following:</h4>
204 [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
206 [% SET limit_key = 'mc-' _ itemtypeloo.ccl _ "_" _ itemtypeloo.code %]
207 [% IF limits.$limit_key.defined %]
208 [% limits.delete( limit_key ) %]
209 <input type="checkbox" checked="checked" id="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]" name="limit" value="mc-[% itemtypeloo.ccl | html %]:[% itemtypeloo.code | html %]"/>
211 <input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]" name="limit" value="mc-[% itemtypeloo.ccl | html %]:[% itemtypeloo.code | html %]"/>
212 [% END # /IF limits.$limit_key.defined %]
213 <label for="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]">
214 [% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %]
215 [% IF ( itemtypeloo.imageurl ) %]
216 <img src="[% itemtypeloo.imageurl | html %]" alt="[% itemtypeloo.description | html %]" />
220 [% itemtypeloo.description | html %]
223 [% IF ( loop.last ) %]
226 [% UNLESS ( loop.count % 5 ) %]
230 [% END # /IF ( loop.last ) %]
231 [% END # /FOREACH itemtypeloo %]
233 </div> <!-- /#advsearch-[% advsearchloo.advanced_search_type | html %] -->
234 [% END # /FOREACH advsearchloo %]
235 </div> <!-- /.tab-content -->
236 </div> <!-- /#advsearches -->
237 <!-- /MC-TYPE LIMIT -->
239 [% IF ( expanded_options ) %]
240 <!-- BASIC LIMITS -->
241 <fieldset id="basiclimits">
242 <legend>Limits</legend>
243 <fieldset id="pubrange">
244 <!-- PUB / COPY YEAR LIMIT --><!-- FIXME: add publication,copyright,acquisition options -->
246 <label for="limit-yr">Year: </label>
247 [% SET year_limit_key = 'yr,st-numeric' %]
248 <input type="text" size="15" name="limit-yr" id="limit-yr" value="[% limits.$year_limit_key.0 | html %]"/> (format: yyyy-yyyy)
249 [% IF limits.$year_limit_key.defined %]
250 [% limits.delete(year_limit_key) %]
253 <!-- /PUB / COPY YEAR LIMIT -->
254 </fieldset> <!-- /#pubrange -->
256 <fieldset id="language">
257 <!-- LANGUAGE LIMIT -->
259 <label for="language-limit">Language: </label>
260 [% PROCESS language_limit_select ln_loop=search_languages_loop ln_id='language-limit' ln_index='ln' selected = limits.${'ln,rtrn'}.0 %]
261 [% limits.delete( 'ln,rtrn' ) %]
262 <label for="language-original-limit">Language of original: </label>
263 [% PROCESS language_limit_select ln_loop=search_languages_loop ln_id='language-original-limit' ln_index='language-original' selected = limits.${'language-original,rtrn'}.0 %]
264 [% limits.delete( 'language-original,rtrn' ) %]
266 <!-- /LANGUAGE LIMIT -->
267 </fieldset> <!-- /#language -->
268 </fieldset> <!-- /#basiclimits -->
269 <!-- /BASIC LIMITS -->
270 [% END # /IF ( expanded_options ) %]
273 [% INCLUDE 'subtypes_unimarc.inc' %]
275 [% PROCESS 'subtype_limits.inc' %]
276 <!-- SUBTYPE LIMITS -->
277 <fieldset id="subtype">
278 <legend>Subtype limits</legend><p>
279 [% PROCESS subtype_dropdowns %]
280 <fieldset id="current_subtype_limits">
281 <legend>Current subtype limits</legend>
282 [% FOREACH subtype IN ['aud','fic','bio','ctype','l-format'] %]
283 [% FOREACH limit IN limits.$subtype %]
285 <input name="limit" value="[% subtype | html %]:[% limit | html %]" type="hidden">
286 <label for="subtype_limit_[% loop.index() | html %]">[%# PROCESS subtype_limits_description subtype_limit = subtype _':' _ limit #%]</label>
287 <input type="checkbox" class="toggle_limit" name="subtype_limit_[% loop.index() | html %]" checked="checked">
290 [% limits.delete( subtype ) %]
291 [% END # /FOREACH subtype %]
292 </fieldset> <!-- #current_subtype_limits -->
293 </fieldset> <!-- /#subtype -->
294 [% END # /IF ( UNIMARC ) %]
296 <!-- AVAILABILITY LIMITS -->
297 <fieldset id="availability">
298 <legend>Location and availability</legend>
299 <fieldset id="currently-avail">
300 [% IF limit_available %]
301 <p><label for="available-items">Only items currently available:</label> <input type="checkbox" id="available-items" name="limit" value="available" checked="checked" /></p>
303 <p><label for="available-items">Only items currently available:</label> <input type="checkbox" id="available-items" name="limit" value="available" /></p>
305 </fieldset> <!-- /#currently-avail -->
307 <fieldset id="select-libs">
309 <label for="branchloop">Individual libraries:</label>
310 <select name="limit" id="branchloop">
311 <option value="">All libraries</option>
312 [%# FIXME Should not we filter the libraries displayed? %]
313 [% PROCESS options_for_libraries prefix => "branch:" libraries => Branches.all( unfiltered => 1, do_not_select_my_library => 1, selected => limits.branch.0 ) %]
314 [% limits.delete('branch') %]
315 </select> <!-- /#branchloop -->
317 [% IF search_groups %]
320 <label for="categoryloop">Groups of libraries: </label>
321 <select name="limit" id="categoryloop">
322 <option value=""> -- none -- </option>
323 [% FOREACH sg IN search_groups %]
324 [% UNLESS sg.branchcode %]
325 [% IF limits.multibranchlimit.0 == sg.id %]
326 <option selected="selected" value="multibranchlimit:[% sg.id | html %]">[% sg.title | html %]</option>
328 <option value="multibranchlimit:[% sg.id | html %]">[% sg.title | html %]</option>
332 [% limits.delete('multibranchlimit') %]
333 </select> <!-- /#categoryloop -->
335 [% END # /search_groups %]
336 </fieldset> <!-- /#select-libs -->
337 </fieldset> <!-- /#availability -->
338 <!-- /AVAILABILITY LIMITS -->
340 <!-- OTHER LIMITS (facets, etc.) -->
343 <legend>Other limits</legend>
345 [% FOREACH key IN limits.keys %]
346 [% FOREACH limit IN limits.$key %]
348 <input type="hidden" name="limit" value="[% key | html %]:[% limit | html %]">
349 <label for="other_[% key _ loop.index() | html %]">[% key | html %]:[% limit | html %]</label>
350 <input type="checkbox" class="toggle_limit" name="other_[% key _ loop.index() | html %]" checked="checked">
356 [% END # /IF limits.size %]
357 <!-- /OTHER LIMITS (facets, etc.) -->
360 <fieldset id="sortby">
361 <legend>Sorting</legend>
363 <label for="sort_by">Sort by: </label>
364 <select id="sort_by" name="sort_by">
365 [% INCLUDE 'resort_form.inc' sort_by = sort %]
368 </fieldset> <!-- /#sortby -->
369 <!-- /RANK LIMITS -->
374 [% MACRO jsinclude BLOCK %]
375 [% Asset.js("lib/hc-sticky.js") | $raw %]
376 [% Asset.js("js/browser.js") | $raw %]
379 * Function add_field();
380 * This function allows to display a new field to search.
382 function add_field() {
383 var ButtonPlus = document.getElementById("ButtonPlus");
384 var line = ButtonPlus.parentNode;
385 var dad = line.parentNode;
386 dad.appendChild(line.cloneNode(true));
387 line.removeChild(ButtonPlus);
391 $(document).ready(function() {
392 $("input[name=q]:eq(0)").focus();
393 if( $(".tab-pane.active").length < 1 ){
394 $("#advsearches a:first").tab("show");
396 Sticky = $("#toolbar");
399 stickyClass: "floating"
401 [% IF search_groups %]
402 function branch_limit() {
403 if( $("#branchloop").val() != "" ){
404 $("#categoryloop").val("").prop('disabled',true);
406 $("#categoryloop").prop('disabled',false);
408 if ( $("#categoryloop").val() != "" ){
409 $("#branchloop").val("").prop('disabled',true);
411 $("#branchloop").prop('disabled',false);
415 $("#branchloop,#categoryloop").on("change",function(){
420 if( $("#current_subtype_limits input").length == 0 ){
421 $("#current_subtype_limits").hide();
423 $(".toggle_limit").on('click',function(){
424 $(this).siblings("[type='hidden']").prop('disabled', !this.checked);
428 browser = KOHA.browser('[% searchid | html %]');
429 browser.show_back_link();
436 [% INCLUDE 'intranet-bottom.inc' %]