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

(-)a/C4/Koha.pm (+50 lines)
Lines 42-47 BEGIN { Link Here
42
		&subfield_is_koha_internal_p
42
		&subfield_is_koha_internal_p
43
		&GetPrinters &GetPrinter
43
		&GetPrinters &GetPrinter
44
		&GetItemTypes &getitemtypeinfo
44
		&GetItemTypes &getitemtypeinfo
45
		&GetItemTypesCategorized &GetItemTypesByCategory 
45
		&GetSupportName &GetSupportList
46
		&GetSupportName &GetSupportList
46
		&get_itemtypeinfos_of
47
		&get_itemtypeinfos_of
47
		&getframeworks &getframeworkinfo
48
		&getframeworks &getframeworkinfo
Lines 270-275 sub GetItemTypes { Link Here
270
    }
271
    }
271
}
272
}
272
273
274
=head2 GetItemTypesCategorized
275
276
Returns item types but grouped by category if available.
277
The categories must be part of Authorized Values (DOCTYPECAT)
278
279
=cut
280
281
sub GetItemTypesCategorized {
282
    my $dbh   = C4::Context->dbh;
283
    my $query = qq|
284
        SELECT itemtype, description, imageurl, hideinopac, 0 as 'iscat' FROM itemtypes WHERE ISNULL(searchcategory) or length(searchcategory) = 0
285
        UNION
286
        SELECT DISTINCT searchcategory AS `itemtype`, authorised_values.lib_opac AS description, authorised_values.imageurl AS imageurl, hideinopac, 1 as 'iscat'
287
            FROM itemtypes
288
	    LEFT JOIN authorised_values ON searchcategory = authorised_value WHERE searchcategory > ''
289
        |;
290
    my $sth = $dbh->prepare($query);
291
    $sth->execute;
292
293
    my %itemtypes;
294
    while ( my $IT = $sth->fetchrow_hashref ) {
295
        $itemtypes{ $IT->{'itemtype'} } = $IT;
296
    }
297
298
    return ( \%itemtypes );
299
}
300
301
=head2 GetItemTypesByCategory
302
303
    $category = category filter
304
305
Returns the itemtypes that are grouped into the category.
306
307
=cut
308
309
sub GetItemTypesByCategory {
310
    my ($category) = @_;
311
    my $count = 0;
312
    my @results;
313
    my $dbh = C4::Context->dbh;
314
    my $sth = $dbh->prepare("SELECT itemtype FROM itemtypes WHERE searchcategory=?");
315
    $sth->execute($category);
316
317
    while ( my $data = $sth->fetchrow ) {
318
        push ( @results, $data );
319
    }
320
    return @results;
321
}
322
273
sub get_itemtypeinfos_of {
323
sub get_itemtypeinfos_of {
274
    my @itemtypes = @_;
324
    my @itemtypes = @_;
275
325
(-)a/admin/authorised_values.pl (-1 / +1 lines)
Lines 247-253 sub default_form { Link Here
247
    }
247
    }
248
248
249
    # push koha system categories
249
    # push koha system categories
250
    foreach (qw(Asort1 Asort2 Bsort1 Bsort2 SUGGEST DAMAGED LOST REPORT_GROUP REPORT_SUBGROUP DEPARTMENT TERM SUGGEST_STATUS)) {
250
    foreach (qw(Asort1 Asort2 Bsort1 Bsort2 SUGGEST DAMAGED LOST REPORT_GROUP REPORT_SUBGROUP DEPARTMENT TERM SUGGEST_STATUS DOCTYPECAT)) {
251
        push @category_list, $_ unless $categories{$_};
251
        push @category_list, $_ unless $categories{$_};
252
    }
252
    }
253
253
(-)a/admin/itemtypes.pl (-2 / +12 lines)
Lines 109-114 if ( $op eq 'add_form' ) { Link Here
109
        $remote_image = $data->{imageurl};
109
        $remote_image = $data->{imageurl};
110
    }
110
    }
111
111
112
    my $searchcategory = GetAuthorisedValues("DOCTYPECAT", $data->{'searchcategory'});
