--- loncom/interface/lonsearchcat.pm 2002/07/08 14:52:19 1.138
+++ loncom/interface/lonsearchcat.pm 2002/07/08 20:35:36 1.139
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Search Catalog
#
-# $Id: lonsearchcat.pm,v 1.138 2002/07/08 14:52:19 matthew Exp $
+# $Id: lonsearchcat.pm,v 1.139 2002/07/08 20:35:36 matthew Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -118,6 +118,13 @@ The ubiquitous database hash
The full path to the (temporary) search database file. This is set and
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
=cut
@@ -133,6 +140,12 @@ my $importbutton; # button to take the s
my %hash; # database hash
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 );
+
######################################################################
######################################################################
@@ -223,6 +236,7 @@ END
$searchtype = 'Basic' if ($ENV{'form.basicsubmit'} eq 'SEARCH');
$searchtype = 'Advanced' if ($ENV{'form.advancedsubmit'} eq 'SEARCH');
if ($searchtype) {
+ # We are running a search
my ($query,$customquery,$customshow,$libraries) =
(undef,undef,undef,undef);
if ($searchtype eq 'Basic') {
@@ -239,12 +253,21 @@ END
my $reply=&Apache::lonnet::metadata_query($query,$customquery,
$customshow,$libraries);
&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
- $r->print(&advanced_search_form($closebutton,$hidden));
- } else {
- # Output normal search interface
- $r->print(&basic_search_form($closebutton,$hidden));
+ if ($ENV{'form.reqinterface'} eq 'advanced') {
+ $r->print(&advanced_search_form($closebutton,$hidden));
+ } else {
+ # Output normal search interface
+ $r->print(&basic_search_form($closebutton,$hidden));
+ }
}
return OK;
}
@@ -295,20 +318,18 @@ ENDDOCUMENT
' ';
# $scrout.=&simplecheckbox('allversions',$ENV{'form.allversions'});
# $scrout.='Search historic archives';
- $scrout.=<Advanced Search
$closebutton
-
-
-
+END
+ $scrout.=&selectbox(undef,'viewselect',
+ $ENV{'form.viewselect'},
+ undef,undef,undef,
+ sort(keys(%Views)));
+ $scrout.=<
VIEW: | - - - - |