View | Details | Raw Unified | Return to bug 22605
Collapse All | Expand All

(-)a/C4/Search.pm (+1 lines)
Lines 1225-1230 sub getIndexes{ Link Here
1225
                    'lost',
1225
                    'lost',
1226
                    'materials-specified',
1226
                    'materials-specified',
1227
                    'mc-ccode',
1227
                    'mc-ccode',
1228
                    'mc-homebranch',
1228
                    'mc-itype',
1229
                    'mc-itype',
1229
                    'mc-loc',
1230
                    'mc-loc',
1230
                    'notforloan',
1231
                    'notforloan',
(-)a/Koha/SearchEngine/Elasticsearch/QueryBuilder.pm (+1 lines)
Lines 681-686 our %index_field_convert = ( Link Here
681
    'inv' => 'number-local-acquisition',
681
    'inv' => 'number-local-acquisition',
682
    'bc' => 'barcode',
682
    'bc' => 'barcode',
683
    'mc-itype' => 'itype',
683
    'mc-itype' => 'itype',
684
    'mc-homebranch' => 'homebranch',
684
    'aub' => 'author-personal-bibliography',
685
    'aub' => 'author-personal-bibliography',
685
    'auo' => 'author-in-order',
686
    'auo' => 'author-in-order',
686
    'ff8-22' => 'ta',
687
    'ff8-22' => 'ta',
(-)a/catalogue/search.pl (-45 / +48 lines)
Lines 168-175 my $cgi = CGI->new; Link Here
168
# decide which template to use
168
# decide which template to use
169
my $template_name;
169
my $template_name;
170
my $template_type;
170
my $template_type;
171
my @params = $cgi->multi_param("limit");
171
# limits are use to limit to results to a pre-defined category such as branch or language
172
if ((@params>=1) || ($cgi->param("q")) || ($cgi->param('multibranchlimit')) || ($cgi->param('limit-yr')) ) {
172
my @limits = map uri_unescape($_), $cgi->multi_param("limit");
173
my @nolimits = map uri_unescape($_), $cgi->multi_param('nolimit');
174
my %is_nolimit = map { $_ => 1 } @nolimits;
175
@limits = grep { not $is_nolimit{$_} } @limits;
176
if  (
177
        !$cgi->param('edit_search') &&
178
        ( (@limits>=1) || ($cgi->param("q")) || ($cgi->param('multibranchlimit')) || ($cgi->param('limit-yr')) )
179
    ) {
173
    $template_name = 'catalogue/results.tt';
180
    $template_name = 'catalogue/results.tt';
174
    $template_type = 'results';
181
    $template_type = 'results';
175
}
182
}
Lines 245-250 $template->param( searchid => scalar $cgi->param('searchid'), ); Link Here
245
# The following should only be loaded if we're bringing up the advanced search template
252
# The following should only be loaded if we're bringing up the advanced search template
246
if ( $template_type eq 'advsearch' ) {
253
if ( $template_type eq 'advsearch' ) {
247
254
255
    my $expanded = $cgi->param('expanded_options');
256
    if( $cgi->param('edit_search') ){
257
        my @operators = $cgi->multi_param('op');
258
        my @indexes   = $cgi->multi_param('idx');
259
        my %limit_hash;
260
        foreach my $limit (@limits){
261
            if ( $limit eq 'available' ){
262
                $template->param( limit_available => 1 );
263
            } else {
264
                my ($index,$value) = split(':',$limit);
265
                $value =~ s/"//g;
266
                if ( $index =~ /mc-/ ){
267
                    $limit_hash{$index . "_" . $value} = 1;
268
                } else {
269
                    push @{$limit_hash{$index}}, $value;
270
                }
271
            }
272
        };
273
        $expanded = 1 if scalar @operators || scalar @limits;
274
        $template->param( operators => \@operators );
275
        $template->param( limits => \%limit_hash );
276
        $template->param(
277
           indexes   => \@indexes,
278
           sort      => \$cgi->param('sort_by'),
279
        );
280
    }
248
    # load the servers (used for searching -- to do federated searching, etc.)
281
    # load the servers (used for searching -- to do federated searching, etc.)
249
    my $primary_servers_loop;# = displayPrimaryServers();
282
    my $primary_servers_loop;# = displayPrimaryServers();
250
    $template->param(outer_servers_loop =>  $primary_servers_loop,);
283
    $template->param(outer_servers_loop =>  $primary_servers_loop,);
Lines 261-304 if ( $template_type eq 'advsearch' ) { Link Here
261
        $template->param( sort_by => $default_sort_by  );
294
        $template->param( sort_by => $default_sort_by  );
262
    }
295
    }
263
296
264
    # determine what to display next to the search boxes (ie, boolean option
297
    # determine what to display next to the search boxes
265
    # shouldn't appear on the first one, scan indexes should, adding a new
298
    my @queries = $cgi->multi_param('q');
266
    # box should only appear on the last, etc.
299
    while( scalar @queries < 3 ){
267
    my @search_boxes_array;
300
        push @queries, "";
268
    my $search_boxes_count = 3; # begin with 3 boxes
269
    # FIXME: all this junk can be done in TMPL using __first__ and __last__
270
    for (my $i=1;$i<=$search_boxes_count;$i++) {
271
        # if it's the first one, don't display boolean option, but show scan indexes
272
        if ($i==1) {
273
            push @search_boxes_array, {scan_index => 1};
274
        }
275
        # if it's the last one, show the 'add field' box
276
        elsif ($i==$search_boxes_count) {
277
            push @search_boxes_array,
278
                {
279
                boolean => 1,
280
                add_field => 1,
281
                };
282
        }
283
        else {
284
            push @search_boxes_array,
285
                {
286
                boolean => 1,
287
                };
288
        }
289
290
    }
301
    }
291
    $template->param(uc(C4::Context->preference("marcflavour")) => 1,
302
    $template->param(uc(C4::Context->preference("marcflavour")) =>1 );
292
                      search_boxes_loop => \@search_boxes_array);
293
303
294
    # load the language limits (for search)
304
    # load the language limits (for search)
295
    my $languages_limit_loop = getLanguages($lang, 1);
305
    my $languages_limit_loop = getLanguages($lang, 1);
296
    $template->param(search_languages_loop => $languages_limit_loop,);
306
    $template->param(search_languages_loop => $languages_limit_loop,);
307
    $template->param(       queries   => \@queries );
297
308
298
    # Expanded search options in advanced search:
309
    # Expanded search options in advanced search:
299
    # use the global setting by default, but let the user override it
310
    # use the global setting by default, but let the user override it
300
    {
311
    {
301
        my $expanded = $cgi->param('expanded_options');
302
        $expanded = C4::Context->preference("expandedSearchOption") || 0
312
        $expanded = C4::Context->preference("expandedSearchOption") || 0
303
            if !defined($expanded) || $expanded !~ /^0|1$/;
313
            if !defined($expanded) || $expanded !~ /^0|1$/;
304
        $template->param( expanded_options => $expanded );
314
        $template->param( expanded_options => $expanded );
Lines 369-385 if ($operands[0] && !$operands[1]) { Link Here
369
    $template->param(ms_value => $ms_query);
379
    $template->param(ms_value => $ms_query);
370
}
380
}
371
381
372
# limits are use to limit to results to a pre-defined category such as branch or language
373
my @limits = map uri_unescape($_), $cgi->multi_param('limit');
374
my @nolimits = map uri_unescape($_), $cgi->multi_param('nolimit');
375
my %is_nolimit = map { $_ => 1 } @nolimits;
376
@limits = grep { not $is_nolimit{$_} } @limits;
377
378
if($params->{'multibranchlimit'}) {
382
if($params->{'multibranchlimit'}) {
379
    my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
383
    my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
380
    my @libraries = $search_group->all_libraries;
384
    my @libraries = $search_group->all_libraries;
381
    my $multibranch = '('.join( " OR ", map { '(homebranch: ' . $_->branchcode .')' } @libraries ) .')';
385
    push @limits, map { 'mc-homebranch:' . $_->branchcode } @libraries;
382
    push @limits, $multibranch if ($multibranch ne  '()');
383
}
386
}
384
387
385
my $available;
388
my $available;
Lines 395-401 my $limit_yr; Link Here
395
my $limit_yr_value;
398
my $limit_yr_value;
396
if ($params->{'limit-yr'}) {
399
if ($params->{'limit-yr'}) {
397
    if ($params->{'limit-yr'} =~ /\d{4}/) {
400
    if ($params->{'limit-yr'} =~ /\d{4}/) {
398
        $limit_yr = "yr,st-numeric=$params->{'limit-yr'}";
401
        $limit_yr = "yr,st-numeric:$params->{'limit-yr'}";
399
        $limit_yr_value = $params->{'limit-yr'};
402
        $limit_yr_value = $params->{'limit-yr'};
400
    }
403
    }
401
    push @limits,$limit_yr;
404
    push @limits,$limit_yr;
Lines 571-576 for (my $i=0;$i<@servers;$i++) { Link Here
571
        # set up parameters if user wishes to re-run the search
574
        # set up parameters if user wishes to re-run the search
572
        # as a Z39.50 search
575
        # as a Z39.50 search
573
        $template->param (z3950_search_params => C4::Search::z3950_search_args($z3950par || $query_desc));
576
        $template->param (z3950_search_params => C4::Search::z3950_search_args($z3950par || $query_desc));
577
        $template->param(limit_cgi => $limit_cgi);
578
        $template->param(query_cgi => $query_cgi);
579
        $template->param(query_desc => $query_desc);
580
        $template->param(limit_desc => $limit_desc);
581
        $template->param(offset     => $offset);
574
582
575
        if ($hits) {
583
        if ($hits) {
576
            $template->param(total => $hits);
584
            $template->param(total => $hits);
Lines 579-589 for (my $i=0;$i<@servers;$i++) { Link Here
579
                $limit_cgi_not_availablity =~ s/&limit=available//g;
587
                $limit_cgi_not_availablity =~ s/&limit=available//g;
580
                $template->param(limit_cgi_not_availablity => $limit_cgi_not_availablity);
588
                $template->param(limit_cgi_not_availablity => $limit_cgi_not_availablity);
581
            }
589
            }
582
            $template->param(limit_cgi => $limit_cgi);
583
            $template->param(query_cgi => $query_cgi);
584
            $template->param(query_desc => $query_desc);
585
            $template->param(limit_desc => $limit_desc);
586
            $template->param(offset     => $offset);
587
            $template->param(DisplayMultiPlaceHold => $DisplayMultiPlaceHold);
590
            $template->param(DisplayMultiPlaceHold => $DisplayMultiPlaceHold);
588
            if ($query_desc || $limit_desc) {
591
            if ($query_desc || $limit_desc) {
589
                $template->param(searchdesc => 1);
592
                $template->param(searchdesc => 1);
(-)a/etc/zebradb/ccl.properties (+1 lines)
Lines 1011-1016 mc-ccode ccode Link Here
1011
itemnumber 1=8010 4=109
1011
itemnumber 1=8010 4=109
1012
# homebranch 1=8011
1012
# homebranch 1=8011
1013
homebranch 1=homebranch
1013
homebranch 1=homebranch
1014
mc-homebranch homebranch
1014
branch homebranch
1015
branch homebranch
1015
holdingbranch 1=8012
1016
holdingbranch 1=8012
1016
location 1=8013
1017
location 1=8013
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/subtype_limits.inc (+49 lines)
Line 0 Link Here
1
[%- BLOCK subtype_limits_description -%]
2
    [%- SWITCH subtype_limit -%]
3
        [%- CASE  'aud:a' -%]<span>Preschool</span>
4
        [%- CASE  'aud:b' -%]<span>Primary</span>
5
        [%- CASE  'aud:c' -%]<span>Pre-adolescent</span>
6
        [%- CASE  'aud:d' -%]<span>Adolescent</span>
7
        [%- CASE  'aud:e' -%]<span>Adult</span>
8
        [%- CASE  'aud:f' -%]<span>Specialized</span>
9
        [%- CASE  'aud:g' -%]<span>General</span>
10
        [%- CASE  'aud:j' -%]<span>Juvenile</span>
11
        [%- CASE  'fic:1' -%]<span>Fiction</span>
12
        [%- CASE  'fic:0' -%]<span>Non-fiction</span>
13
        [%- CASE  'bio:b' -%]<span>Biography</span>
14
        [%- CASE  'mus:j' -%]<span>Musical recording</span>
15
        [%- CASE  'mus:i' -%]<span>Non-musical recording</span>
16
        [%- CASE  'l-format:ta' -%]<span>Regular print</span>
17
        [%- CASE  'l-format:tb' -%]<span>Large print</span>
18
        [%- CASE  'l-format:tc or l-format:fb' -%]<span>Braille</span>
19
        [%- CASE  '' -%]<span>-----------</span>
20
        [%- CASE  'l-format:sd' -%]<span>CD audio</span>
21
        [%- CASE  'l-format:ss' -%]<span>Cassette recording</span>
22
        [%- CASE  'l-format:vf' -%]<span>VHS tape / Videocassette</span>
23
        [%- CASE  'l-format:vd' -%]<span>DVD video / Videodisc</span>
24
        [%- CASE  'l-format:co' -%]<span>CD software</span>
25
        [%- CASE  'l-format:cr' -%]<span>Website</span>
26
        [%- CASE  'ctype:a' -%]<span>Abstracts / Summaries</span>
27
        [%- CASE  'ctype:b' -%]<span>Bibliographies</span>
28
        [%- CASE  'ctype:c' -%]<span>Catalogs</span>
29
        [%- CASE  'ctype:d' -%]<span>Dictionaries</span>
30
        [%- CASE  'ctype:e' -%]<span>Encyclopedias </span>
31
        [%- CASE  'ctype:f' -%]<span>Handbooks</span>
32
        [%- CASE  'ctype:g' -%]<span>Legal articles</span>
33
        [%- CASE  'ctype:i' -%]<span>Indexes</span>
34
        [%- CASE  'ctype:j' -%]<span>Patent document</span>
35
        [%- CASE  'ctype:k' -%]<span>Discographies</span>
36
        [%- CASE  'ctype:l' -%]<span>Legislation</span>
37
        [%- CASE  'ctype:m' -%]<span>Theses</span>
38
        [%- CASE  'ctype:n' -%]<span>Surveys</span>
39
        [%- CASE  'ctype:o' -%]<span>Reviews</span>
40
        [%- CASE  'ctype:p' -%]<span>Programmed texts</span>
41
        [%- CASE  'ctype:q' -%]<span>Filmographies</span>
42
        [%- CASE  'ctype:r' -%]<span>Directories</span>
43
        [%- CASE  'ctype:s' -%]<span>Statistics</span>
44
        [%- CASE  'ctype:t' -%]<span>Technical reports</span>
45
        [%- CASE  'ctype:v' -%]<span>Legal cases and case notes</span>
46
        [%- CASE  'ctype:w' -%]<span>Law reports and digests</span>
47
        [%- CASE  'ctype:z' -%]<span>Treaties </span>
48
    [%- END -%]
49
[%- END -%]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/advsearch.tt (-32 / +167 lines)
Lines 2-7 Link Here
2
[% USE Koha %]
2
[% USE Koha %]
3
[% USE Asset %]
3
[% USE Asset %]
4
[% USE Branches %]
4
[% USE Branches %]
5
[% USE Languages %]
5
[% SET footerjs = 1 %]
6
[% SET footerjs = 1 %]
6
[% INCLUDE 'doc-head-open.inc' %]
7
[% INCLUDE 'doc-head-open.inc' %]
7
<title>Koha &rsaquo; Catalog &rsaquo; Advanced search</title>
8
<title>Koha &rsaquo; Catalog &rsaquo; Advanced search</title>
Lines 93-124 Link Here
93
<!-- BOOLEAN SEARCH OPTIONS -->
94
<!-- BOOLEAN SEARCH OPTIONS -->
94
    <fieldset id="searchterms">
95
    <fieldset id="searchterms">
95
    <legend>Search for </legend>
96
    <legend>Search for </legend>
96
    [% FOREACH search_box IN search_boxes_loop %]
97
    [% FOREACH query IN queries %]
97
        [% IF ( search_boxes_label ) %]
98
        [% IF ( expanded_options ) %]
98
        <div class="search-term-row" style="text-indent: 4.5em;">
99
            [% IF ( loop.first ) %]
99
        [% ELSE %]
100
            <div class="search-term-row" style="text-indent: 4.5em;">
100
        <div class="search-term-row">
101
            [% ELSE %]
101
        [% END %]
102
            <div class="search-term-row">
102
			[% IF ( expanded_options ) %]
103
                    [% SET opindex = loop.index - 1 %]
103
            [% IF ( search_box.boolean ) %]
104
                <select name="op">
104
                <select name="op">
105
                    <option value="and" selected="selected">and</option>
105
                    [% IF operators.$opindex == 'or' %]
106
                    <option value="or">or</option>
106
                        <option value="and">and</option>
107
                    <option value="not">not</option>
107
                        <option value="or" selected="selected">or</option>
108
                        <option value="not">not</option>
109
                    [% ELSIF operators.$opindex == 'not' %]
110
                        <option value="and">and</option>
111
                        <option value="or">or</option>
112
                        <option value="not" selected="selected">not</option>
113
                    [% ELSE %]
114
                        <option value="and" selected="selected">and</option>
115
                        <option value="or">or</option>
116
                        <option value="not">not</option>
117
                    [% END %]
108
                </select>
118
                </select>
109
            [% END %] 
119
            [% END %]
110
			[% END %]
120
        [% ELSE %]
111
			[% INCLUDE 'search_indexes.inc' %]
121
            <div>
112
			<input type="text" size="30" name="q" title="Enter search terms" value="" />
122
        [% END %]
113
            [% IF ( expanded_options ) %]
123
        [% SET preselect = 'ms_' _ indexes.${loop.index}.replace(',','comma') %]
114
                [% IF ( search_box.add_field ) %]
124
        [% INCLUDE 'search_indexes.inc' $preselect=1 %]
115
                    <a href="JavaScript:add_field();" id="ButtonPlus" title="Add another field">[+]</a>
125
                <input type="text" size="30" name="q" title="Enter search terms" value="[% query | html %]" />
116
				[% END %]
126
        [% IF ( expanded_options ) %]
117
              [% IF ( search_box.scan_index ) %]
127
            [% IF ( loop.last ) %]
128
                <a href="JavaScript:add_field();" id="ButtonPlus" title="Add another field">[+]</a>
129
            [% END %]
130
            [% IF ( loop.first ) %]
118
                <label for="scan">Scan indexes:</label> <input type="checkbox" name="scan" id="scan" value="1" />
131
                <label for="scan">Scan indexes:</label> <input type="checkbox" name="scan" id="scan" value="1" />
119
              [% END %]
120
            [% END %]
132
            [% END %]
121
		</div>
133
        [% END %]
134
            </div>
122
    [% END %]
135
    [% END %]
123
    [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %]
136
    [% IF Koha.Preference('SearchEngine') == 'Elasticsearch' %]
124
        [% IF ( expanded_options ) %]
137
        [% IF ( expanded_options ) %]
Lines 129-135 Link Here
129
                <span id="weight_search">
142
                <span id="weight_search">
130
                    <label><input type="checkbox" name="weight_search" checked="checked" /> Apply field weights to search</label>
143
                    <label><input type="checkbox" name="weight_search" checked="checked" /> Apply field weights to search</label>
131
                </span>
144
                </span>
132
            <p>
145
133
        [% ELSE %]
146
        [% ELSE %]
134
            <input type="hidden" name="weight_search" value="1" />
147
            <input type="hidden" name="weight_search" value="1" />
135
        [% END %]
148
        [% END %]
Lines 159-167 Link Here
159
    <table>
172
    <table>
160
        <tr>
173
        <tr>
161
    [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
174
    [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
162
        <td><input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]" name="limit" value="mc-[% itemtypeloo.ccl | html %]:[% itemtypeloo.code | html %]"/><label for="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]">[% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %][% IF ( itemtypeloo.imageurl ) %]<img src="[% itemtypeloo.imageurl | html %]" alt="[% itemtypeloo.description | html %]" />[% END %]&nbsp;[% END %]
175
        <td>
163
        [% itemtypeloo.description | html %]</label></td>
176
            [% SET limit_key = 'mc-' _ itemtypeloo.ccl _ "_" _ itemtypeloo.code %]
164
        [% IF ( loop.last ) %]</tr>[% ELSE %][% UNLESS ( loop.count % 5 ) %]</tr><tr>[% END %][% END %]
177
            [% IF limits.$limit_key.defined %]
178
                [% limits.delete( limit_key ) %]
179
                <input type="checkbox" checked="checked" id="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]" name="limit" value="mc-[% itemtypeloo.ccl | html %]:[% itemtypeloo.code | html %]"/>
180
            [% ELSE %]
181
                <input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]" name="limit" value="mc-[% itemtypeloo.ccl | html %]:[% itemtypeloo.code | html %]"/>
182
            [% END %]
183
            <label for="[% itemtypeloo.ccl FILTER remove(',') | html %]-[% itemtypeloo.number | html %]">
184
        [% UNLESS ( Koha.Preference('OpacNoItemTypeImages') ) %]
185
            [% IF ( itemtypeloo.imageurl ) %]
186
                <img src="[% itemtypeloo.imageurl | html %]" alt="[% itemtypeloo.description | html %]" />
187
            [% END %]
188
                &nbsp;
189
        [% END %]
190
        [% itemtypeloo.description | html %]
191
            </label>
192
        </td>
193
        [% IF ( loop.last ) %]
194
        </tr>
195
        [% ELSE %]
196
            [% UNLESS ( loop.count % 5 ) %]
197
        </tr>
198
        <tr>
199
            [% END %]
200
        [% END %]
165
    [% END %]
201
    [% END %]
166
    </table>
202
    </table>
167
    </div>
203
    </div>
Lines 174-185 Link Here
174
<fieldset id="pubrange">
210
<fieldset id="pubrange">
175
<!-- PUB / COPY YEAR LIMIT --><!-- FIXME: add publication,copyright,acquisition options -->
211
<!-- PUB / COPY YEAR LIMIT --><!-- FIXME: add publication,copyright,acquisition options -->
176
	<p><label for="limit-yr">Year: </label>
212
	<p><label for="limit-yr">Year: </label>
177
		<input type="text" size="15" name="limit-yr" id="limit-yr" value=""/>&nbsp;&nbsp;(format: yyyy-yyyy)</p>
213
        [% SET year_limit_key = 'yr,st-numeric' %]
214
        <input type="text" size="15" name="limit-yr" id="limit-yr" value="[% limits.$year_limit_key.0 | html %]"/>&nbsp;&nbsp;(format: yyyy-yyyy)</p>
215
        [% IF limits.$year_limit_key.defined %]
216
            [% limits.delete($year_limit_key) %]
217
        [% END %]
178
<!-- /PUB / COPY YEAR LIMIT -->
218
<!-- /PUB / COPY YEAR LIMIT -->
179
</fieldset>
219
</fieldset>
180
<fieldset id="language">
220
<fieldset id="language">
181
<!-- LANGUAGE LIMIT -->
221
<!-- LANGUAGE LIMIT -->
182
    <p>
222
    <p>
223
        <fieldset id="current_language_limits"><legend>Current language limits</legend>
224
        [% FOREACH langtype IN ['ln,rtrn','language-original,rtrn'] %]
225
            [% FOREACH limit IN limits.$langtype %]
226
                <span>
227
                    <input name="limit" value="[% langtype | html %]:[% limit | html %]" type="hidden">
228
                    <label for="language_limit_[% loop.index() | html %]">
229
                        [% IF langtype == 'ln,rtrn' %]Language: [% ELSE %]Original language: [% END %]
230
                        [% Languages.GetByISOCode( lang, limit ) | html %]
231
                    </label>
232
                    <input type="checkbox" class="toggle_limit" name="language_limit_[% loop.index() | html %]" checked="checked">
233
                </span>
234
            [% END %]
235
            [% limits.delete( langtype ) %]
236
        [% END %]
237
        </fieldset>
238
183
        <label for="language-limit">Language: </label>
239
        <label for="language-limit">Language: </label>
184
        [% PROCESS language_limit_select ln_loop=search_languages_loop ln_id='language-limit' ln_index='ln' %]
240
        [% PROCESS language_limit_select ln_loop=search_languages_loop ln_id='language-limit' ln_index='ln' %]
185
        <label for="language-original-limit">Language of original: </label>
241
        <label for="language-original-limit">Language of original: </label>
Lines 195-203 Link Here
195
[% IF ( UNIMARC ) %]
251
[% IF ( UNIMARC ) %]
196
[% INCLUDE 'subtypes_unimarc.inc' %]
252
[% INCLUDE 'subtypes_unimarc.inc' %]
197
[% ELSE %]
253
[% ELSE %]
254
[% PROCESS 'subtype_limits.inc' %]
198
<!-- SUBTYPE LIMITS -->
255
<!-- SUBTYPE LIMITS -->
199
        <fieldset id="subtype">
256
        <fieldset id="subtype">
200
        <legend>Subtype limits</legend><p>
257
        <legend>Subtype limits</legend><p>
258
259
        <fieldset id="current_subtype_limits"><legend>Current subtype limits</legend>
260
        [% FOREACH subtype IN ['aud','fic','bio','ctype','l-format'] %]
261
            [% FOREACH limit IN limits.$subtype %]
262
                <span>
263
                    <input name="limit" value="[% subtype | html %]:[% limit | html %]" type="hidden">
264
                    <label for="subtype_limit_[% loop.index() | html %]">[% PROCESS subtype_limits_description subtype_limit = subtype _':' _ limit %]</label>
265
                    <input type="checkbox" class="toggle_limit" name="subtype_limit_[% loop.index() | html %]" checked="checked">
266
                </span>
267
            [% END %]
268
            [% limits.delete( subtype ) %]
269
        [% END %]
270
        </fieldset>
271
201
        
272
        
202
        <select name="limit" class="subtype">
273
        <select name="limit" class="subtype">
203
            <option value="" selected="selected" class="menuheader">Any audience</option>
274
            <option value="" selected="selected" class="menuheader">Any audience</option>
Lines 264-285 Link Here
264
335
265
</fieldset>
336
</fieldset>
266
[% END %]
337
[% END %]
267
268
<!-- AVAILABILITY LIMITS -->
338
<!-- AVAILABILITY LIMITS -->
269
    <fieldset id="availability"><legend>Location and availability</legend>
339
    <fieldset id="availability"><legend>Location and availability</legend>
270
<fieldset id="currently-avail">
340
<fieldset id="currently-avail">
271
        <p><label for="available-items">Only items currently available:</label> <input type="checkbox" id="available-items" name="limit" value="available" /></p>
341
        [% IF limit_available %]
342
            <p><label for="available-items">Only items currently available:</label> <input type="checkbox" id="available-items" name="limit" value="available"  checked="checked" /></p>
343
        [% ELSE %]
344
            <p><label for="available-items">Only items currently available:</label> <input type="checkbox" id="available-items" name="limit" value="available" /></p>
345
        [% END %]
272
</fieldset>
346
</fieldset>
273
347
274
<fieldset id="select-libs">
348
<fieldset id="select-libs">
349
    <fieldset id="individual_branches">
350
        <legend>Individual branches</legend>
351
        <p>If multiple branches are provided, only records with items from all of those branches will be returned</p>
352
        [% FOREACH branch IN limits.branch %]
353
        <span>
354
            <input name="limit" value="branch:[% branch | html %]" type="hidden">
355
            <label for="branch_[% loop.index() | html %]">[% Branches.GetName(branch) | html %]</label>
356
            <input type="checkbox" class="toggle_limit" name="branch_[% loop.index() | html %]" checked="checked">
357
        </span>
358
        [% END %]
359
        [% limits.delete('branch') %]
275
        <p><label for="branchloop">Individual libraries:</label><select name="limit" id="branchloop">
360
        <p><label for="branchloop">Individual libraries:</label><select name="limit" id="branchloop">
276
        <option value="">All libraries</option>
361
        <option value="">All libraries</option>
277
        [%# FIXME Should not we filter the libraries displayed? %]
362
        [%# FIXME Should not we filter the libraries displayed? %]
278
        [% PROCESS options_for_libraries prefix => "branch:" libraries => Branches.all( selected => selected_branchcode, unfiltered => 1 ) %]
363
        [% PROCESS options_for_libraries prefix => "branch:" libraries => Branches.all({ unfiltered => 1, selected ="" }) %]
279
        </select></p>
364
        </select></p>
365
    </fieldset>
366
    <p>OR</p>
367
    <fieldset id="multi_branches">
368
        <legend>Multiple branches</legend>
369
        <p>If multiple branches are selected here records with items in any of these branches will be returned. Selecting a group when some libraries are already selected will add the group libraries to the list</p>
370
        <p>Selecting a group will disable the option to select individual libraries</p>
280
    <!-- <input type="hidden" name="limit" value="branch: MAIN" /> -->
371
    <!-- <input type="hidden" name="limit" value="branch: MAIN" /> -->
281
        [% IF search_groups %]
372
        [% IF search_groups %]
282
            <p>OR</p> <!-- should addjs to grey out group pulldown if a library is selected. -->
373
            [% FOREACH key IN limits.keys %]
374
                [% IF ( multibranch = key.match('^mc-homebranch_(.*)') ) %]
375
                    <span>
376
                        <input type="hidden" name="limit" value="mc-homebranch:[% multibranch.0 | html %]">
377
                        <label for="multibranch_[% loop.index() | html %]">[% Branches.GetName(multibranch) | html %]</label>
378
                        <input type="checkbox" class="toggle_limit" name="multibranch_[% loop.index() | html %]" checked="checked">
379
                    </span>
380
                    [% limits.delete(key) %]
381
                [% END %]
382
            [% END %]
283
383
284
            <p>
384
            <p>
285
                <label for="categoryloop">Groups of libraries: </label>
385
                <label for="categoryloop">Groups of libraries: </label>
Lines 292-307 Link Here
292
                    [% END %]
392
                    [% END %]
293
                </select>
393
                </select>
294
            </p>
394
            </p>
395
    </fieldset>
295
    [% END %]
396
    [% END %]
296
</fieldset>
397
</fieldset>
297
    </fieldset>
398
    </fieldset>
298
<!-- /AVAILABILITY LIMITS -->
399
<!-- /AVAILABILITY LIMITS -->
299
400
401
<!-- OTHER LIMITS (facets, etc.) -->
402
[% IF limits.size %]
403
<fieldset id=""><legend>Other limits</legend>
404
    <p>
405
    [% FOREACH key IN limits.keys %]
406
        [% FOREACH limit IN limits.$key %]
407
            <span>
408
                <input type="hidden" name="limit" value="[% key | html %]:[% limit | html %]">
409
                <label for="other_[% key _ loop.index() | html %]">[% key | html %]:[% limit | html %]</label>
410
                <input type="checkbox" class="toggle_limit" name="other_[% key _ loop.index() | html %]" checked="checked">
411
            </span>
412
        [% END %]
413
    [% END %]
414
    </p>
415
</fieldset>
416
[% END %]
417
<!-- /OTHER LIMITS (facets, etc.) -->
418
300
<!-- RANK LIMITS -->
419
<!-- RANK LIMITS -->
301
<fieldset id="sortby"><legend>Sorting</legend>
420
<fieldset id="sortby"><legend>Sorting</legend>
302
    <p>
421
    <p>
303
    <label for="sort_by">Sort by: </label><select id="sort_by" name="sort_by">
422
    <label for="sort_by">Sort by: </label><select id="sort_by" name="sort_by">
304
  [% INCLUDE 'resort_form.inc' %]
423
  [% INCLUDE 'resort_form.inc' sort_by = sort %]
305
    </select>
424
    </select>
306
        </p>
425
        </p>
307
</fieldset>
426
</fieldset>
Lines 342-347 Link Here
342
                    document.getElementById("categoryloop").disabled=false;
461
                    document.getElementById("categoryloop").disabled=false;
343
                }
462
                }
344
            });
463
            });
464
            $(".toggle_limit").on('click',function(){
465
                $(this).siblings("[type='hidden']").prop('disabled', !this.checked);
466
            });
467
            $("#categoryloop").on('change',function(){
468
                if( $(this).val() != "" ){
469
                    $("#individual_branches select,#individual_branches input").prop('disabled',true);
470
                } else {
471
                    $("#individual_branches select,#individual_branches input").prop('disabled',false);
472
                }
473
            });
474
            if( $("#current_language_limits input").length == 0 ){
475
                $("#current_language_limits").hide();
476
            }
477
            if( $("#current_subtype_limits input").length == 0 ){
478
                $("#current_subtype_limits").hide();
479
            }
345
480
346
            [% IF searchid %]
481
            [% IF searchid %]
347
                browser = KOHA.browser('[% searchid | html %]');
482
                browser = KOHA.browser('[% searchid | html %]');
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt (-1 / +2 lines)
Lines 65-70 Link Here
65
                    <h3>
65
                    <h3>
66
                        [% total | html %] result(s) found [% IF ( query_desc ) %]for <span class="results_query_desc">'[% query_desc | html %]'</span>[% END %][% IF limit_desc  %]&nbsp;with limit(s): <span class="results_limit_desc">'[% limit_desc | html %]'</span>[% END %][% IF ( LibraryName ) %] in [% LibraryName | html %] Catalog[% END %].
66
                        [% total | html %] result(s) found [% IF ( query_desc ) %]for <span class="results_query_desc">'[% query_desc | html %]'</span>[% END %][% IF limit_desc  %]&nbsp;with limit(s): <span class="results_limit_desc">'[% limit_desc | html %]'</span>[% END %][% IF ( LibraryName ) %] in [% LibraryName | html %] Catalog[% END %].
67
                    </h3>
67
                    </h3>
68
                    <a href="/cgi-bin/koha/catalogue/search.pl?advsearch=1&edit_search=1&[% query_cgi | uri %]&[% limit_cgi | uri %]&[% sort_cgi | uri %]">Edit this search</a>
68
69
69
                    <div id="searchheader">
70
                    <div id="searchheader">
70
                        <div id="selection_ops">
71
                        <div id="selection_ops">
Lines 315-320 Link Here
315
                            <p>
316
                            <p>
316
                                No results match your search [% IF ( query_desc ) %]for <span style="font-weight: bold;">'[% query_desc | html %]'</span>[% END %][% IF ( limit_desc ) %]&nbsp;with limit(s): <span style="font-weight: bold;">'[% limit_desc | html %]'</span>[% END %][% IF ( LibraryName ) %] in [% LibraryName | html %] Catalog[% END %].
317
                                No results match your search [% IF ( query_desc ) %]for <span style="font-weight: bold;">'[% query_desc | html %]'</span>[% END %][% IF ( limit_desc ) %]&nbsp;with limit(s): <span style="font-weight: bold;">'[% limit_desc | html %]'</span>[% END %][% IF ( LibraryName ) %] in [% LibraryName | html %] Catalog[% END %].
317
                            </p>
318
                            </p>
319
                            <a href="/cgi-bin/koha/catalogue/search.pl?advsearch=1&edit_search=1&[% query_cgi | uri %]&[% limit_cgi | uri %]&[% sort_cgi | uri %]">Edit this search</a>
318
                        [% ELSE %]
320
                        [% ELSE %]
319
                            <p>You did not specify any search criteria.</p>
321
                            <p>You did not specify any search criteria.</p>
320
                        [% END %]
322
                        [% END %]
321
- 

Return to bug 22605