113
112
    $template->param(
114
    $template->param(
113
        itemtype        => $itemtype,
115
        itemtype        => $itemtype,
114
        description     => $data->{'description'},
116
        description     => $data->{'description'},
Lines 121-126 if ( $op eq 'add_form' ) { Link Here
121
        checkinmsgtype  => $data->{'checkinmsgtype'},
123
        checkinmsgtype  => $data->{'checkinmsgtype'},
122
        imagesets       => $imagesets,
124
        imagesets       => $imagesets,
123
        remote_image    => $remote_image,
125
        remote_image    => $remote_image,
126
        hideinopac   => $data->{'hideinopac'},
127
        searchcategory  => $searchcategory,
124
    );
128
    );
125
129
126
    # END $OP eq ADD_FORM
130
    # END $OP eq ADD_FORM
Lines 145-150 elsif ( $op eq 'add_validate' ) { Link Here
145
                 , summary = ?
149
                 , summary = ?
146
                 , checkinmsg = ?
150
                 , checkinmsg = ?
147
                 , checkinmsgtype = ?
151
                 , checkinmsgtype = ?
152
                 , hideinopac = ?
153
                 , searchcategory = ?
148
            WHERE itemtype = ?
154
            WHERE itemtype = ?
149
        ';
155
        ';
150
        $sth = $dbh->prepare($query2);
156
        $sth = $dbh->prepare($query2);
Lines 162-176 elsif ( $op eq 'add_validate' ) { Link Here
162
            $input->param('summary'),
168
            $input->param('summary'),
163
            $input->param('checkinmsg'),
169
            $input->param('checkinmsg'),
164
            $input->param('checkinmsgtype'),
170
            $input->param('checkinmsgtype'),
171
            $input->param('hideinopac') ? 1 : 0,
172
            $input->param('searchcategory'),
165
            $input->param('itemtype')
173
            $input->param('itemtype')
166
        );
174
        );
167
    }
175
    }
168
    else {    # add a new itemtype & not modif an old
176
    else {    # add a new itemtype & not modif an old
169
        my $query = "
177
        my $query = "
170
            INSERT INTO itemtypes
178
            INSERT INTO itemtypes
171
                (itemtype,description,rentalcharge, notforloan, imageurl, summary, checkinmsg, checkinmsgtype)
179
                (itemtype,description,rentalcharge, notforloan, imageurl, summary, checkinmsg, checkinmsgtype, hideinopac,searchcategory)
172
            VALUES
180
            VALUES
173
                (?,?,?,?,?,?,?,?);
181
                (?,?,?,?,?,?,?,?,?,?);
174
            ";
182
            ";
175
        my $sth = $dbh->prepare($query);
183
        my $sth = $dbh->prepare($query);
176
		my $image = $input->param('image');
184
		my $image = $input->param('image');
Lines 185-190 elsif ( $op eq 'add_validate' ) { Link Here
185
            $input->param('summary'),
193
            $input->param('summary'),
186
            $input->param('checkinmsg'),
194
            $input->param('checkinmsg'),
187
            $input->param('checkinmsgtype'),
195
            $input->param('checkinmsgtype'),
196
            $input->param('hideinopac') ? 1 : 0,
197
            $input->param('searchcategory'),
188
        );
198
        );
189
    }
199
    }
