Diff for /loncom/interface/lonsearchcat.pm between versions 1.138 and 1.139

version 1.138, 2002/07/08 14:52:19 version 1.139, 2002/07/08 20:35:36
Line 118  The ubiquitous database hash Line 118  The ubiquitous database hash
 The full path to the (temporary) search database file.  This is set and  The full path to the (temporary) search database file.  This is set and
 used in &handler() and is also used in &output_results().  used in &handler() and is also used in &output_results().
   
   =item %Views
   
   Hash which associates an output view description with the function
   that produces it.  Adding a new view type should be as easy as
   adding a line to the definition of this hash and making sure the function
   takes the proper parameters.
   
 =back   =back 
   
 =cut  =cut
Line 133  my $importbutton; # button to take the s Line 140  my $importbutton; # button to take the s
 my %hash;     # database hash  my %hash;     # database hash
 my $diropendb = "";    # db file  my $diropendb = "";    # db file
   
   #             View Description           Function Pointer
   my %Views = ("Detailed Citation View" => \&detailed_citation_view,
                "Summary View"           => \&summary_view,
                "Fielded Format"         => \&fielded_format_view,
                "XML/SGML"               => \&xml_sgml_view );
   
 ######################################################################  ######################################################################
 ######################################################################  ######################################################################
   
Line 223  END Line 236  END
     $searchtype = 'Basic'    if ($ENV{'form.basicsubmit'}    eq 'SEARCH');      $searchtype = 'Basic'    if ($ENV{'form.basicsubmit'}    eq 'SEARCH');
     $searchtype = 'Advanced' if ($ENV{'form.advancedsubmit'} eq 'SEARCH');      $searchtype = 'Advanced' if ($ENV{'form.advancedsubmit'} eq 'SEARCH');
     if ($searchtype) {      if ($searchtype) {
           # We are running a search
         my ($query,$customquery,$customshow,$libraries) =           my ($query,$customquery,$customshow,$libraries) = 
             (undef,undef,undef,undef);              (undef,undef,undef,undef);
         if ($searchtype eq 'Basic') {          if ($searchtype eq 'Basic') {
Line 239  END Line 253  END
         my $reply=&Apache::lonnet::metadata_query($query,$customquery,          my $reply=&Apache::lonnet::metadata_query($query,$customquery,
                                                $customshow,$libraries);                                                 $customshow,$libraries);
         &output_results($searchtype,$r,$reply,$hidden);          &output_results($searchtype,$r,$reply,$hidden);
     } elsif ($ENV{'form.reqinterface'} eq 'advanced') {      } else {
           #
           # We need to get information to search on
           #
           # Set the default view if it is not already set.
           if (!defined($ENV{'form.viewselect'})) {
               $ENV{'form.viewselect'} ="Detailed Citation View";
           }
         # Output the advanced interface          # Output the advanced interface
         $r->print(&advanced_search_form($closebutton,$hidden));          if ($ENV{'form.reqinterface'} eq 'advanced') {
     } else {               $r->print(&advanced_search_form($closebutton,$hidden));
         # Output normal search interface          } else { 
         $r->print(&basic_search_form($closebutton,$hidden));              # Output normal search interface
               $r->print(&basic_search_form($closebutton,$hidden));
           }
     }      }
     return OK;      return OK;
 }   } 
Line 295  ENDDOCUMENT Line 318  ENDDOCUMENT
         ' ';          ' ';
 #    $scrout.=&simplecheckbox('allversions',$ENV{'form.allversions'});  #    $scrout.=&simplecheckbox('allversions',$ENV{'form.allversions'});
 #    $scrout.='<font color="#800000">Search historic archives</font>';  #    $scrout.='<font color="#800000">Search historic archives</font>';
     $scrout.=<<ENDDOCUMENT;      $scrout.=<<END;
 </td><td><a href="/adm/searchcat?reqinterface=advanced">Advanced Search</a></td></tr></table>  </td><td><a href="/adm/searchcat?reqinterface=advanced">Advanced Search</a></td></tr></table>
 </p>  </p>
 <p>  <p>
 &nbsp;<input type="submit" name="basicsubmit" value='SEARCH' />&nbsp;  &nbsp;<input type="submit" name="basicsubmit" value='SEARCH' />&nbsp;
 $closebutton  $closebutton
 <!-- view selection -->  END
 <select name="viewselect">      $scrout.=&selectbox(undef,'viewselect',
 <option value="Detailed Citation View" selected="true" >Detailed Citation View</option>   $ENV{'form.viewselect'},
 <option value="Summary View"  >Summary View</option>   undef,undef,undef,
 <option value="Fielded Format">Fielded Format</option>   sort(keys(%Views)));
 <option value="XML/SGML"      >XML/SGML</option>      $scrout.=<<ENDDOCUMENT;
 </select>  
 <!-- end of view selection -->  
 <input type="button" value="HELP" onClick="openhelp()" />  <input type="button" value="HELP" onClick="openhelp()" />
 </p>  </p>
 </form>  </form>
Line 341  $closebutton Line 362  $closebutton
 <input type="button" value="HELP" onClick="openhelp()" />  <input type="button" value="HELP" onClick="openhelp()" />
 </p>  </p>
 END  END
       if (!defined($ENV{'form.viewselect'})) {
           $ENV{'form.viewselect'} ="Detailed Citation View";
       }
     my $scrout=<<"ENDHEADER";      my $scrout=<<"ENDHEADER";
 <html>  <html>
 <head>  <head>
