';
+}
+
######################################################################
=pod
=over 4
-
+
=item &print_basic_search_form()
Prints the form for the basic search. Sorry the name is so cryptic.
@@ -444,19 +517,31 @@ Prints the form for the basic search. S
######################################################################
sub print_basic_search_form {
my ($r,$closebutton,$hidden_fields) = @_;
+ my %lt = &Apache::lonlocal::texthash (
+ res => 'Content Library Search',
+ portfolio => 'Portfolio Search',
+ );
my $result = ($env{'form.catalogmode'} ne 'import');
+ my $area;
my $bread_crumb =
&Apache::lonhtmlcommon::breadcrumbs('Searching','Search_Basic',
$env{'form.catalogmode'} ne 'import');
- my $scrout = &Apache::loncommon::start_page('Content Library').$bread_crumb;
-# Search form for resource space
+ my $scrout = &Apache::loncommon::start_page('Content Library').$bread_crumb.
+ '
'."\n".
+ &start_search_tabs();
if (&Apache::lonnet::allowed('bre',$env{'request.role.domain'}) eq 'F') {
- $scrout .= &setup_basic_search($r,'res',$hidden_fields,$closebutton);
- $scrout .= ' ';
- }
+ if ($env{'form.area'} eq 'portfolio') {
# Search form for accessible portfolio files
- $scrout.= &setup_basic_search($r,'portfolio',$hidden_fields,$closebutton);
- $scrout .= &Apache::loncommon::end_page();
+ $scrout .= &setup_basic_search($r,'portfolio',$hidden_fields,$closebutton);
+ } else {
+# Search form for resource space
+ $scrout .= &setup_basic_search($r,'res',$hidden_fields,$closebutton);
+ }
+ } else {
+# Search form for accessible portfolio files
+ $scrout .= &setup_basic_search($r,'portfolio',$hidden_fields,$closebutton);
+ }
+ $scrout .= &end_search_tabs().&Apache::loncommon::end_page();
$r->print($scrout);
return;
}
@@ -465,7 +550,7 @@ sub setup_basic_search {
my ($r,$area,$hidden_fields,$closebutton) = @_;
# Define interface components
my %lt = &Apache::lonlocal::texthash (
- res => 'LON-CAPA Catalog Search',
+ res => 'Content Library Search',
portfolio => 'Portfolio Search',
);
my ($userelatedwords,$onlysearchdomain,$inclext,$adv_search_link,$scrout);
@@ -495,7 +580,7 @@ sub setup_basic_search {
} else {
$singledom = $env{'user.domain'};
$disabled = ' disabled="disabled"';
- $checked = 1;
+ $checked = 1;
}
$onlysearchdomain = '';
my $countselect = &Apache::lonmeta::selectbox('show',
- $env{'form.show'},
+ $env{'form.show'},'','',
undef,
(10,20,50,100,1000,10000));
- $scrout .= ' '
+ $scrout .= ' '
.&mt('Records per Page:').' '.$countselect
- .''.$/;
+ .''.$/;
return $scrout;
}
@@ -1251,8 +1369,10 @@ sub parse_advanced_search {
}
if (! $fillflag) {
&output_blank_field_error($r,$closebutton,
- 'phase=disp_adv',$hidden_fields);
- return ;
+ 'phase=disp_adv&area='.$env{'form.area'}.
+ '&catalogmode='.$env{'form.catalogmode'},
+ $hidden_fields);
+ return;
}
# Turn the form input into a SQL-based query
my $query='';
@@ -1265,7 +1385,9 @@ sub parse_advanced_search {
&process_phrase_input($env{'form.'.$field},
$env{'form.'.$field.'_related'},$field);
if (defined($error)) {
- &output_unparsed_phrase_error($r,$closebutton,'phase=disp_adv',
+ &output_unparsed_phrase_error($r,$closebutton,
+ 'phase=disp_adv&area='.$env{'form.area'}.
+ '&catalogmode='.$env{'form.catalogmode'}.
$hidden_fields,$field);
return;
} else {
@@ -1549,7 +1671,9 @@ sub parse_basic_search {
# Check to see if enough of a query is filled in
my $search_string = $env{'form.basicexp'};
if (! &filled($search_string)) {
- &output_blank_field_error($r,$closebutton,'phase=disp_basic');
+ &output_blank_field_error($r,$closebutton,'phase=disp_basic'.
+ '&area='.$env{'form.area'}.
+ '&catalogmode='.$env{'form.catalogmode'});
return OK;
}
my $pretty_search_string=$search_string;
@@ -1565,7 +1689,9 @@ sub parse_basic_search {
$env{'form.related'},
$searchfield);
if ($error) {
- &output_unparsed_phrase_error($r,$closebutton,'phase=disp_basic',
+ &output_unparsed_phrase_error($r,$closebutton,'phase=disp_basic'.
+ '&area='.$env{'form.area'}.
+ '&catalogmode='.$env{'form.catalogmode'},
'','basicexp');
return;
}
@@ -1881,6 +2007,8 @@ sub build_date_queries {
my (undef,undef,undef,$cbday,$cbmon,$cbyear) = localtime($cbefore);
# Correct for year being relative to 1900
$cayear+=1900; $cbyear+=1900;
+ # Correct month; localtime gives month 0..11 but MySQL expects 1..12
+ $camon++; $cbmon++;
my $cquery=
'(creationdate BETWEEN '.
"'".$cayear.'-'.$camon.'-'.$caday."'".
@@ -1899,6 +2027,8 @@ sub build_date_queries {
my (undef,undef,undef,$mbday,$mbmon,$mbyear) = localtime($mbefore);
# Correct for year being relative to 1900
$mayear+=1900; $mbyear+=1900;
+ # Correct month; localtime gives month 0..11 but MySQL expects 1..12
+ $mamon++; $mbmon++;
my $mquery=
'(lastrevisiondate BETWEEN '.
"'".$mayear.'-'.$mamon.'-'.$maday."'".
@@ -2048,7 +2178,7 @@ a link to change the search query.
######################################################################
######################################################################
sub print_sort_form {
- my ($r,$pretty_query_string) = @_;
+ my ($r,$pretty_query_string,$target) = @_;
##
my %SortableFields=&Apache::lonlocal::texthash(
@@ -2081,29 +2211,20 @@ sub print_sort_form {
&Apache::lonnet::logthis(&Apache::lonmysql::get_error());
return;
}
- my $js =<
-// $target};
}
-// ]]>
-
-END
-
- my $start_page = &Apache::loncommon::start_page('Results');
+ my $start_page = &Apache::loncommon::start_page('Results',undef,$args);
my $breadcrumbs=
&Apache::lonhtmlcommon::breadcrumbs('Searching','Searching',
- $env{'form.catalogmode'} ne 'import');
-
+ $env{'form.catalogmode'} ne 'import',
+ '','','','','','',$target);
my $result = <
+
'.&Apache::loncommon::end_page());
return;
}
@@ -2262,7 +2383,8 @@ SCRIPT
sub reload_result_frame {
my ($r) = @_;
my $newloc = '/adm/searchcat?phase=results&persistent_db_id='.
- $env{'form.persistent_db_id'};
+ $env{'form.persistent_db_id'}.'&area='.$env{'form.area'}.
+ '&catalogmode='.$env{'form.catalogmode'};
$r->print(<
SCRIPT
# }
@@ -2660,7 +2791,8 @@ sub display_results {
if (!defined($viewfunction)) {
$r->print('
'
.&mt('Internal Error - Bad view selected.')
- .'
'."\n");
+ .''."\n"
+ .'
'.&Apache::loncommon::end_page());
$r->rflush();
return;
}
@@ -2671,7 +2803,8 @@ sub display_results {
##
## Get the catalog controls setup
##
- my $action = "/adm/searchcat?phase=results";
+ my $action = '/adm/searchcat?phase=results&area='.$env{'form.area'}.
+ '&catalogmode='.$env{'form.catalogmode'};
##
## Deal with import by opening the import db file.
if ($env{'form.catalogmode'} eq 'import') {
@@ -2682,15 +2815,15 @@ sub display_results {
$r->print('
'.
&mt('Unable to save import results.').
'
'.
- ''.
+ ''.
&Apache::loncommon::end_page());
$r->rflush();
return;
- }
+ }
# untie %groupsearch_db if the connection gets aborted before the end
$r->register_cleanup(sub {
untie %groupsearch_db if (tied(%groupsearch_db));
- });
+ });
}
##
## Prepare the table for querying
@@ -2703,7 +2836,7 @@ sub display_results {
$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);
@@ -2808,17 +2941,18 @@ sub display_results {
$env{'form.sortorder'}='asc';
}
}
- my $sortform = ''
- .&mt('Sort by:').' '
+ my $sortform = ''
+ .&mt('Sort by:').' '
.&Apache::loncommon::select_form($env{'form.sortfield'},
- 'sortfield',
- \%sort_fields)
+ 'sortfield',
+ \%sort_fields,'','','',
+ 'LC_sortby')
.' '
.&Apache::loncommon::select_form($env{'form.sortorder'},
- 'sortorder',
- {asc =>&mt('Ascending'),
- desc=>&mt('Descending')
- })
+ 'sortorder',
+ {asc =>&mt('Ascending'),
+ desc=>&mt('Descending')
+ },'','','','LC_sortby')
.'';
##
## Display links for 'prev' and 'next' pages (if necessary) and Display Options
@@ -2832,15 +2966,15 @@ sub display_results {
);
if ($total_results == 0) {
- $r->print('