190
200
(-)a/installer/data/mysql/kohastructure.sql (+2 lines)
Lines 1241-1246 CREATE TABLE `itemtypes` ( -- defines the item types Link Here
1241
  summary text, -- information from the summary field, may include HTML
1241
  summary text, -- information from the summary field, may include HTML
1242
  checkinmsg VARCHAR(255), -- message that is displayed when an item with the given item type is checked in
1242
  checkinmsg VARCHAR(255), -- message that is displayed when an item with the given item type is checked in
1243
  checkinmsgtype CHAR(16) DEFAULT 'message' NOT NULL, -- type (CSS class) for the checkinmsg, can be "alert" or "message"
1243
  checkinmsgtype CHAR(16) DEFAULT 'message' NOT NULL, -- type (CSS class) for the checkinmsg, can be "alert" or "message"
1244
  hideinopac tinyint(1) NOT NULL DEFAULT 0, -- Hide the item type from the search options in OPAC
1245
  searchcategory varchar(20) default NULL, -- Group this item type with others with the same value on OPAC search options
1244
  PRIMARY KEY  (`itemtype`),
1246
  PRIMARY KEY  (`itemtype`),
1245
  UNIQUE KEY `itemtype` (`itemtype`)
1247
  UNIQUE KEY `itemtype` (`itemtype`)
1246
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1248
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
(-)a/installer/data/mysql/updatedatabase.pl (+9 lines)
Lines 7945-7950 if (CheckVersion($DBversion)) { Link Here
7945
    SetVersion($DBversion);
7945
    SetVersion($DBversion);
7946
}
7946
}
7947
7947
7948
$DBversion = "3.15.00.XXX";
7949
if ( CheckVersion($DBversion) ) {
7950
    $dbh->do(q{
7951
        ALTER TABLE itemtypes
7952
            ADD hideinopac TINYINT(1) NOT NULL DEFAULT 0,
7953
            ADD searchcategory VARCHAR(20) DEFAULT NULL;
7954
    });
7955
}
7956
7948
=head1 FUNCTIONS
7957
=head1 FUNCTIONS
7949
7958
7950
=head2 TableExists($table)
7959
=head2 TableExists($table)
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt (+46 lines)
Lines 159-164 Item types administration Link Here
159
      [% ELSE %]
159
      [% ELSE %]
160
          <label for="description">Description: </label><input type="text" id="description" name="description" size="48" value="[% description |html %]" /></li>
160
          <label for="description">Description: </label><input type="text" id="description" name="description" size="48" value="[% description |html %]" /></li>
161
      [% END %]
161
      [% END %]
162
163
      <li>
164
      [% IF ( itemtype ) %]
165
          <span class="label">Search category</span>
166
          <select id="searchcategory" name="searchcategory">
167
          <option value="">None</option>
168
                [% FOREACH cat IN searchcategory %]
169
                    [% IF ( cat.selected ) %]
170
                        <option value="[% cat.authorised_value %]" selected="selected">
171
                            [% cat.lib %]
172
                        </option>
173
                    [% ELSE %]
174
                        <option value="[% cat.authorised_value %]" >
175
                            [% cat.lib %]
176
                        </option>
177
                    [% END %]
178
                [% END %]
179
          </select>
180
          (Options are defined as the authorized values for the DOCTYPECAT category)
181
      </li>
182
      [% ELSE %]
183
      <span class="label">Search category</span>
184
      <select id="searchcategory" name="searchcategory">
185
      <option value="" />
186
          [% FOREACH cat IN searchcategory %]
187
              <option value="[% cat.authorised_value %]" >
188
                  [% cat.lib %]
189
              </option>
190
          [% END %]
191
      </select>
192
      </li>
193
      [% END %]
194
162
     [% IF ( noItemTypeImages ) %]
195
     [% IF ( noItemTypeImages ) %]
163
	 <li><span class="label">Image: </span>Item type images are disabled. To enable them, turn off the <a href="/cgi-bin/koha/admin/preferences.pl?op=search&amp;searchfield=noItemTypeImages">noItemTypeImages system preference</a></li></ol>
196
	 <li><span class="label">Image: </span>Item type images are disabled. To enable them, turn off the <a href="/cgi-bin/koha/admin/preferences.pl?op=search&amp;searchfield=noItemTypeImages">noItemTypeImages system preference</a></li></ol>
164
	 [% ELSE %]</ol>
197
	 [% ELSE %]</ol>
Lines 214-219 Item types administration Link Here
214
</div>
247
</div>
215
<ol>
248
<ol>
216
      <li>
249
      <li>
250
          <label for="hideinopac">Hide in OPAC: </label>
251
          [% IF ( hideinopac ) %]
252
              <input type="checkbox" id="hideinopac" name="hideinopac" checked="checked" value="1" />
253
          [% ELSE %]
254
              <input type="checkbox" id="hideinopac" name="hideinopac" value="1" />
