Head & rel_2_2 merged
[koha.git] / search.marc / search.pl
index 21d0e8c..24a2015 100755 (executable)
@@ -24,7 +24,7 @@ use CGI;
 use C4::Auth;
 use HTML::Template;
 use C4::Context;
-use C4::Search;
+use C4::Search;
 use C4::Auth;
 use C4::Output;
 use C4::Interface::CGI::Output;
@@ -92,7 +92,7 @@ sub create_scrolling_list {
 
 my $query=new CGI;
 my $type=$query->param('type');
-my $op = $query->param('op');
+my $op = $query->param('op') || "";
 my $dbh = C4::Context->dbh;
 
 my $startfrom=$query->param('startfrom');
@@ -130,7 +130,15 @@ if ($op eq "do_search") {
                        if ($tag) {
                                push @tags,$dbh->quote("$tag$subfield");
                        } else {
-                               push @tags, $dbh->quote(substr($marc,0,4));
+                               if ($marc =~ /^(\d){3}(. -)(.)*/)
+                               {
+                                       # The user is using the search catalogue part, more fields
+                                       push @tags, $dbh->quote(substr($marc,0,4));
+                               }
+                               else
+                               {
+                                       push @tags, $marc;
+                               }
                        }
                } else {
                        push @tags, "";
@@ -142,17 +150,14 @@ if ($op eq "do_search") {
                                                                                $startfrom*$resultsperpage, $resultsperpage,$orderby,$desc_or_asc);
        if ($total == 1) {
         # if only 1 answer, jump directly to the biblio
-           # here we need to check if MARC searching is turned on or off.
-           # if on, go to MARCdetail.pl else go to
-           # detail.pl
-           my $marc_bool = C4::Context->boolean_preference("MARC") || 0;
-           if ($marc_bool eq "1") {                              
-               print $query->redirect("/cgi-bin/koha/MARCdetail.pl?biblionumber=".@$results[0]->{biblionumber});
-           }
-           else {
-               print $query->redirect("/cgi-bin/koha/detail.pl?biblionumber=".@$results[0]->{biblionumber});
-           }
-                exit
+       if (C4::Context->preference("IntranetBiblioDefaultView") eq "normal") {
+            print $query->redirect("/cgi-bin/koha/detail.pl?bib=".@$results[0]->{biblionumber});
+       } elsif (C4::Context->preference("IntranetBiblioDefaultView") eq "marc") {
+            print $query->redirect("/cgi-bin/koha/MARCdetail.pl?bib=".@$results[0]->{biblionumber});
+       } else {
+            print $query->redirect("/cgi-bin/koha/ISBDdetail.pl?bib=".@$results[0]->{biblionumber});
+       }
+        exit
        }
        ($template, $loggedinuser, $cookie)
                = get_template_and_user({template_name => "search.marc/result.tmpl",
@@ -205,6 +210,7 @@ if ($op eq "do_search") {
        } else {
                $to = (($startfrom+1)*$resultsperpage);
        }
+       my $defaultview = 'BiblioDefaultView'.C4::Context->preference('IntranetBiblioDefaultView');
        $template->param(result => $results,
                                                        startfrom=> $startfrom,
                                                        displaynext=> $displaynext,
@@ -218,11 +224,13 @@ if ($op eq "do_search") {
                                                        to=>$to,
                                                        numbers=>\@numbers,
                                                        searchdesc=> $searchdesc,
+                                                       desc_asc=>$desc_or_asc,
+                                                       orderby=>$orderby,
                                                        MARC_ON => C4::Context->preference("marc"),
+                                                       $defaultview => 1,
                                                        );
 
 } elsif ($op eq "AddStatement") {
-
        ($template, $loggedinuser, $cookie)
                = get_template_and_user({template_name => "search.marc/search.tmpl",
                                query => $query,
@@ -311,6 +319,7 @@ else {
        my $marclist = CGI::scrolling_list(-name=>"marclist",
                                        -values=> $marcarray,
                                        -size=>1,
+                                       -tabindex=>'',
                                        -multiple=>0,
                                        -onChange => "sql_update()",
                                        );
@@ -337,37 +346,40 @@ else {
                                -values   => \@itemtype,
                                -labels   => \%itemtypes,
                                -size     => 1,
+                               -tabindex=>'',
                                -multiple => 0 );
        $sth->finish;
 
        my @branches;
        my @select_branch;
        my %select_branches;
-       my ($count2,@branches)=branches();
-       push @select_branch, "";
-       $select_branches{''} = "";
-       for (my $i=0;$i<$count2;$i++){
-               push @select_branch, $branches[$i]->{'branchcode'};#
-               $select_branches{$branches[$i]->{'branchcode'}} = $branches[$i]->{'branchname'};
+       my $branches=getbranches();
+       my @branchloop;
+       foreach my $thisbranch (sort keys %$branches) {
+#              my $selected = 1 if $thisbranch eq $branch;
+               my %row =(value => $thisbranch,
+#                                      selected => $selected,
+                                       branchname => $branches->{$thisbranch}->{'branchname'},
+                               );
+               push @branchloop, \%row;
        }
-       my $CGIbranch=CGI::scrolling_list( -name     => 'value',
-                               -id => 'branch',
-                               -values   => \@select_branch,
-                               -labels   => \%select_branches,
-                               -size     => 1,
-                               -multiple => 0 );
        $sth->finish;
 
 
+       $template->param('Disable_Dictionary'=>C4::Context->preference("Disable_Dictionary")) if (C4::Context->preference("Disable_Dictionary"));
        $template->param("statements" => \@statements,
                        "nbstatements" => 3,
                        CGIitemtype => $CGIitemtype,
-                       CGIbranch => $CGIbranch,
+                       branchloop => \@branchloop,
                        );
 }
 
 
 # Print the page
+$template->param(intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"),
+               intranetstylesheet => C4::Context->preference("intranetstylesheet"),
+               IntranetNav => C4::Context->preference("IntranetNav"),
+               );
 output_html_with_http_headers $query, $cookie, $template->output;
 
 # Local Variables: