use C4::ClassSource;
use C4::Output;
+use Koha::ClassSources;
+
my $builder = sub {
my ( $params ) = @_;
my $function_name = $params->{id};
}
);
- my $cn_sort;
-
my $dbh = C4::Context->dbh;
my $sth;
my @cn;
$search = $gt;
}
+ my $cn_source = $cgi->param('cn_source') || C4::Context->preference("DefaultClassificationSource");
+ my @class_sources = Koha::ClassSources->search({ used => 1});
+
#Don't show half the results of show lt or gt
$real_limit = $results_per_page if $search ne $q;
- $cn_sort = GetClassSort( undef, undef, $search );
- my $cn_sort_q = GetClassSort( undef, undef, $q );
+ my $cn_sort = GetClassSort( $cn_source, undef, $search );
my $red = 0;
if ( $search ne $gt ) {
my $green = 0;
#Results before the cn_sort
- $query = "SELECT b.title, itemcallnumber, biblionumber, barcode, cn_sort, branchname, author
+ $query = "SELECT b.title, b.subtitle, itemcallnumber, biblionumber, barcode, cn_sort, branchname, author
FROM items AS i
JOIN biblio AS b USING (biblionumber)
LEFT OUTER JOIN branches ON (branches.branchcode = homebranch)
if ( $data->{itemcallnumber} eq $q ) {
$data->{background} = 'red';
$red = 1;
- } elsif ( ( GetClassSort( undef, undef, $data->{itemcallnumber} ) lt $cn_sort_q ) && !$green && !$red ) {
+ } elsif ( $data->{cn_sort} lt $cn_sort && !$green && !$red ) {
if ( $#cn != -1 ) {
unshift @cn, { 'background' => 'green' };
$globalGreen = 1;
my $green = 0;
#Results after the cn_sort
- $query = "SELECT b.title, itemcallnumber, biblionumber, i.cn_sort, branchname, author
+ $query = "SELECT b.title, b.subtitle, itemcallnumber, biblionumber, barcode, cn_sort, branchname, author
FROM items AS i
JOIN biblio AS b USING (biblionumber)
LEFT OUTER JOIN branches ON (branches.branchcode = homebranch)
if ( $data->{itemcallnumber} eq $q ) {
$data->{background} = 'red';
$red = 1;
- } elsif ( ( GetClassSort( undef, undef, $data->{itemcallnumber} ) gt $cn_sort_q ) && !$green && !$red && !$globalGreen ) {
+ } elsif ( $data->{cn_sort} gt $cn_sort && !$green && !$red && !$globalGreen ) {
push @cn, { 'background' => 'green' };
$green = 1;
}
$template->param( 'q' => $q );
$template->param( 'cn_loop' => \@cn ) if $#cn != -1;
$template->param( 'popup' => defined( $cgi->param('popup') ) );
+ $template->param( 'cn_source' => $cn_source ) if $cn_source;
+ $template->param( 'class_sources' => \@class_sources );
+
output_html_with_http_headers $cgi, $cookie, $template->output;
};
<h1>Call number browser</h1>
<div>
- <form method="get" action="cn_browser.pl">
- <label for="searchcn">Search call number:</label>
- <input type="text" id="cn_browser_input" name="q" value="[% q | html %]" />
- <input id="cn_browser_submit" type="submit" value="Search" />
+ <form id="cn_browser" method="get" action="/cgi-bin/koha/cataloguing/plugin_launcher.pl">
+ <label for="searchcn">Search call number:</label>
+ <input type="text" id="cn_browser_input" name="q" value="[% q | html %]" />
+ <input id="cn_browser_submit" type="submit" value="Search" />
+ <input name="plugin_name" type="hidden" value="cn_browser.pl"/>
+ <input name="popup" type="hidden" value="[% popup %]"/>
+ </br>
+ <label for="cn_source">Callnumber classification scheme</label>
+ <select name="cn_source" form="cn_browser">
+ [% FOREACH class_source IN class_sources %]
+ [% IF class_source.cn_source == cn_source %]
+ <option value="[% class_source.cn_source | html %]" selected="selected">[% class_source.description | html %]</option>
+ [% ELSE %]
+ <option value="[% class_source.cn_source | html %]">[% class_source.description | html %]</option>
+ [% END %]
+ [% END %]
+ </select>
</form>
</div>
<br />
[% IF ( cn_loo.author ) %]
<span>by</span> [% cn_loo.author | html %]
[% END %]
+ [% IF ( cn_loo.barcode ) %] ([% cn_loo.barcode %])[% END %]
</a>
</td>
<td style="background:[% cn_loo.background | html %];">[% cn_loo.branchname | html %]</td>
</tbody>
</table>
-[% MACRO jsinclude BLOCK %]
- <script>
- $(document).ready(function(){
- $("#cn_browser_submit").click(function(){
- window.location.href='/cgi-bin/koha/cataloguing/plugin_launcher.pl?plugin_name=cn_browser.pl&popup&q='+$("#cn_browser_input").val();
- return false;
- });
- });
- </script>
-[% END %]
-
[% INCLUDE 'intranet-bottom.inc' popup_window=1 %]