255
          [% END %]
256
          (if checked, items of this type will be hidden as filters in OPAC's advanced search)
257
      </li>
258
      <li>
217
          <label for="notforloan">Not for loan: </label>   [% IF ( notforloan ) %]
259
          <label for="notforloan">Not for loan: </label>   [% IF ( notforloan ) %]
218
                <input type="checkbox" id="notforloan" name="notforloan" checked="checked" value="1" />
260
                <input type="checkbox" id="notforloan" name="notforloan" checked="checked" value="1" />
219
            [% ELSE %]
261
            [% ELSE %]
Lines 297-303 Item types administration Link Here
297
    [% UNLESS ( noItemTypeImages ) %]<th>Image</th>[% END %]
339
    [% UNLESS ( noItemTypeImages ) %]<th>Image</th>[% END %]
298
    <th>Code</th>
340
    <th>Code</th>
299
    <th>Description</th>
341
    <th>Description</th>
342
    <th>Search category</th>
300
    <th>Not for loan</th>
343
    <th>Not for loan</th>
344
    <th>Hide in OPAC</th>
301
    <th>Charge</th>
345
    <th>Charge</th>
302
    <th>Checkin message</th>
346
    <th>Checkin message</th>
303
    <th>Actions</th>
347
    <th>Actions</th>
Lines 315-321 Item types administration Link Here
315
      </a>
359
      </a>
316
    </td>
360
    </td>
317
    <td>[% loo.description %]</td>
361
    <td>[% loo.description %]</td>
362
    <td>[% loo.searchcategory %]</td>
318
    <td>[% IF ( loo.notforloan ) %]Yes[% ELSE %]&nbsp;[% END %]</td>
363
    <td>[% IF ( loo.notforloan ) %]Yes[% ELSE %]&nbsp;[% END %]</td>
364
    <td>[% IF ( loo.hideinopac ) %]Yes[% ELSE %]&nbsp;[% END %]</td>
319
    <td>
365
    <td>
320
    [% UNLESS ( loo.notforloan ) %]
366
    [% UNLESS ( loo.notforloan ) %]
321
      [% loo.rentalcharge %]
367
      [% loo.rentalcharge %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-advsearch.tt (-1 / +3 lines)
Lines 142-150 Link Here
142
                                    <legend>Limit to any of the following:</legend>
142
                                    <legend>Limit to any of the following:</legend>
143
                                    <div class="row-fluid">
143
                                    <div class="row-fluid">
144
                                        [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
144
                                        [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
145
                                            <div class="span3"><input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]" name="limit" value="mc-[% itemtypeloo.ccl %]:[% itemtypeloo.code %]"/><label for="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]">[% UNLESS ( noItemTypeImages ) %][% IF ( itemtypeloo.imageurl ) %]<img src="[% itemtypeloo.imageurl %]" alt="[% itemtypeloo.description %]" />[% END %]&nbsp;[% END %]
145
                                            [% IF ((!itemtypeloo.searchcategory) AND (itemtypeloo.cat == 0)) OR (itemtypeloo.cat == 1) %]
146
                                            <div class="span3"><input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]" name="[% IF ( itemtypeloo.cat == 1 ) %]searchcat[% ELSE %]limit[% END %]" value="[% IF ( itemtypeloo.cat == 1 ) %][% itemtypeloo.code %][% ELSE %]mc-[% itemtypeloo.ccl %]:[% itemtypeloo.code %][% END %]"/><label for="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]">[% UNLESS ( noItemTypeImages ) %][% IF ( itemtypeloo.imageurl ) %]<img border="0" src="[% itemtypeloo.imageurl %]" alt="[% itemtypeloo.description %]" />[% END %]&nbsp;[% END %]
146
                                            [% itemtypeloo.description %]</label></div>
147
                                            [% itemtypeloo.description %]</label></div>
147
                                            [% IF ( loop.last ) %]</div>[% ELSE %][% UNLESS ( loop.count % 4 ) %]</div><div class="row-fluid">[% END %][% END %]