Line 365  $hidden Line 389  $hidden
 <table>  <table>
 <tr><td><font color="#800000" face="helvetica"><b>VIEW:</b></font></td>  <tr><td><font color="#800000" face="helvetica"><b>VIEW:</b></font></td>
 <td>  <td>
 <!-- view selection -->  
 <select name="viewselect" size ="1">  
     <option value="Detailed Citation View" selected="true">Detailed Citation View</option>  
     <option value="Summary View">Summary View</option>  
     <option value="Fielded Format">Fielded Format</option>  
     <option value="XML/SGML">XML/SGML</option>  
 </select>  
 <!-- end of view selection -->  
 </td></tr>  
 ENDHEADER  ENDHEADER
       $scrout.=&selectbox(undef,'viewselect',
    $ENV{'form.viewselect'},
    undef,undef,undef,
    sort(keys(%Views)));
       $scrout.="</td></tr>\n";
     $scrout.=&searchphrasefield('title',   'title'   ,$ENV{'form.title'});      $scrout.=&searchphrasefield('title',   'title'   ,$ENV{'form.title'});
     $scrout.=&searchphrasefield('author',  'author'  ,$ENV{'form.author'});      $scrout.=&searchphrasefield('author',  'author'  ,$ENV{'form.author'});
     $scrout.=&searchphrasefield('subject', 'subject' ,$ENV{'form.subject'});      $scrout.=&searchphrasefield('subject', 'subject' ,$ENV{'form.subject'});
Line 593  Inputs: Line 613  Inputs:
   
 =item $title   =item $title 
   
 Printed above the select box, in uppercase.  Printed above the select box, in uppercase.  If undefined, only a select
   box will be returned, with no additional html.
   
 =item $name   =item $name 
   
Line 601  The name element of the <select> tag. Line 622  The name element of the <select> tag.
   
 =item $default   =item $default 
   
 The default value of the form.  Can be $anyvalue or in @idlist.  The default value of the form.  Can be $anyvalue, or in @idlist.
   
 =item $anyvalue   =item $anyvalue 
   
 The <option value="..."> used to indicate a default of   The <option value="..."> used to indicate a default of 
 none of the values.  none of the values.  Can be undef.
   
 =item $anytag   =item $anytag 
   
Line 702  END Line 723  END
 sub selectbox {  sub selectbox {
     my ($title,$name,$default,$anyvalue,$anytag,$functionref,@idlist)=@_;      my ($title,$name,$default,$anyvalue,$anytag,$functionref,@idlist)=@_;
     if (! defined($functionref)) { $functionref = sub { $_[0]}; }      if (! defined($functionref)) { $functionref = sub { $_[0]}; }
     my $uctitle=uc($title);      my $selout='';
     my $selout="\n".'<p><font color="#800000" face="helvetica">'.      if (defined($title)) {
         '<b>'.$uctitle.': </b></font><select name="'.$name.'">';          my $uctitle=uc($title);
     foreach ($anyvalue,@idlist) {          $selout="\n".'<p><font color="#800000" face="helvetica">'.
               '<b>'.$uctitle.': </b></font>';
       }
       $selout .= '<select name="'.$name.'">';
       unshift @idlist,$anyvalue if (defined($anyvalue));
       foreach (@idlist) {
         $selout.='<option value="'.$_.'"';          $selout.='<option value="'.$_.'"';
         if ($_ eq $default and !/^any$/) {          if ($_ eq $default and !/^any$/) {
     $selout.=' selected >'.&{$functionref}($_).'</option>';      $selout.=' selected >'.&{$functionref}($_).'</option>';
Line 715  sub selectbox { Line 741  sub selectbox {
  }   }
         else {$selout.='>'.&{$functionref}($_).'</option>';}          else {$selout.='>'.&{$functionref}($_).'</option>';}
     }      }
     return $selout.'</select></p>';      return $selout.'</select>'.(defined($title)?'</p>':' ');
 }  }
   
 ######################################################################  ######################################################################
Line 1110  sub output_results { Line 1136  sub output_results {
     ##      ##
     ## Set viewing function      ## Set viewing function
     ##      ##
     my $viewfunction = undef;      my $viewfunction = $Views{$ENV{'form.viewselect'}};
     if ($ENV{'form.viewselect'} eq 'Detailed Citation View') {  
         $viewfunction = \&detailed_citation_view;  
     } elsif ($ENV{'form.viewselect'} eq 'Summary View') {  
         $viewfunction = \&summary_view;  
     } elsif ($ENV{'form.viewselect'} eq 'Fielded Format') {  
         $viewfunction = \&fielded_format_view;  
     } elsif ($ENV{'form.viewselect'} eq 'XML/SGML') {  
         $viewfunction = \&xml_sgml_view;  
     }  
     if (!defined($viewfunction)) {      if (!defined($viewfunction)) {
         $r->print("Internal Error - Bad view selected.\n");          $r->print("Internal Error - Bad view selected.\n");
         $r->rflush();          $r->rflush();

Removed from v.1.138  
changed lines
  Added in v.1.139


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>