--- loncom/interface/lonsearchcat.pm 2001/03/13 15:36:15 1.8 +++ loncom/interface/lonsearchcat.pm 2001/03/15 14:31:05 1.15 @@ -82,25 +82,37 @@ END $scrout=''; # building a part of screen output $scrout.=&searchphrasefield('Limit by title','title', - ''); + $ENV{'form.title'}); $scrout.=&searchphrasefield('Limit by author','author', - ''); + $ENV{'form.author'}); $scrout.=&searchphrasefield('Limit by subject','subject', - ''); + $ENV{'form.subject'}); + + $scrout.=&searchphrasefield('Limit by keywords','keywords', + $ENV{'form.keywords'}); + + $scrout.=&searchphrasefield('Limit by URL','url', + $ENV{'form.url'}); + + $scrout.=&searchphrasefield('Limit by version','version', + $ENV{'form.version'}); $scrout.=&searchphrasefield('Limit by notes','notes', - ''); + $ENV{'form.notes'}); $scrout.=&searchphrasefield('Limit by abstract','abstract', - ''); + $ENV{'form.abstract'}); + $ENV{'form.mime'}='notxxx' unless length($ENV{'form.mime'}); $scrout.=&selectbox('Limit by MIME type','mime', - 'notxxx',%mimetag); + $ENV{'form.mime'},%mimetag); + + $ENV{'form.language'}='any' unless length($ENV{'form.language'}); $scrout.=&selectbox('Limit by language','language', - 'any',%language); + $ENV{'form.language'},%language); # ------------------------------------------------ Compute date selection boxes @@ -111,11 +123,19 @@ END
between: CREATIONDATESTART - $scrout.=&dateboxes('creationdatestart'); + $scrout.=&dateboxes('creationdatestart',1,1,1976, + $ENV{'form.creationdatestart_month'}, + $ENV{'form.creationdatestart_day'}, + $ENV{'form.creationdatestart_year'}, + ); $scrout.=<
between: LASTREVISIONDATESTART - $scrout.=&dateboxes('lastrevisiondatestart'); + $scrout.=&dateboxes('lastrevisiondatestart',1,1,1976, + $ENV{'form.lastrevisiondatestart_month'}, + $ENV{'form.lastrevisiondatestart_day'}, + $ENV{'form.lastrevisiondatestart_year'}, + ); $scrout.=< +LIMIT BY OTHER METADATA FIELDS: + +For author-specific metadata, enter in an expression in the form of +key=value separated by operators such as AND or OR.
+Example: grandmother=75 OR grandfather=85 +
+CUSTOMMETADATA +$scrout.=&simpletextfield('custommetadata',$ENV{'form.custommetadata'}); +$scrout.=' initial users of this system do not need to worry about this option'; # ---------------------------------------------------------------- Print screen $r->print(< - - -Title only +ENDDOCUMENT + $r->print(&simpletextfield('basicexp',$ENV{'form.basicexp'})); + $r->print(' '); + $r->print(&simplecheckbox('titleonly',$ENV{'form.titleonly'})); + $r->print('Title only '); + $r->print(&simplecheckbox('allversions',$ENV{'form.allversions'})); + $r->print(<Search historic archives
@@ -187,6 +235,18 @@ sub textfield { ''; } +sub simpletextfield { + my ($name,$value)=@_; + return ''; +} + +sub simplecheckbox { + my ($name,$value)=@_; + my $checked=''; + $checked="CHECKED" if $value eq 'on'; + return ''; +} + sub searchphrasefield { my ($title,$name,$value)=@_; my $instruction=< - - - - - - - - - - + + + + + + + + + + +END + $month=~s/(\"$currentmonth\")/$1 SELECTED/ if length($currentmonth); + my $day=< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +END + $day=~s/(\"$currentday\")/$1 SELECTED/ if length($currentday); + my $year=< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + END + $year=~s/(\"$currentyear\")/$1 SELECTED/ if length($currentyear); + return "$month$day$year"; } sub selectbox { @@ -352,7 +422,8 @@ sub basicsearch { my $query=$expression; $query="select * from metadata where concat(title,\" \",author) like '\%$expression\%'"; - my $reply=&Apache::lonnet::reply("querysend:$query",'msul3'); +# my $reply=&Apache::lonnet::reply("querysend:$query",'msul3'); + my $reply=&Apache::lonnet::metadata_query($query); my @results; @@ -377,7 +448,8 @@ sub basicsearch { my $compiledresult=''; foreach my $result (@results) { - my ($title,$author,$subject,$notes,$abstract,$mime,$lang, + my ($title,$author,$subject,$url,$keywords,$version, + $notes,$abstract,$mime,$lang, $creationdate,$lastrevisiondate,$owner,$copyright )=map {&Apache::lonnet::unescape($_)} (split(/\,/,$result)); my $shortabstract=$abstract; @@ -387,15 +459,16 @@ sub basicsearch { END $compiledresult.=< +onClick="javascript:select_data('$title','$url')">
END $compiledresult.=<URL: $url
Title: $title
Author(s): $author
Subject: $subject
-Keyword(s): not available yet
+Keyword(s): $keywords
Notes: $notes
Abstract: $shortabstract
MIME Type: $mimetag{$mime}
@@ -413,8 +486,19 @@ END $compiledresult="There were no results that matched your query"; } -# Question... allow to ask question from this page, or click to -# search again? + # make query information persistent to allow for subsequent revision + my $persistent=''; + map { + if (/^form\./ && !/submit/) { + my $name=$_; + my $key=$name; + $name=~s/^form\.//; + $persistent.=< +END + } + } (keys %ENV); + $r->print(< @@ -444,7 +528,11 @@ SCRIPT

Search Catalog

-Revise search request + + +$persistent

Search Query