148
                                            [% IF ( loop.last ) %]</div>[% ELSE %][% UNLESS ( loop.count % 4 ) %]</div><div class="row-fluid">[% END %][% END %]
149
                                            [% END %]
148
                                        [% END %]
150
                                        [% END %]
149
                                </fieldset>
151
                                </fieldset>
150
                            </div> <!-- / #advsearch-[% advsearchloo.advanced_search_type %] -->
152
                            </div> <!-- / #advsearch-[% advsearchloo.advanced_search_type %] -->
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-advsearch.tt (-2 / +4 lines)
Lines 188-195 Link Here
188
    <table>
188
    <table>
189
        <tr>
189
        <tr>
190
    [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
190
    [% FOREACH itemtypeloo IN advsearchloo.code_loop %]
191
        <td><input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]" name="limit" value="mc-[% itemtypeloo.ccl %]:[% itemtypeloo.code %]"/><label for="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]">[% UNLESS ( noItemTypeImages ) %][% IF ( itemtypeloo.imageurl ) %]<img border="0" src="[% itemtypeloo.imageurl %]" alt="[% itemtypeloo.description %]" />[% END %]&nbsp;[% END %]
191
            [% IF ((!itemtypeloo.searchcategory) AND (itemtypeloo.cat == 0)) OR (itemtypeloo.cat == 1) %]
192
        [% itemtypeloo.description %]</label></td>
192
                <td><input type="checkbox" id="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]" name="[% IF ( itemtypeloo.cat == 1 ) %]searchcat[% ELSE %]limit[% END %]" value="[% IF ( itemtypeloo.cat == 1 ) %][% itemtypeloo.code %][% ELSE %]mc-[% itemtypeloo.ccl %]:[% itemtypeloo.code %][% END %]"/><label for="[% itemtypeloo.ccl FILTER remove(',') %]-[% itemtypeloo.number %]">[% UNLESS ( noItemTypeImages ) %][% IF ( itemtypeloo.imageurl ) %]<img border="0" src="[% itemtypeloo.imageurl %]" alt="[% itemtypeloo.description %]" />[% END %]&nbsp;[% END %]
193
                [% itemtypeloo.description %]</label></td>
194
            [% END %]
193
        [% IF ( loop.last ) %]</tr>[% ELSE %][% UNLESS ( loop.count % 5 ) %]</tr><tr>[% END %][% END %]
195
        [% IF ( loop.last ) %]</tr>[% ELSE %][% UNLESS ( loop.count % 5 ) %]</tr><tr>[% END %][% END %]
194
    [% END %]
196
    [% END %]
195
    </table>
197
    </table>
