--- loncom/interface/lonsearchcat.pm 2002/09/16 20:09:45 1.157 +++ loncom/interface/lonsearchcat.pm 2002/09/16 20:57:28 1.158 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.157 2002/09/16 20:09:45 www Exp $ +# $Id: lonsearchcat.pm,v 1.158 2002/09/16 20:57:28 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -191,7 +191,8 @@ sub handler { ## &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['catalogmode','launch','acts','mode','form','element','pause', - 'phase','persistent_db_id','table','start','show']); + 'phase','persistent_db_id','table','start','show', + 'cleargroupsort']); ## ## The following is a trick - we wait a few seconds if asked to so ## the daemon running the search can get ahead of the daemon @@ -242,11 +243,13 @@ END ## Clear out old values from groupsearch database ## untie %groupsearch_db if (tied(%groupsearch_db)); - if (($ENV{'form.launch'} eq '1') && - ($ENV{'form.catalogmode'} eq 'groupsearch')) { + if (($ENV{'form.cleargroupsort'} eq '1') || + (($ENV{'form.launch'} eq '1') && + ($ENV{'form.catalogmode'} eq 'groupsearch'))) { if (tie(%groupsearch_db,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) { &start_fresh_session(); untie %groupsearch_db; + delete($ENV{'form.cleargroupsort'}); } else { # This is a stupid error to give to the user. # It really tells them nothing. @@ -1871,6 +1874,7 @@ sub revise_button { $revise_phase = 'disp_adv' if ($ENV{'form.searchmode'} eq 'advanced'); my $newloc = '/adm/searchcat'. '?persistent_db_id='.$ENV{'form.persistent_db_id'}. + '&cleargroupsort=1'. '&phase='.$revise_phase; my $result = qq{ }; @@ -2144,6 +2148,10 @@ sub display_results { return; } ## + ## $checkbox_num is a count of the number of checkboxes output on the + ## page this is used only during catalogmode=groupsearch. + my $checkbox_num = 0; + ## ## Get the catalog controls setup ## my $action = "/adm/searchcat?phase=results"; @@ -2222,7 +2230,8 @@ sub display_results { } my %Fields = %{&parse_row(@$row)}; my $output="
\n";
- my $prefix=&catalogmode_output($Fields{'title'},$Fields{'url'});
+ my $prefix=&catalogmode_output($Fields{'title'},$Fields{'url'},
+ $Fields{'id'},$checkbox_num++);
# Render the result into html
$output.= &$viewfunction($prefix,%Fields);
# Print them out as they come in.
@@ -2253,22 +2262,18 @@ sub display_results {
=pod
-=item &catalogmode_output($title,$url)
+=item &catalogmode_output($title,$url,$fnum,$checkbox_num)
Returns html needed for the various catalog modes. Gets inputs from
-$ENV{'form.catalogmode'}. Stores data in %groupsearch_db and $fnum
-(local variable).
+$ENV{'form.catalogmode'}. Stores data in %groupsearch_db.
=cut
######################################################################
######################################################################
-{
-my $fnum = 0;
-
sub catalogmode_output {
my $output = '';
- my ($title,$url) = @_;
+ my ($title,$url,$fnum,$checkbox_num) = @_;
if ($ENV{'form.catalogmode'} eq 'interactive') {
$title=~ s/\'/\\\'/g;
if ($ENV{'form.catalogmode'} eq 'interactive') {
@@ -2284,15 +2289,12 @@ END
$output.=<