--- loncom/interface/lonsearchcat.pm 2009/07/02 17:23:53 1.310
+++ loncom/interface/lonsearchcat.pm 2011/01/17 20:18:02 1.327
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Search Catalog
#
-# $Id: lonsearchcat.pm,v 1.310 2009/07/02 17:23:53 bisitz Exp $
+# $Id: lonsearchcat.pm,v 1.327 2011/01/17 20:18:02 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -118,8 +118,6 @@ sub handler {
# This is set and used in &handler() and is also used in
# &output_results().
- my $loaderror=&Apache::lonnet::overloaderror($r);
- if ($loaderror) { return $loaderror; }
#
my $closebutton; # button that closes the search window
# This button is different for the RAT compared to
@@ -175,18 +173,9 @@ sub handler {
if (&Apache::lonnet::allowed('bre',$env{'request.role.domain'})) {
push(@allowed_searches,'res');
}
- if (exists($env{'request.course.id'}) && $env{'request.course.id'} ne '') {
- push(@allowed_searches,'course');
- }
my $crumb_text = 'Portfolio Search';
- if (@allowed_searches == 3) {
- $crumb_text = 'Course, Portfolio and Catalog Search';
- } elsif (@allowed_searches ==2) {
- if (grep(/^res$/,@allowed_searches)) {
- $crumb_text = 'Portfolio and Catalog Search';
- } elsif (grep(/^course$/,@allowed_searches)) {
- $crumb_text = 'Portfolio and Course Search';
- }
+ if (@allowed_searches ==2) {
+ $crumb_text = 'Portfolio and Catalog Search';
}
&Apache::lonhtmlcommon::add_breadcrumb
({href=>'/adm/searchcat?'.
@@ -266,25 +255,25 @@ sub handler {
## Configure dynamic components of interface
##
if ($env{'form.catalogmode'} eq 'interactive') {
- $closebutton="
+onclick='javascript:select_group()' />
END
} else {
$closebutton = '';
@@ -303,8 +292,6 @@ END
if ($env{'form.phase'} eq 'adv_search' ||
$env{'form.phase'} eq 'disp_adv') {
$env{'form.searchmode'} = 'advanced';
- } elsif ($env{'form.phase'} eq 'course_search') {
- $env{'form.searchmode'} = 'course_search';
}
#
if ($env{'form.searchmode'} eq 'advanced') {
@@ -320,16 +307,7 @@ END
'&mode='.$env{'form.mode'},
text=>"Advanced $srchtype Search",
bug=>'Searching',});
- } elsif ($env{'form.searchmode'} eq 'course search') {
- &Apache::lonhtmlcommon::add_breadcrumb
- ({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check().
- '&phase=disp_adv'.
- 'catalogmode='.$env{'form.catalogmode'}.
- '&launch='.$env{'form.launch'}.
- '&mode='.$env{'form.mode'},
- text=>"Course Search",
- bug=>'Searching',});
- }
+ }
##
## Switch on the phase
##
@@ -351,8 +329,6 @@ END
&run_search($r,$query,$customquery,$customshow,
$libraries,$pretty_string,$env{'form.area'});
}
- } elsif ($env{'form.phase'} eq 'course_search') {
- &course_search($r);
} elsif(($env{'form.phase'} eq 'basic_search') ||
($env{'form.phase'} eq 'adv_search')) {
#
@@ -448,231 +424,6 @@ sub hidden_field {
}
######################################################################
-######################################################################
-##
-## Course Search
-##
-######################################################################
-######################################################################
-{ # Scope the course search to avoid global variables
-#
-# Variables For course search
-my %alreadyseen;
-my %hash;
-my $totalfound;
-
-sub make_symb {
- my ($id)=@_;
- my ($mapid,$resid)=split(/\./,$id);
- my $map=$hash{'map_id_'.$mapid};
- my $res=$hash{'src_'.$id};
- my $symb=&Apache::lonnet::encode_symb($map,$resid,$res);
- return $symb;
-}
-
-sub course_search {
- my $r=shift;
- my $pretty_search_string = ''.$env{'form.courseexp'}.'';
- my $search_string = $env{'form.courseexp'};
- my @New_Words;
- undef(%alreadyseen);
- if ($env{'form.crsrelated'}) {
- ($search_string,@New_Words) = &related_version($env{'form.courseexp'});
- if (@New_Words) {
- $pretty_search_string .= ' '.&mt("with related words").": @New_Words.";
- } else {
- $pretty_search_string .= ' '.&mt('with no related words').".";
- }
- }
- my $fulltext=$env{'form.crsfulltext'};
- my $discuss=$env{'form.crsdiscuss'};
- my @allwords=($search_string,@New_Words);
- $totalfound=0;
- $r->print(&Apache::loncommon::start_page('Course Search').
- '
'.
- $pretty_search_string.'
'.
- ''.&mt('Course content').': ');
- $r->rflush();
-# ======================================================= Go through the course
- my $c=$r->connection;
- if (tie(%hash,'GDBM_File',$env{'request.course.fn'}.".db",
- &GDBM_READER(),0640)) {
- foreach (sort(keys(%hash))) {
- if ($c->aborted()) { last; }
- if (($_=~/^src\_(.+)$/)) {
- if ($hash{'randomout_'.$1} & !$env{'request.role.adv'}) {
- next;
- }
- my $symb=&make_symb($1);
- &checkonthis($r,$1,$hash{$_},0,&Apache::lonnet::gettitle($symb),
- $fulltext,$symb,@allwords);
- }
- }
- untie(%hash);
- }
- unless ($totalfound) {
- $r->print('
'.&mt('No matches found in resources').'.
');
- }
-
-# Check discussions if requested
- if ($discuss) {
- my $totaldiscussions = 0;
- $r->print('
'.&mt('Discussion postings').': ');
- my $navmap = Apache::lonnavmaps::navmap->new();
- if (defined($navmap)) {
- my @allres=$navmap->retrieveResources();
- my %discussiontime = &Apache::lonnet::dump('discussiontimes',
- $env{'course.'.$env{'request.course.id'}.'.domain'},
- $env{'course.'.$env{'request.course.id'}.'.num'});
- foreach my $resource (@allres) {
- my $result = '';
- my $applies = 0;
- my $symb = $resource->symb();
- my $ressymb = $symb;
- if ($symb =~ m#(___adm/$LONCAPA::domain_re/$LONCAPA::username_re)/(\d+)/bulletinboard$#) {
- $ressymb = 'bulletin___'.$2.$1.'/'.$2.'/bulletinboard';
- unless ($ressymb =~ m#bulletin___\d+___adm/wrapper#) {
- $ressymb=~s#(bulletin___\d+___)#$1adm/wrapper/#;
- }
- }
- if (defined($discussiontime{$ressymb})) {
- my %contrib = &Apache::lonnet::restore($ressymb,$env{'request.course.id'},
- $env{'course.'.$env{'request.course.id'}.'.domain'},
- $env{'course.'.$env{'request.course.id'}.'.num'});
- if ($contrib{'version'}) {
- for (my $id=1;$id<=$contrib{'version'};$id++) {
- unless (($contrib{'hidden'}=~/\.$id\./) || ($contrib{'deleted'}=~/\.$id\./)) {
- if ($contrib{$id.':subject'}) {
- $result .= $contrib{$id.':subject'};
- }
- if ($contrib{$id.':message'}) {
- $result .= $contrib{$id.':message'};
- }
- if ($contrib{$id,':attachmenturl'}) {
- if ($contrib{$id,':attachmenturl'} =~ m-/([^/]+)$-) {
- $result .= $1;
- }
- }
- $applies = &checkwords($result,$applies,@allwords);
- }
- }
- }
- }
-# Does this discussion apply?
- if ($applies) {
- my ($map,$ind,$url)=&Apache::lonnet::decode_symb($ressymb);
- my $disctype = &mt('resource');
- if ($url =~ m#/bulletinboard$#) {
- if ($url =~m#^adm/wrapper/adm/.*/bulletinboard$#) {
- $url =~s#^adm/wrapper##;
- }
- $disctype = &mt('discussion board');
- } else {
- $url = '/res/'.$url;
- }
- if ($url =~ /\?/) {
- $url .= '&symb=';
- } else {
- $url .= '?symb=';
- }
- $url .= &escape($resource->symb());
- my $title = $resource->compTitle();
- $r->print(' '.
- ($title?$title:$url).' - '.
- $disctype.' ');
- $totaldiscussions++;
- } else {
- $r->print(' .');
- }
- }
- unless ($totaldiscussions) {
- $r->print('
'.&mt('No matches found in postings').'.
');
- }
- } else {
- $r->print('
'.&mt('An error occurred retrieving information about resources in the course.').' '.&mt('It is recommended that you [_1]re-initialize the course[_2] and then try your search again.','','').'
');
- }
- }
-
-# =================================================== Done going through course
- $r->print(&Apache::loncommon::end_page());
-}
-
-# =============================== This pulls up a resource and its dependencies
-
-sub checkonthis {
- my ($r,$id,$url,$level,$title,$fulltext,$symb,@allwords)=@_;
- $alreadyseen{$id}=1;
- if (&Apache::loncommon::connection_aborted($r)) { return; }
- $r->rflush();
-
- my $result=$title.' ';
- if ($env{'request.role.adv'} || !$hash{'encrypted_'.$id}) {
- $result.=&Apache::lonnet::metadata($url,'title').' '.
- &Apache::lonnet::metadata($url,'subject').' '.
- &Apache::lonnet::metadata($url,'abstract').' '.
- &Apache::lonnet::metadata($url,'keywords');
- }
- my ($extension)=($url=~/\.(\w+)$/);
- if (&Apache::loncommon::fileembstyle($extension) eq 'ssi' &&
- ($url) && ($fulltext)) {
- $result.=&Apache::lonnet::ssi_body($url.'?symb='.&escape($symb));
- }
- $result=~s/\s+/ /gs;
- my $applies = 0;
- $applies = &checkwords($result,$applies,@allwords);
-# Does this resource apply?
- if ($applies) {
- $r->print(' ');
- for (my $i=0;$i<=$level*5;$i++) {
- $r->print(' ');
- }
- my $href=$url;
- if ($hash{'encrypted_'.$id} && !$env{'request.role.adv'}) {
- $href=&Apache::lonenc::encrypted($href)
- .'?symb='.&Apache::lonenc::encrypted($symb);
- } else {
- $href.='?symb='.&escape($symb);
- }
- $r->print(''.($title?$title:$url).
- ' ');
- $totalfound++;
- } elsif ($fulltext) {
- $r->print(' .');
- }
- $r->rflush();
-# Check also the dependencies of this one
- my $dependencies=
- &Apache::lonnet::metadata($url,'dependencies');
- foreach (split(/\,/,$dependencies)) {
- if (($_=~/^\/res\//) && (!$alreadyseen{$id})) {
- &checkonthis($r,$id,$_,$level+1,'',$fulltext,undef,@allwords);
- }
- }
-}
-
-sub checkwords {
- my ($result,$applies,@allwords) = @_;
- foreach (@allwords) {
- if ($_=~/\w/) {
- if ($result=~/$_/si) {
- $applies++;
- }
- }
- }
- return $applies;
-}
-
-sub untiehash {
- if (tied(%hash)) {
- untie(%hash);
- }
-}
-
-} # End of course search scoping
-
-
-######################################################################
-######################################################################
=pod
@@ -698,52 +449,6 @@ sub print_basic_search_form {
}
# Search form for accessible portfolio files
$scrout.= &setup_basic_search($r,'portfolio',$hidden_fields,$closebutton);
- if ($env{'request.course.id'}) {
- my %lt=&Apache::lonlocal::texthash('srch' => 'Search',
- 'header' => 'Course Search',
- 'note' => 'Enter terms or phrases, then press "Search" below',
- 'use' => 'use related words',
- 'full' =>'fulltext search (time consuming)',
- 'disc' => 'search discussion postings (resources and discussion boards)',
- );
- $scrout.=(<
-
'.'';
return $scrout;
}
@@ -839,15 +560,18 @@ sub print_advanced_search_form{
'reset' => 'Reset',
'help' => 'Help');
my $advanced_buttons=<<"END";
+
$closebutton
+
END
my $srchtype = 'Catalog';
my $jscript;
if ($env{'form.area'} eq 'portfolio') {
$srchtype = 'Portfolio';
$jscript = '';
}
my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search",
$jscript);
- $scrout .= <<"ENDHEADER";
-$bread_crumb
-';
+
$scrout .= &Apache::loncommon::end_page();
$r->print($scrout);
return;
@@ -1159,21 +902,23 @@ Outputs: text for box with view options
######################################################################
######################################################################
sub viewoptions {
- my $scrout = '';
+ my $scrout;
if (! defined($env{'form.viewselect'})) {
$env{'form.viewselect'}='detailed';
}
- $scrout.=&Apache::lonmeta::selectbox('viewselect',
- $env{'form.viewselect'},
- \&viewoptiontext,
- sort(keys(%Views)));
- $scrout.= ' ';
+ $scrout .= ''
+ .&mt('Type:').' '
+ .&Apache::lonmeta::selectbox('viewselect',
+ $env{'form.viewselect'},
+ \&viewoptiontext,
+ sort(keys(%Views)))
+ .'';
my $countselect = &Apache::lonmeta::selectbox('show',
$env{'form.show'},
undef,
(10,20,50,100,1000,10000));
- $scrout .= (' 'x2)
- .&mt('[_1] Records per Page',$countselect)
+ $scrout .= ' '
+ .&mt('Records per Page:').' '.$countselect
.''.$/;
return $scrout;
}
@@ -1682,7 +1427,7 @@ sub parse_domain_restrictions {
foreach (sort @allowed_domains) {
$pretty_domains_string .= "".$_." ";
}
- my %servers = &Apache::lonnet::get_servers(\@allowed_domains,
+ my %servers = &Apache::lonnet::get_unique_servers(\@allowed_domains,
'library');
$libraries_to_query = [keys(%servers)];
}
@@ -2154,9 +1899,13 @@ sub ensure_db_and_table {
## Sanity check the table id.
##
if (! defined($table) || $table eq '' || $table =~ /\D/ ) {
- $r->print("Unable to retrieve search results. ".
- "Unable to determine the table results were saved in. ".
- &Apache::loncommon::end_page());
+ $r->print(&Apache::loncommon::start_page(&mt('Error'))
+. '
table: |'.$table.'|
' # SB
+ .'
'
+ .&mt('Unable to retrieve search results. '
+ .'Unable to determine the table results were saved in.')
+ .&Apache::loncommon::end_page()
+ );
return undef;
}
##
@@ -2238,13 +1987,15 @@ sub print_sort_form {
}
my $js =<
+//
END
@@ -2387,16 +2138,28 @@ Returns: Nothing.
sub update_count_status {
my ($r,$text) = @_;
$text =~ s/\'/\\\'/g;
- $r->print
- ("\n");
+ $r->print(<
+SCRIPT
+
$r->rflush();
}
sub update_status {
my ($r,$text) = @_;
$text =~ s/\'/\\\'/g;
- $r->print
- ("\n");
+ $r->print(<
+SCRIPT
+
$r->rflush();
}
@@ -2423,9 +2186,14 @@ sub update_seconds {
my ($r) = @_;
my $time = &time_left();
if (($last_time-$time) > 0) {
- $r->print("\n");
+ $r->print(<
+SCRIPT
+
$r->rflush();
}
$last_time = $time;
@@ -2457,7 +2225,7 @@ sub revise_button {
'&cleargroupsort=1'.
'&phase='.$revise_phase;
my $result = qq{ };
+ qq{ onclick="parent.location='$newloc';" /> };
return $result;
}
@@ -2517,7 +2285,7 @@ END
@Servers_to_contact = ($serverlist);
}
} else {
- my %all_library_servers = &Apache::lonnet::all_library();
+ my %all_library_servers = &Apache::lonnet::unique_library();
@Servers_to_contact = sort(keys(%all_library_servers));
}
my %Server_status;
@@ -2678,7 +2446,7 @@ END
last if ($connection->aborted());
&update_seconds($r);
}
- &update_status($r,&mt('Search Complete [_1]',$server));
+ &update_status($r,&mt('Search Complete on Server [_1]',$server));
&update_seconds($r);
#
&Apache::lonmysql::disconnect_from_db(); # This is unneccessary
@@ -2688,11 +2456,11 @@ END
# loaded from /adm/searchcat
$r->print(&Apache::loncommon::end_page());
# if ($env{'form.catalogmode'} ne 'import') {
- $r->print("");
+ $r->print(<
+SCRIPT
# }
return;
}
@@ -2715,15 +2483,15 @@ sub prev_next_buttons {
return '' if ($show eq 'all'); # No links if you get them all at once.
#
# Create buttons
- my $buttons = '';
- $buttons .= ' 'x3;
- $buttons .= ''
+ .''
+ .' '
+ .''
+ .' '
+ .''
+ .'
';
}
######################################################################
@@ -2748,7 +2516,9 @@ sub display_results {
##
my $viewfunction = $Views{$env{'form.viewselect'}};
if (!defined($viewfunction)) {
- $r->print("Internal Error - Bad view selected.\n");
+ $r->print('
'
+ .&mt('Internal Error - Bad view selected.')
+ .'
'."\n");
$r->rflush();
return;
}
@@ -2765,7 +2535,10 @@ sub display_results {
if ($env{'form.catalogmode'} eq 'import') {
if (! tie(%groupsearch_db,'GDBM_File',$diropendb,
&GDBM_WRCREAT(),0640)) {
- $r->print('Unable to save import results.'.
+ $r->print('
'.
+ &mt('Unable to save import results.').
+ '
'.
+ ''.
&Apache::loncommon::end_page());
$r->rflush();
return;
@@ -2779,7 +2552,10 @@ sub display_results {
## Get the number of results
my $total_results = &Apache::lonmysql::number_of_rows($table);
if (! defined($total_results)) {
- $r->print("A MySQL error has occurred.".
+ $r->print('
'.
+ &mt('A MySQL error has occurred.').
+ '
'.
+ ''.
&Apache::loncommon::end_page());
&Apache::lonnet::logthis("lonmysql was unable to determine the number".
" of rows in table ".$table);
@@ -2884,37 +2660,40 @@ sub display_results {
$env{'form.sortorder'}='asc';
}
}
- my $sortform = &mt('Sort by [_1] [_2]',
- &Apache::loncommon::select_form($env{'form.sortfield'},
+ my $sortform = ''
+ .&mt('Sort by:').' '
+ .&Apache::loncommon::select_form($env{'form.sortfield'},
'sortfield',
- %sort_fields),
- &Apache::loncommon::select_form($env{'form.sortorder'},
+ \%sort_fields)
+ .' '
+ .&Apache::loncommon::select_form($env{'form.sortorder'},
'sortorder',
- (asc =>&mt('Ascending'),
+ {asc =>&mt('Ascending'),
desc=>&mt('Descending')
- ))
- );
+ })
+ .'';
##
- ## Output links (if necessary) for 'prev' and 'next' pages.
- $r->print
- ('
'.
mt('Results [_1] to [_2] out of [_3]',
$min,$max,$total_results).
- "\n");
+ "
\n");
}
##
## Get results from MySQL table
@@ -2944,13 +2723,14 @@ sub display_results {
if ($area eq 'portfolio') {
$tabletype = 'portfolio_search';
}
+ $r->print(&Apache::loncommon::start_data_table());
foreach my $row (@Results) {
if ($connection->aborted()) {
&cleanup();
return;
}
my %Fields = %{&parse_row($tabletype,@$row)};
- my $output="
\n";
+ my $output;
if (! defined($Fields{'title'}) || $Fields{'title'} eq '') {
$Fields{'title'} = 'Untitled';
}
@@ -2959,21 +2739,27 @@ sub display_results {
# Render the result into html
$output.= &$viewfunction($prefix,%Fields);
# Print them out as they come in.
- $r->print($output);
+ $r->print(&Apache::loncommon::start_data_table_row()
+ .'
'
+ .$output
+ .'
'
+ .&Apache::loncommon::end_data_table_row()
+ );
$r->rflush();
}
+ $r->print(&Apache::loncommon::end_data_table());
if (@Results < 1) {
- $r->print(&mt("There were no results matching your query"));
+ $r->print('
'
+ .&mt('There were no results matching your query.')
+ .'
\n"
- );
+ );
}
$r->print("".&Apache::loncommon::end_page());
$r->rflush();
@@ -3003,7 +2789,7 @@ sub catalogmode_output {
if ($env{'form.catalogmode'} eq 'interactive') {
$output.=<
+onclick="javascript:select_data('$title','$url')" />
END
}
@@ -3013,7 +2799,7 @@ END
$output.=<
+onclick="javascript:queue($checkbox_num,$fnum)" />
END
}
@@ -3182,6 +2968,7 @@ sub search_results_header {
if (! exists($env{'form.mode'}) || $env{'form.mode'} ne 'edit') {
$js.=<
SCRIPT
} elsif ($env{'form.mode'} eq 'edit') {
@@ -3221,6 +3009,7 @@ END
$js.=<
SCRIPT
}
@@ -3242,6 +3032,7 @@ SCRIPT
my $inhibit_menu = "&".&Apache::loncommon::inhibit_menu_check();
$js.=<
+SCRIPT
+
+ # HTML-Markup for 'Set a link for this resource to wishlist'
+ # this is written via JavaScript document.write (function set_wishlistlink)
+ # it is split into 3 parts and the inputfields for title and path are left out
+ # these fields are inserted later to set the values for title and path
+ # automatically via JavaScript (document.title and location.pathname)
+ my %folders = &Apache::lonnet::get('wishlist',['folders']);
+ if ($folders{'folders'} eq '') {
+ $folders{'folders'} = '';
+ }
+ my $start_page_wishlistlink =
+ &Apache::loncommon::start_page('Set link to wishlist',undef,
+ {'only_body' => 1,
+ 'js_ready' => 1,
+ 'bgcolor' => '#FFFFFF',});
+
+ my $warningLink = &mt('You must insert a title!');
+
+ my $in_page_wishlistlink1 = '
'.&mt('Set a link to wishlist').'
'.
+ '';
+
+ # remove all \n for inserting on javascript document.write
+ $in_page_wishlistlink1 =~ s/\n//g;
+ $in_page_wishlistlink2 =~ s/\n//g;
+ $in_page_wishlistlink3 =~ s/\n//g;
+
+ my $end_page_wishlistlink =
+ &Apache::loncommon::end_page({'js_ready' => 1});
+
+ # Add JavaScript-function to set link for a ressource to wishlist
+ $js.=<
SCRIPT
@@ -3294,8 +3169,10 @@ sub print_frames_interface {
my $results_link = &results_link();
my $js = <
+//
JS
@@ -3382,9 +3259,13 @@ sub detailed_citation_view {
my $jumpurl=$values{'url'};
$jumpurl=~s|^/ext/|http://|;
$result .= ''.$prefix.
- ''.' '.
+ ''.' '.
''.$values{'title'}."\n";
+ 'target="preview">'.$values{'title'}."\n".
+ ''.
+ '';
$result .= "
+ target='preview'>$values{'url'}
+
+
+
+
END
foreach my $field ('title','author','domain','subject','keywords','notes',
'mimetag','language','creationdate','lastrevisiondate',
@@ -3636,7 +3531,6 @@ END
}
$result .= "
\n";
$result .= $values{'extrashow'};
- $result .= ''."\n";
return $result;
}
@@ -3710,7 +3604,6 @@ $prefix
$xml
$values{'extrashow'}
-
END
return $result;
}
@@ -3750,9 +3643,12 @@ sub output_unparsed_phrase_error {
my ($r,$closebutton,$parms,$hidden_fields,$field)=@_;
my $errorstring;
if ($field eq 'basicexp') {
- $errorstring = &mt('Unable to understand the search phrase [_1]. Please modify your search.',$env{'form.basicexp'});
+ $errorstring = &mt('Unable to understand the search phrase [_1]. Please modify your search.'
+ ,''.$env{'form.basicexp'}.'');
} else {
- $errorstring = &mt('Unable to understand the search phrase [_1]:[_2].',$field,$env{'form.'.$field});
+ $errorstring = &mt('Unable to understand the search phrase [_1]: [_2]'
+ ,''.$field.''
+ ,$env{'form.'.$field});
}
my $heading = &mt('Unparsed Field');
my $revise = &mt('Revise search request');
@@ -3766,7 +3662,7 @@ $hidden_fields
$closebutton
$heading
-
+
$errorstring
@@ -3798,23 +3694,32 @@ $parms is extra information to include i
######################################################################
sub output_blank_field_error {
my ($r,$closebutton,$parms,$hidden_fields)=@_;
- my $errormsg = &mt('You did not fill in enough information for the search to be started. You need to fill in relevant fields on the search page in order for a query to be processed.');
+ my $errormsg = &mt('You did not fill in enough information for the search to be started. You need to fill in relevant fields on the search page in order for a query to be processed.');
my $revise = &mt('Revise Search Request');
- my $heading = &mt('Unactionable Search Queary');
+ my $heading = &mt('Unactionable Search Query');
my $start_page = &Apache::loncommon::start_page('Search');
my $end_page = &Apache::loncommon::end_page();
+ if ($closebutton) {
+ $closebutton = '
$end_page
ENDPAGE
@@ -3845,16 +3750,18 @@ sub output_date_error {
# make query information persistent to allow for subsequent revision
my $start_page = &Apache::loncommon::start_page('Search');
my $end_page = &Apache::loncommon::end_page();
+ my $heading = &mt('Error');
$r->print(<
$hidden_fields
+onclick='this.form.submit();' />
$closebutton
+
-