(-)a/opac/opac-search.pl (-6 / +23 lines)
Lines 95-111 my $lang = C4::Templates::getlanguage($cgi, 'opac'); Link Here
95
my $template_name;
95
my $template_name;
96
my $template_type = 'basic';
96
my $template_type = 'basic';
97
my @params = $cgi->param("limit");
97
my @params = $cgi->param("limit");
98
98
my @searchCategories = $cgi->param('searchcat');
99
99
100
my $format = $cgi->param("format") || '';
100
my $format = $cgi->param("format") || '';
101
my $build_grouped_results = C4::Context->preference('OPACGroupResults');
101
my $build_grouped_results = C4::Context->preference('OPACGroupResults');
102
if ($format =~ /(rss|atom|opensearchdescription)/) {
102
if ($format =~ /(rss|atom|opensearchdescription)/) {
103
    $template_name = 'opac-opensearch.tmpl';
103
    $template_name = 'opac-opensearch.tmpl';
104
}
104
}
105
elsif (@params && $build_grouped_results) {
105
elsif ((@params || @searchCategories) && $build_grouped_results) {
106
    $template_name = 'opac-results-grouped.tmpl';
106
    $template_name = 'opac-results-grouped.tmpl';
107
}
107
}
108
elsif ((@params>=1) || ($cgi->param("q")) || ($cgi->param('multibranchlimit')) || ($cgi->param('limit-yr')) ) {
108
elsif (((@params>=1) || (@searchCategories>=1)) || ($cgi->param("q")) || ($cgi->param('multibranchlimit')) || ($cgi->param('limit-yr')) ) {
109
    $template_name = 'opac-results.tmpl';
109
    $template_name = 'opac-results.tmpl';
110
}
110
}
111
else {
111
else {
Lines 202-208 my $languages_limit_loop = getAllLanguages($lang); Link Here
202
$template->param(search_languages_loop => $languages_limit_loop,);
202
$template->param(search_languages_loop => $languages_limit_loop,);
203
203
204
# load the Type stuff
204
# load the Type stuff
205
my $itemtypes = GetItemTypes;
205
my $itemtypes = GetItemTypesCategorized;
206
# the index parameter is different for item-level itemtypes
206
# the index parameter is different for item-level itemtypes
207
my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype';
207
my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype';
208
my @advancedsearchesloop;
208
my @advancedsearchesloop;
Lines 220-227 foreach my $advanced_srch_type (@advanced_search_types) { Link Here
220
                code => $thisitemtype,
220
                code => $thisitemtype,
221
                description => $itemtypes->{$thisitemtype}->{'description'},
221
                description => $itemtypes->{$thisitemtype}->{'description'},
222
                imageurl=> getitemtypeimagelocation( 'opac', $itemtypes->{$thisitemtype}->{'imageurl'} ),
222
                imageurl=> getitemtypeimagelocation( 'opac', $itemtypes->{$thisitemtype}->{'imageurl'} ),
223
                cat => $itemtypes->{$thisitemtype}->{'iscat'},
224
                hideinopac => $itemtypes->{$thisitemtype}->{'hideinopac'},
225
                searchcategory => $itemtypes->{$thisitemtype}->{'searchcategory'},
223
            );
226
            );
224
	    push @itypesloop, \%row;
227
        if ( !$itemtypes->{$thisitemtype}->{'hideinopac'} ) {
228
	        push @itypesloop, \%row;
229
        }
225
	}
230
	}
226
        my %search_code = (  advanced_search_type => $advanced_srch_type,
231
        my %search_code = (  advanced_search_type => $advanced_srch_type,
227
                             code_loop => \@itypesloop );
232
                             code_loop => \@itypesloop );
Lines 236-241 foreach my $advanced_srch_type (@advanced_search_types) { Link Here
236
				ccl => $advanced_srch_type,
241
				ccl => $advanced_srch_type,
237
                code => $thisitemtype->{authorised_value},
242
                code => $thisitemtype->{authorised_value},
238
                description => $thisitemtype->{'lib_opac'} || $thisitemtype->{'lib'},
243
                description => $thisitemtype->{'lib_opac'} || $thisitemtype->{'lib'},
244
                searchcategory => $itemtypes->{$thisitemtype}->{'searchcategory'},
239
                imageurl => getitemtypeimagelocation( 'opac', $thisitemtype->{'imageurl'} ),
245
                imageurl => getitemtypeimagelocation( 'opac', $thisitemtype->{'imageurl'} ),
240
                );
246
                );
241
		push @authvalueloop, \%row;
247
		push @authvalueloop, \%row;
Lines 400-405 if ($operands[0] && !$operands[1]) { Link Here
400
406
401
# limits are use to limit to results to a pre-defined category such as branch or language
407
# limits are use to limit to results to a pre-defined category such as branch or language
402
my @limits = $cgi->param('limit');
408
my @limits = $cgi->param('limit');
409
410
if (@searchCategories > 0) {
411
	my @tabcat;
412
    foreach my $typecategory (@searchCategories) {
413
        push (@tabcat, GetItemTypesByCategory($typecategory));
414
    }
415
416
    foreach my $itemtypeInCategory (@tabcat) {
417
        push (@limits, "mc-$itype_or_itemtype,phr:".$itemtypeInCategory);
418
    }
419
}
420
403
@limits = map { uri_unescape($_) } @limits;
421
@limits = map { uri_unescape($_) } @limits;
404
422
405
if($params->{'multibranchlimit'}) {
423
if($params->{'multibranchlimit'}) {
406
- 

Return to bug 10937