2 no warnings 'redefine';
9 sub plugin_parameters {
10 my ( $dbh, $record, $tagslib, $i, $tabloop ) = @_;
14 sub plugin_javascript {
15 my ( $dbh, $record, $tagslib, $field_number, $tabloop ) = @_;
16 my $function_name = "328" . ( int( rand(100000) ) + 1 );
18 <script type=\"text/javascript\">
21 function Focus$function_name(subfield_managed) {
25 function Blur$function_name(subfield_managed) {
29 function Clic$function_name(i) {
30 q = document.getElementById('$field_number');
31 window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=cn_browser.pl&popup&q=\"+q.value,\"cnbrowser\",\"width=500,height=400,toolbar=false,scrollbars=yes\");
39 return ( $function_name, $res );
45 my $params = $cgi->Vars;
46 my $results_per_page = 30;
47 my $current_page = $cgi->param('page') || 1;
49 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
50 { template_name => "cataloguing/value_builder/cn_browser.tt",
54 flagsrequired => { tools => 'cn_browser', catalogue => 1 },
60 my $dbh = C4::Context->dbh;
64 my $real_limit = $results_per_page / 2;
73 if ( $q = $cgi->param('q') ) {
76 if ( $cgi->param('lt') ) {
77 $lt = $cgi->param('lt');
80 if ( $cgi->param('gt') ) {
81 $gt = $cgi->param('gt');
85 #Don't show half the results of show lt or gt
86 $real_limit = $results_per_page if $search ne $q;
87 $cn_sort = GetClassSort( undef, undef, $search );
88 my $cn_sort_q = GetClassSort( undef, undef, $q );
91 if ( $search ne $gt ) {
94 #Results before the cn_sort
95 $query = "SELECT b.title, itemcallnumber, biblionumber, barcode, cn_sort, branchname, author
97 JOIN biblio AS b USING (biblionumber)
98 LEFT OUTER JOIN branches ON (branches.branchcode = homebranch)
99 WHERE cn_sort < '$cn_sort'
100 AND itemcallnumber != ''
101 ORDER BY cn_sort DESC, itemnumber
103 $sth = $dbh->prepare($query);
105 while ( my $data = $sth->fetchrow_hashref ) {
106 if ( $data->{itemcallnumber} eq $q ) {
107 $data->{background} = 'red';
109 } elsif ( ( GetClassSort( undef, undef, $data->{itemcallnumber} ) lt $cn_sort_q ) && !$green && !$red ) {
111 unshift @cn, { 'background' => 'green' };
118 $rows_lt = $sth->rows;
122 if ( $search ne $lt ) {
125 #Results after the cn_sort
126 $query = "SELECT b.title, itemcallnumber, biblionumber, i.cn_sort, branchname, author
128 JOIN biblio AS b USING (biblionumber)
129 LEFT OUTER JOIN branches ON (branches.branchcode = homebranch)
130 WHERE i.cn_sort >= '$cn_sort'
131 AND itemcallnumber != ''
132 ORDER BY cn_sort, itemnumber
134 $sth = $dbh->prepare($query);
137 while ( my $data = $sth->fetchrow_hashref ) {
138 if ( $data->{itemcallnumber} eq $q ) {
139 $data->{background} = 'red';
141 } elsif ( ( GetClassSort( undef, undef, $data->{itemcallnumber} ) gt $cn_sort_q ) && !$green && !$red && !$globalGreen ) {
142 push @cn, { 'background' => 'green' };
147 $rows_gt = $sth->rows;
149 if ( !$green && !$red && !$globalGreen ) {
150 push @cn, { 'background' => 'green' };
156 $template->param( 'q' => $q );
157 $template->param( 'cn_loop' => \@cn ) if $#cn != -1;
158 $template->param( 'popup' => defined( $cgi->param('popup') ) );
160 output_html_with_http_headers $cgi, $cookie, $template->output;