--- loncom/interface/lonsearchcat.pm 2005/04/07 07:34:52 1.245 +++ loncom/interface/lonsearchcat.pm 2006/02/07 19:46:30 1.252 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Search Catalog # -# $Id: lonsearchcat.pm,v 1.245 2005/04/07 07:34:52 albertel Exp $ +# $Id: lonsearchcat.pm,v 1.252 2006/02/07 19:46:30 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -283,12 +283,7 @@ END ## Sanity checks on form elements ## if (!defined($env{'form.viewselect'})) { - if (($env{'form.catalogmode'} eq 'groupsearch') || - ($env{'form.catalogmode'} eq 'interactive')) { - $env{'form.viewselect'} ="Compact View"; - } else { - $env{'form.viewselect'} ="Detailed Citation View"; - } + $env{'form.viewselect'} ="summary"; } $env{'form.phase'} = 'disp_basic' if (! exists($env{'form.phase'})); $env{'form.show'} = 20 if (! exists($env{'form.show'})); @@ -708,6 +703,10 @@ sub print_basic_search_form { ), $r->dir_config('lonDefDomain') ).''; + my $inclext= ''; my $adv_search_link = ''. @@ -860,10 +860,12 @@ ENDHEADER 'abstract' => 1, 'standards'=> 1, 'mime' => 1, + 'subject' => 1, ); # - foreach my $field ('title','author','owner','authorspace','modifyinguser', - 'keywords','notes','abstract','standards','mime') { + foreach my $field ('title','author','subject','owner','authorspace', + 'modifyinguser','keywords','notes','abstract', + 'standards','mime') { $scrout.=''.&titlefield($fields{$field}).''. &Apache::lonmeta::prettyinput($field, $env{'form.'.$field}, @@ -900,7 +902,10 @@ ENDHEADER &titlefield(&mt('Domains')).''. &Apache::loncommon::domain_select('domains', $env{'form.domains'},1). - ''.$/; + '
'.$/; # # Misc metadata $scrout.=''. @@ -1537,8 +1542,10 @@ sub parse_advanced_search { ## my ($libraries_to_query,$pretty_domains_string,$domain_sql_restriction) = &parse_domain_restrictions(); - push(@queries,$domain_sql_restriction); - $pretty_search_string .= $pretty_domains_string."
\n"; + if ((defined($domain_sql_restriction)) && ($domain_sql_restriction ne '')) { + push(@queries,$domain_sql_restriction); + $pretty_search_string .= $pretty_domains_string."
\n"; + } # if (@queries) { $query="SELECT * FROM metadata WHERE (".join(") AND (",@queries).')'; @@ -2286,7 +2293,7 @@ sub update_status { } { - my $max_time = 40; # seconds for the search to complete + my $max_time = 300; # seconds for the search to complete my $start_time = 0; my $last_time = 0; @@ -2520,8 +2527,11 @@ END my %Fields = &parse_raw_result($result,$server); $Fields{'hostname'} = $server; # + # Skip if external and we did not want that + next if ((! $env{'form.inclext'}) && ($Fields{'url'}=~/^\/ext\//)); # Skip based on copyright next if (! ©right_check(\%Fields)); + # # Store the result in the mysql database my $result = &Apache::lonmysql::store_row($table,\%Fields); @@ -2723,7 +2733,15 @@ sub display_results { } my %sort_fields = map {$_->{'key'},$_->{'desc'}} @fields; $sort_fields{'select_form_order'} = \@field_order; - $env{'form.sortorder'} = 'asc' if (! exists($env{'form.sortorder'})); + $env{'form.sortorder'} = 'desc' if (! exists($env{'form.sortorder'})); + $env{'form.sortfield'} = 'count' if (! exists($env{'form.sortfield'})); + if (! exists($env{'form.sortorder'})) { + if ($env{'form.sortfield'}=~/^(count|stdno|disc|clear|technical|correct|helpful)$/) { + $env{'form.sortorder'}='desc'; + } else { + $env{'form.sortorder'}='asc'; + } + } my $sortform = &mt('Sort by [_1] [_2]', &Apache::loncommon::select_form($env{'form.sortfield'}, 'sortfield', @@ -2774,7 +2792,7 @@ sub display_results { exists($sort_fields{$env{'form.sortfield'}})) { $sort_command = $env{'form.sortfield'}.' IS NOT NULL '. 'ORDER BY '.$env{'form.sortfield'}.' '.$order. - ' LIMIT '.($min-1).','.($max-$min); + ' LIMIT '.($min-1).','.($max-$min+1); } my @Results = &Apache::lonmysql::get_rows($table,$sort_command); ## @@ -3220,9 +3238,11 @@ extra custom metadata to show. sub detailed_citation_view { my ($prefix,%values) = @_; my $result; + my $jumpurl=$values{'url'}; + $jumpurl=~s/^\/ext\//http\:\/\//; $result .= ''.$prefix. ''.' '. - '
'.$values{'title'}."\n"; $result .= "

\n"; $result .= ''.$values{'author'}.','. @@ -3291,7 +3311,7 @@ sub detailed_citation_view { foreach my $item (split(',',$values{$field->{'name'}})){ $result .= '

  • '. ''.$item.'
  • '; + 'href="'.$jumpurl.'">'.$item.''; } $result .= ''; } elsif (exists($field->{'format'}) && $field->{'format'} ne ''){ @@ -3302,7 +3322,7 @@ sub detailed_citation_view { if ($field->{'special'} eq 'url link') { $result.= &mt($field->{'translate'}, - ''. $values{$field->{'name'}}. ''); @@ -3350,8 +3370,11 @@ sub summary_view { if (! defined($tmp)) { $tmp = 'undefined'; } $result .= ' '.$tmp.' '; } + my $jumpurl=$values{'url'}; + $jumpurl=~s/^\/ext\//http\:\/\//; + $result.=<$values{'title'}
    $values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}
    $values{'copyrighttag'}
    @@ -3375,6 +3398,9 @@ END ###################################################################### sub compact_view { my ($prefix,%values) = @_; + my $jumpurl=$values{'url'}; + $jumpurl=~s/^\/ext\//http\:\/\//; + my $result = $prefix.''; if (exists($env{'form.sortfield'}) && @@ -3383,9 +3409,9 @@ sub compact_view { if (! defined($tmp)) { $tmp = 'undefined'; } $result .= ' '.$tmp.' '; } - $result.=' '. + $result.=' '. $values{'title'}.''.(' 'x2). - ''.$values{'author'}.'
    '; + ''.$values{'author'}.' ('.$values{'domain'}.')
    '; return $result; } @@ -3405,11 +3431,14 @@ sub fielded_format_view { my ($prefix,%values) = @_; my $icon=&Apache::loncommon::icon($values{'url'}); my %Translated = &Apache::lonmeta::fieldnames(); + my $jumpurl=$values{'url'}; + $jumpurl=~s/^\/ext\//http\:\/\//; + my $result=<
    URL:
    -
    $values{'url'}
    END foreach my $field ('title','author','domain','subject','keywords','notes', @@ -3710,6 +3739,7 @@ sub cleanup { } &untiehash(); &Apache::lonmysql::disconnect_from_db(); + return OK; } __END__