--- loncom/interface/lonsearchcat.pm 2022/05/29 21:59:55 1.331.4.16.2.1 +++ loncom/interface/lonsearchcat.pm 2014/02/22 18:12:09 1.342 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.331.4.16.2.1 2022/05/29 21:59:55 raeburn Exp $ +# $Id: lonsearchcat.pm,v 1.342 2014/02/22 18:12:09 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -78,7 +78,6 @@ use Apache::lonnavmaps; use Apache::lonindexer(); use Apache::lonwishlist(); use LONCAPA; -use Time::HiRes qw(sleep); ###################################################################### ###################################################################### @@ -144,7 +143,7 @@ sub handler { ## this once, so the pause indicator is deleted ## if (exists($env{'form.pause'})) { - sleep(0.1); + sleep(1); delete($env{'form.pause'}); } ## @@ -178,15 +177,6 @@ sub handler { if (@allowed_searches ==2) { $crumb_text = 'Portfolio and Catalog Search'; } - my $target = '_top'; - if ((($env{'request.lti.login'}) && ($env{'request.lti.target'} eq 'iframe')) || - (($env{'request.deeplink.login'}) && ($env{'request.deeplink.target'} eq '_self'))) { - if ($env{'form.phase'} =~ /^(sort|run_search)$/) { - $target = '_parent'; - } else { - $target = '_self'; - } - } &Apache::lonhtmlcommon::add_breadcrumb ({href=>'/adm/searchcat?'. &Apache::loncommon::inhibit_menu_check(). @@ -194,7 +184,7 @@ sub handler { '&launch='.$env{'form.launch'}. '&mode='.$env{'form.mode'}, text=>"$crumb_text", - target=>$target, + target=>'_top', bug=>'Searching',}); # if ($env{'form.phase'} !~ m/(basic|adv|course)_search/) { @@ -203,7 +193,7 @@ sub handler { &Apache::lonnet::logthis('lonsearchcat:'. 'Unable to recover data from '. $persistent_db_file); - my $msg = + my $msg = &mt('We were unable to retrieve data describing your search.'). ' '.&mt('This is a serious error and has been logged.'). '
'. @@ -337,10 +327,10 @@ END ['query','customquery','customshow', 'libraries','pretty_string','domains']); if ($env{'form.phase'} eq 'sort') { - &print_sort_form($r,$pretty_string,$target); + &print_sort_form($r,$pretty_string); } elsif ($env{'form.phase'} eq 'run_search') { &run_search($r,$query,$customquery,$customshow, - $libraries,$pretty_string,$env{'form.area'},$domainsref,$target); + $libraries,$pretty_string,$env{'form.area'},$domainsref); } } elsif(($env{'form.phase'} eq 'basic_search') || ($env{'form.phase'} eq 'adv_search')) { @@ -442,7 +432,7 @@ sub hidden_field { =pod =over 4 - + =item &print_basic_search_form() Prints the form for the basic search. Sorry the name is so cryptic. @@ -488,31 +478,14 @@ sub setup_basic_search { .&mt('use related words') .''; - my $anydom = 1; - if ($area eq 'res') { - unless (&Apache::lonnet::allowed('bre','/res/') eq 'F') { - $anydom = 0; - } - } - my $singledom; - my ($disabled,$checked); - if ($anydom) { - $singledom = $r->dir_config('lonDefDomain'); - if ($env{'form.domains'} eq $singledom) { - $checked = 1; - } - } else { - $singledom = $env{'user.domain'}; - $disabled = ' disabled="disabled"'; - $checked = 1; - } $onlysearchdomain = ''; $adv_search_link = '{'url'}); # Check for priv - if ($Metadata->{'copyright'} eq 'priv') { - unless (($env{'user.name'} eq $resname) && - ($env{'user.domain'} eq $resdom)) { - return 0; - } + if (($Metadata->{'copyright'} eq 'priv') && + (($env{'user.name'} ne $resname) && + ($env{'user.domain'} ne $resdom))) { + return 0; } # Check for domain if (($Metadata->{'copyright'} eq 'domain') && @@ -2061,7 +2017,7 @@ a link to change the search query. ###################################################################### ###################################################################### sub print_sort_form { - my ($r,$pretty_query_string,$target) = @_; + my ($r,$pretty_query_string) = @_; ## my %SortableFields=&Apache::lonlocal::texthash( @@ -2108,20 +2064,15 @@ sub print_sort_form { END - my $args; - if ($target eq '_parent') { - $args = {'links_target' => $target}; - } - my $start_page = &Apache::loncommon::start_page('Results',undef,$args); + my $start_page = &Apache::loncommon::start_page('Results',$js); my $breadcrumbs= &Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', - $env{'form.catalogmode'} ne 'import', - '','','','','','',$target); + $env{'form.catalogmode'} ne 'import'); my $result = < +
END @@ -2277,21 +2228,8 @@ SCRIPT $r->rflush(); } -sub reload_result_frame { - my ($r) = @_; - my $newloc = '/adm/searchcat?phase=results&persistent_db_id='. - $env{'form.persistent_db_id'}; - $r->print(< - parent.update_results("$newloc"); - -SCRIPT - - $r->rflush(); -} - { - my $max_time = 60; # seconds for the search to complete + my $max_time = 300; # seconds for the search to complete my $start_time = 0; my $last_time = 0; @@ -2372,7 +2310,7 @@ results into MySQL. ###################################################################### sub run_search { my ($r,$query,$customquery,$customshow,$serverlist, - $pretty_string,$area,$domainsref,$target) = @_; + $pretty_string,$area,$domainsref) = @_; my $tabletype = 'metadata'; if ($area eq 'portfolio') { $tabletype = 'portfolio_search'; @@ -2381,15 +2319,10 @@ sub run_search { # # Print run_search header # - my $args; - if ($target eq '_parent') { - $args = {'links_target' => $target}; - } - my $start_page = &Apache::loncommon::start_page('Search Status',undef,$args); + my $start_page = &Apache::loncommon::start_page('Search Status',undef); my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Searching','Searching', - $env{'form.catalogmode'} ne 'import', - '','','','','','',$target); + $env{'form.catalogmode'} ne 'import'); $r->print(<aborted()); - if ($oldhitcountsum < $hitcountsum) { - &update_count_status($r,$hitcountsum); - if (($hitcountsum <= $env{'form.show'}) || - (!$displaycount && $hitcountsum)) { - reload_result_frame($r); - $displaycount = $hitcountsum; - } - $oldhitcountsum = $hitcountsum; - } + &update_count_status($r,$hitcountsum); } last if ($connection->aborted()); &update_seconds($r); @@ -2703,8 +2626,6 @@ sub display_results { if ($env{'form.catalogmode'} eq 'import') { if (! tie(%groupsearch_db,'GDBM_File',$diropendb, &GDBM_WRCREAT(),0640)) { - # NOTE: this can happen when a previous request to searchcat?phase=results gets interrupted - # (%groupsearch_db is not untied) $r->print('

'. &mt('Unable to save import results.'). '

'. @@ -2712,11 +2633,7 @@ sub display_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 @@ -2858,7 +2775,8 @@ sub display_results { ); if ($total_results == 0) { - $r->print('

'.&mt('There are currently no results.').'

'. + $r->print(''. + '

'.&mt('There are currently no results.').'

'. "". &Apache::loncommon::end_page()); return; @@ -3231,14 +3149,6 @@ SCRIPT SCRIPT - $js.=< - \$(document).ready(function() { - parent.done_loading_results(); - }); - -SCRIPT - my $start_page = &Apache::loncommon::start_page(undef,$js, {'only_body' =>1, 'add_wishlist' =>1, @@ -3272,26 +3182,6 @@ sub print_frames_interface { // JS @@ -3404,7 +3294,7 @@ sub detailed_citation_view { ''.$prefix. ''.' '. '
'.$values{'title'}."\n". + 'target="preview">'.$values{'title'}."\n". &display_tools($values{'title'}, $jumpurl). "

\n". ''.$values{'author'}.','. @@ -3537,7 +3427,7 @@ sub summary_view { my $link = '
'.&display_url($jumpurl,1).'
'; $result .= ''.$values{'title'}.''. + ' target="preview">'.$values{'title'}.''. &display_tools($values{'title'}, $jumpurl).< $link
@@ -3583,7 +3473,7 @@ sub compact_view { } $jumpurl = &HTML::Entities::encode($jumpurl,'<>&"'); $result.=' '. - ''. + ''. &HTML::Entities::encode($values{'title'},'<>&"').' '. &display_tools($values{'title'}, $jumpurl). $link.' '.$values{'author'}.' ('.$values{'domain'}.')'; @@ -3599,17 +3489,12 @@ sub display_url { } elsif ($url=~m{^(http://|/uploaded/)}) { $link=''.$url.''; } else { - # replace the links to open in a new window - # (because the search opens in a new window, it gets - # confusing when the links open a tab in the - # parent window; ideally we should not force windows) - my $onclick = " onclick=\"window.open(this.href, '_blank', 'toolbar=1,location=1,menubar=0');return false;\""; $link=&Apache::lonhtmlcommon::crumbs( $url, 'preview', '', - '', - $skiplast,$onclick).' '; + (($env{'form.catalogmode'} eq 'import')?'parent.statusframe.document.forms.statusform':''), + $skiplast).' '; } return $link; } @@ -3915,7 +3800,7 @@ Cleans the global %groupsearch_db by rem ###################################################################### sub start_fresh_session { delete $groupsearch_db{'mode_catalog'}; - foreach (keys(%groupsearch_db)) { + foreach (keys %groupsearch_db) { if ($_ =~ /^pre_/) { delete $groupsearch_db{$_}; }