Diff for /loncom/interface/lonsearchcat.pm between versions 1.313 and 1.326

version 1.313, 2009/07/31 16:01:48 version 1.326, 2010/08/25 12:38:45
Line 118  sub handler { Line 118  sub handler {
                       # This is set and used in &handler() and is also used in                         # This is set and used in &handler() and is also used in 
                       # &output_results().                        # &output_results().
   
     my $loaderror=&Apache::lonnet::overloaderror($r);  
     if ($loaderror) { return $loaderror; }  
     #      #
     my $closebutton;  # button that closes the search window       my $closebutton;  # button that closes the search window 
                       # This button is different for the RAT compared to                        # This button is different for the RAT compared to
Line 268  sub handler { Line 266  sub handler {
     if ($env{'form.catalogmode'} eq 'interactive') {      if ($env{'form.catalogmode'} eq 'interactive') {
         $closebutton="<input type='button' name='close' value='".&mt('Close')."' ";          $closebutton="<input type='button' name='close' value='".&mt('Close')."' ";
         if ($env{'form.phase'} =~ /(results|run_search)/) {          if ($env{'form.phase'} =~ /(results|run_search)/) {
     $closebutton .="onclick='parent.close()'";              $closebutton .="onclick='parent.close()'";
         } else {          } else {
             $closebutton .="onclick='self.close()'";              $closebutton .="onclick='self.close()'";
         }          }
         $closebutton .=">\n";          $closebutton .=" />\n";
     } elsif ($env{'form.catalogmode'} eq 'import') {      } elsif ($env{'form.catalogmode'} eq 'import') {
         $closebutton="<input type='button' name='close' value='".&mt('Close')."' ";          $closebutton="<input type='button' name='close' value='".&mt('Close')."' ";
         if ($env{'form.phase'} =~ /(results|run_search)/) {          if ($env{'form.phase'} =~ /(results|run_search)/) {
     $closebutton .="onclick='parent.close()'";              $closebutton .="onclick='parent.close()'";
         } else {          } else {
             $closebutton .="onclick='self.close()'";              $closebutton .="onclick='self.close()'";
         }          }
         $closebutton .= ">";          $closebutton .= " />";
         my $txt_import = &mt('IMPORT');          my $txt_import = &mt('IMPORT');
         $importbutton=<<END;          $importbutton=<<END;
 <input type='button' name='import' value='$txt_import'  <input type='button' name='import' value='$txt_import'
 onclick='javascript:select_group()'>  onclick='javascript:select_group()' />
 END  END
     } else {      } else {
         $closebutton = '';          $closebutton = '';
Line 324  END Line 322  END
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check().              ({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check().
                   '&amp;phase=disp_adv'.                    '&amp;phase=disp_adv'.
                   'catalogmode='.$env{'form.catalogmode'}.                    '&amp;catalogmode='.$env{'form.catalogmode'}.
                   '&amp;launch='.$env{'form.launch'}.                    '&amp;launch='.$env{'form.launch'}.
                   '&amp;mode='.$env{'form.mode'},                    '&amp;mode='.$env{'form.mode'},
                   text=>"Course Search",                    text=>"Course Search",
Line 492  sub course_search { Line 490  sub course_search {
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check().          ({href=>'/adm/searchcat?'.&Apache::loncommon::inhibit_menu_check().
               '&amp;phase=disp_adv'.                '&amp;phase=disp_adv'.
               'catalogmode='.$env{'form.catalogmode'}.                '&amp;catalogmode='.$env{'form.catalogmode'}.
               '&amp;launch='.$env{'form.launch'}.                '&amp;launch='.$env{'form.launch'}.
               '&amp;mode='.$env{'form.mode'},                '&amp;mode='.$env{'form.mode'},
               text=>"Course Search",                text=>"Course Search",
Line 770  sub setup_basic_search { Line 768  sub setup_basic_search {
                               portfolio => 'Portfolio Search',                                portfolio => 'Portfolio Search',
     );      );
     my ($userelatedwords,$onlysearchdomain,$inclext,$adv_search_link,$scrout);      my ($userelatedwords,$onlysearchdomain,$inclext,$adv_search_link,$scrout);
     $userelatedwords = '<label>'.&mt('[_1] use related words',  
       &Apache::lonhtmlcommon::checkbox('related',$env{'form.related'},'related')).      $userelatedwords = '<label>'
                        '</label>';                        .&Apache::lonhtmlcommon::checkbox(
     $onlysearchdomain = '<label>'.&mt('[_1] only search domain [_2]',                             'related',
       &Apache::lonhtmlcommon::checkbox('domains',$env{'form.domains'},                             $env{'form.related'},
                                        $r->dir_config('lonDefDomain')),                             'related')
       $r->dir_config('lonDefDomain')).                        .' '
                         '</label>';                       .&mt('use related words')
                        .'</label>';
   
       $onlysearchdomain = '<label>'
                          .&Apache::lonhtmlcommon::checkbox(
                              'domains',
                              $env{'form.domains'},
                              $r->dir_config('lonDefDomain'))
                          .' '
                          .&mt('only search domain [_1]'
                                  ,'<b>'.$r->dir_config('lonDefDomain').'</b>')
                          .'</label>';
   
     $adv_search_link = '<a href="/adm/searchcat?'.      $adv_search_link = '<a href="/adm/searchcat?'.
                &Apache::loncommon::inhibit_menu_check().                 &Apache::loncommon::inhibit_menu_check().
        '&amp;phase=disp_adv'.         '&amp;phase=disp_adv'.
Line 856  sub print_advanced_search_form{ Line 866  sub print_advanced_search_form{
        'reset' => 'Reset',         'reset' => 'Reset',
        'help' => 'Help');         'help' => 'Help');
     my $advanced_buttons=<<"END";      my $advanced_buttons=<<"END";
   <p>
 <input type="submit" name="advancedsubmit" value='$lt{"srch"}' />  <input type="submit" name="advancedsubmit" value='$lt{"srch"}' />
 <input type="reset" name="reset" value='$lt{"reset"}' />  <input type="reset" name="reset" value='$lt{"reset"}' />
 $closebutton  $closebutton
   </p>
 END  END
     my $srchtype = 'Catalog';      my $srchtype = 'Catalog';
     my $jscript;      my $jscript;
Line 878  function additional_metadata() { Line 890  function additional_metadata() {
     }      }
     my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search",      my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search",
                                                $jscript);                                                 $jscript);
     $scrout .= <<"ENDHEADER";      $scrout .= $bread_crumb;
 $bread_crumb  
 <form method="post" action="/adm/searchcat" name="advsearch">      $scrout .= '<form method="post" action="/adm/searchcat" name="advsearch">'
 <p>                .$hidden_fields 
 $advanced_buttons                .'<input type="hidden" name="phase" value="adv_search" />';
 ENDHEADER  
     $scrout.=('&nbsp;'x2).&viewoptions().'</p>'.$hidden_fields.       $scrout .= '<fieldset>'."\n"
         '<input type="hidden" name="phase" value="adv_search" />';                .'<legend>'.&mt('Display Options').'</legend>'."\n"
                 .&viewoptions()
                 .'</fieldset>';
   
       $scrout .= $advanced_buttons;
   
       $scrout .= &Apache::lonhtmlcommon::start_pick_box();
   
     my %fields=&Apache::lonmeta::fieldnames();      my %fields=&Apache::lonmeta::fieldnames();
     #  
     $scrout .= '<h3>'.&mt("Standard $srchtype Metadata").'</h3>';      # Standard Metadata
     $scrout .= "<table>\n";      $scrout .= &Apache::lonhtmlcommon::row_headline()
     $scrout .= '<tr><td>&nbsp;</td><td colspan="2"><font size="-1">'.                .'<h3>'.&mt("Standard $srchtype Metadata").'</h3>'
         ('&nbsp;'x2).&searchhelp()."</font></td></tr>\n";                .&searchhelp()
                 .&Apache::lonhtmlcommon::row_closure();
     my %related_word_search =       my %related_word_search = 
         ('title'    => 1,          ('title'    => 1,
          'author'   => 0,           'author'   => 0,
Line 903  ENDHEADER Line 923  ENDHEADER
          'abstract' => 1,           'abstract' => 1,
          'standards'=> 1,           'standards'=> 1,
          'mime'     => 1,           'mime'     => 1,
  'subject'  => 1,           'subject'  => 1,
          );           );
     #      #
     foreach my $field ('title','author','subject','owner','authorspace',      foreach my $field ('title','author','subject','owner','authorspace',
        'modifyinguser','keywords','notes','abstract',                         'modifyinguser','keywords','notes','abstract',
        'standards','mime') {                         'standards','mime') {
  $scrout.='<tr><td align="right">'.&titlefield($fields{$field}).'</td><td>'.          $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield($fields{$field}))
     &Apache::lonmeta::prettyinput($field,                    .&Apache::lonmeta::prettyinput($field,
                                           $env{'form.'.$field},                                            $env{'form.'.$field},
                                           $field,                                            $field,
                                           'advsearch',                                            'advsearch',
   $related_word_search{$field},                                            $related_word_search{$field},
                                           '</td><td align="left">',                                            '',
                                           $env{'form.'.$field.'_related'},                                            $env{'form.'.$field.'_related'},
                                           50);                                            50);
         if ($related_word_search{$field}) {          if ($related_word_search{$field}) {
             $scrout .= &mt('related words');              $scrout .= &mt('related words');
         } else {          } else {
             $scrout .= '</td><td>&nbsp;';              $scrout .= '';
         }          }
         $scrout .= '</td></tr>'.$/;          $scrout .= &Apache::lonhtmlcommon::row_closure();
     }      }
     foreach my $field ('lowestgradelevel','highestgradelevel') {      foreach my $field ('lowestgradelevel','highestgradelevel') {
  $scrout.='<tr>'.          $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield($fields{$field}))
             '<td align="right">'.&titlefield($fields{$field}).'</td>'.                    .&Apache::lonmeta::prettyinput($field,
             '<td colspan="2">'.  
     &Apache::lonmeta::prettyinput($field,  
                                           $env{'form.'.$field},                                            $env{'form.'.$field},
                                           $field,                                            $field,
                                           'advsearch',                                            'advsearch',
   0).                                            0)
                                           '</td></tr>'.$/;                    .&Apache::lonhtmlcommon::row_closure();
     }      }
     $scrout.='<tr><td align="right">'.  
  &titlefield(&mt('MIME Type Category')).'</td><td colspan="2">'.       $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('MIME Type Category')))
     &Apache::loncommon::filecategoryselect('category',                .&Apache::loncommon::filecategoryselect('category',
    $env{'form.category'}).                     $env{'form.category'})
     '</td></tr>'.$/;                .&Apache::lonhtmlcommon::row_closure();
     $scrout.='<tr><td align="right" valign="top">'.  
  &titlefield(&mt('Domains')).'</td><td colspan="2">'.       $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Domains')))
     &Apache::loncommon::domain_select('domains',                .&Apache::loncommon::domain_select('domains',
    $env{'form.domains'},1).                     $env{'form.domains'},1)
    '<br />';                .&Apache::lonhtmlcommon::row_closure();
      $scrout .= '</td></tr>'.$/;  
     #  
     # Misc metadata      # Misc metadata
     if ($env{'form.area'} ne 'portfolio') {      if ($env{'form.area'} ne 'portfolio') {
         $scrout.='<tr><td align="right" valign="top">'.          $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Copyright/Distribution')))
          &titlefield(&mt('Copyright/Distribution')).                    .&Apache::lonmeta::selectbox('copyright',
                  '</td><td colspan="2">'.  
                  &Apache::lonmeta::selectbox('copyright',  
                                              $env{'form.copyright'},                                               $env{'form.copyright'},
                                 \&Apache::loncommon::copyrightdescription,                                  \&Apache::loncommon::copyrightdescription,
                                        ( undef,                                         ( undef,
                                         &Apache::loncommon::copyrightids)                                          &Apache::loncommon::copyrightids)
                                 ).'</td></tr>'.$/;                                  )
                     .&Apache::lonhtmlcommon::row_closure();
     }      }
     $scrout.='<tr><td align="right" valign="top">'.  
  &titlefield(&mt('Language')).'</td><td colspan="2">'.      $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt('Language')))
         &Apache::lonmeta::selectbox('language',                .&Apache::lonmeta::selectbox('language',
                                     $env{'form.language'},                                      $env{'form.language'},
                                     \&Apache::loncommon::languagedescription,                                      \&Apache::loncommon::languagedescription,
                                     ('any',&Apache::loncommon::languageids)                                      ('any',&Apache::loncommon::languageids)
                                     ).'</td></tr>';                                      )
     $scrout .= "</table>\n";                .&Apache::lonhtmlcommon::row_closure();
   
           
       # Portfolio Metadata
     if ($env{'form.area'} eq 'portfolio') {      if ($env{'form.area'} eq 'portfolio') {
         # Added fields          # Added fields
         my $curnumadd = $env{'form.numaddedfields'};          my $curnumadd = $env{'form.numaddedfields'};
         if ($curnumadd eq '') {          if ($curnumadd eq '') {
             $curnumadd = 1;              $curnumadd = 1;
         }          }
         $scrout .= '<h3>'.&mt('Custom Metadata fields').'</h3>';          $scrout .= &Apache::lonhtmlcommon::row_headline()
         $scrout .= "<table>\n";                    .'<h3>'.&mt('Custom Metadata fields').'</h3>'
         $scrout .= '<tr><td>&nbsp;</td><td align="center">'.                    .&Apache::lonhtmlcommon::row_closure()
                    &mt('Field Name').'</td>'.'<td align="center">'.                    .&Apache::lonhtmlcommon::row_title('')
                    &mt('Field Value(s)').'</td></tr>';                    .&mt('Field Name').' | '.&mt('Field Value(s)')
                     .&Apache::lonhtmlcommon::row_closure();
   
         for (my $j=0; $j<$curnumadd; $j++) {          for (my $j=0; $j<$curnumadd; $j++) {
             my $num = $j+1;              my $num = $j+1;
             $scrout .= '<tr><td>'.&mt('Custom metadata [_1]: ',$num).              $scrout .= &Apache::lonhtmlcommon::row_title(&mt('Custom metadata [_1]',$num))
                        '</td><td align="center">'.                        .'<input type="text"'
                        '<input type="text" name="addedfield_'.$j.                        .' name="addedfield_'.$j.'" size="10"'
                        '" size="10" value="'.$env{'form.addedfield_'.$j}.                        .' value="'.$env{'form.addedfield_'.$j}.'" />'
                        '" /></td>'.                        .' '
                        '<td align="center"><input type="text" '.                        .'<input type="text" '
                        'name="addedvalues_'.$j.'" size="15" value="'.                        .'name="addedvalues_'.$j.'" size="15"'
                        $env{'form.addedvalues_'.$j}.'" /></td></tr>';                        .' value="'.$env{'form.addedvalues_'.$j}.'" />'
         }                        .&Apache::lonhtmlcommon::row_closure();
         $scrout .= '<tr><td align="left" colspan="3"><label>'.          }
                    '<input type="checkbox" name="newfield" '.          $scrout .= &Apache::lonhtmlcommon::row_title('')
                    'value="1" onclick="javascript:additional_metadata()" />'.                    .'<label>'
                    &mt('Another custom field/value pair?').'</label>'.                    .'<input type="checkbox" name="newfield"'
                    '<input type="hidden" name="numaddedfields" value="'.                    .' value="1" onclick="javascript:additional_metadata()" />'
                    $curnumadd.'" /></td></tr></table>';                    .&mt('Another custom field/value pair?').'</label>'
     } else {                    .'<input type="hidden" name="numaddedfields"'
                     .' value="'.$curnumadd.'" />'
                     .&Apache::lonhtmlcommon::row_closure();
   } else {
         #          #
         # Dynamic metadata          # Dynamic metadata
         $scrout .= '<h3>'.&mt('Problem Statistics').'</h3>';          $scrout .= &Apache::lonhtmlcommon::row_headline()
         $scrout .= "<table>\n";                    .'<h3>'.&mt('Problem Statistics').'</h3>'
         $scrout .= '<tr><td>&nbsp;</td><td align="center">'.                    .&Apache::lonhtmlcommon::row_closure();
                    &mt('Minimum').'</td>'.'<td align="center">'.          $scrout .= &Apache::lonhtmlcommon::row_title('')
                    &mt('Maximum').'</td></tr>'."\n";                    .&mt('Minimum').' | '.&mt('Maximum')
                     .&Apache::lonhtmlcommon::row_closure();
         foreach my $statistic           foreach my $statistic 
             ({ name=>'count',              ({ name=>'count',
                description=>'Network-wide number of accesses (hits)',},                 description=>'Network-wide number of accesses (hits)',},
Line 1019  ENDHEADER Line 1040  ENDHEADER
                description=>'Degree of difficulty',},                 description=>'Degree of difficulty',},
              { name => 'disc',               { name => 'disc',
                description=>'Degree of discrimination'}) {                 description=>'Degree of discrimination'}) {
               $scrout .= '<tr><td align="right">'.                $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt($statistic->{'description'})))
                          &titlefield(&mt($statistic->{'description'})).                          .'<input type="text" name="'.$statistic->{'name'}
                          '</td><td align="center">'.                          .'_min" value="" size="6" />'
                          '<input type="text" name="'.$statistic->{'name'}.                          .' '
                          '_min" value="" size="6" /></td><td align="center">'.                          .'<input type="text" name="'.$statistic->{'name'}
                          '<input type="text" name="'.$statistic->{'name'}.                          .'_max" value="" size="6" />'
                          '_max" value="" size="6" /></td></tr>'.$/;                          .&Apache::lonhtmlcommon::row_closure();
         }          }
         $scrout .= "</table>\n";  
         $scrout .= '<h3>'.&mt('Evaluation Data').'</h3>';          $scrout .= &Apache::lonhtmlcommon::row_headline()
         $scrout .= "<table>\n";                    .'<h3>'.&mt('Evaluation Data').'</h3>'
         $scrout .= '<tr><td>&nbsp;</td><td align="center">'.                    .&Apache::lonhtmlcommon::row_closure();
                    &mt('Minimum').'</td>'.'<td align="center">'.          $scrout .= &Apache::lonhtmlcommon::row_title('')
                    &mt('Maximum').'</td></tr>'."\n";                    .&mt('Minimum').' | '.&mt('Maximum')
                     .&Apache::lonhtmlcommon::row_closure();
         foreach my $evaluation          foreach my $evaluation
             ( { name => 'clear',              ( { name => 'clear',
                 description => 'Material presented in clear way'},                  description => 'Material presented in clear way'},
Line 1044  ENDHEADER Line 1066  ENDHEADER
                 description => 'Material appears to be correct'},                  description => 'Material appears to be correct'},
               { name => 'technical',                { name => 'technical',
                 description => 'Resource is technically correct'}){                  description => 'Resource is technically correct'}){
             $scrout .= '<tr><td align="right">'.              $scrout .= &Apache::lonhtmlcommon::row_title(&titlefield(&mt($evaluation->{'description'})))
                        &titlefield(&mt($evaluation->{'description'})).                        .'<input type="text" name="'
                        '</td><td align="center">'.                        .$evaluation->{'name'}.'_min" value="" size="6" />'
                        '<input type="text" name="'.                        .' '
                        $evaluation->{'name'}.'_min" value="" size="6" />'.                        .'<input type="text" name="'
                        '</td><td align="center"><input type="text" name="'.                        .$evaluation->{'name'}.'_max" value="" size="6" />'
                        $evaluation->{'name'}.'_max" value="" size="6" />'.                        .&Apache::lonhtmlcommon::row_closure();
                        '</td></tr>'.$/;  
         }          }
         $scrout .= "</table>\n";  
     }      }
     #      #
     # Creation/Modification date limits      # Creation/Modification date limits
     $scrout .= '<h3>'.&mt('Creation and Modification dates').'</h3>';      $scrout .= &Apache::lonhtmlcommon::row_headline()
     $scrout .= "\n<table>\n";                .'<h3>'.&mt('Creation and Modification dates').'</h3>'
     $scrout .= "<tr><td>&nbsp;</td><td>".&mt('Month[_1]Day[_2]Year','&nbsp;'x14,'&nbsp;'x6)."</td></tr>\n";                .&Apache::lonhtmlcommon::row_closure();
       $scrout .= &Apache::lonhtmlcommon::row_title('')
                 .&mt('Month[_1]Day[_2]Year','&nbsp;'x14,'&nbsp;'x6)
                 .&Apache::lonhtmlcommon::row_closure();
   
     my $cafter =       my $cafter = 
         &Apache::lonhtmlcommon::date_setter('advsearch',         # formname          &Apache::lonhtmlcommon::date_setter('advsearch',         # formname
                                             'creationdate1', # fieldname                                              'creationdate1', # fieldname
Line 1078  ENDHEADER Line 1102  ENDHEADER
                                             '',          # state                                              '',          # state
                                             1,           # no_hh_mm_ss                                              1,           # no_hh_mm_ss
                                             );                                              );
     $scrout .= '<tr><td align="right">'.&mt('Created between').'</td>'      $scrout .= &Apache::lonhtmlcommon::row_title(&mt('Created between'))
               .'<td>'.$cafter.'</td></tr>'                .$cafter
               .'<tr><td align="right">'.&mt('and').'</td>'                .&Apache::lonhtmlcommon::row_closure(1)
               .'<td>'.$cbefore.'</td></tr>';                .&Apache::lonhtmlcommon::row_title(&mt('and'))
                 .$cbefore
                 .&Apache::lonhtmlcommon::row_closure();
   
     my $lafter =       my $lafter = 
         &Apache::lonhtmlcommon::date_setter('advsearch',          &Apache::lonhtmlcommon::date_setter('advsearch',
                                             'revisiondate1',                                               'revisiondate1', 
Line 1100  ENDHEADER Line 1127  ENDHEADER
                                             '',          # state                                              '',          # state
                                             1,           # no_hh_mm_ss                                              1,           # no_hh_mm_ss
                                             );                                              );
     $scrout .= '<tr><td align="right">'.&mt('Last modified between').'</td>'      $scrout .= &Apache::lonhtmlcommon::row_title(&mt('Last modified between'))
               .'<td>'.$lafter.'</td></tr>'                .$lafter
               .'<tr><td align="right">'.&mt('and').'</td>'                .&Apache::lonhtmlcommon::row_closure(1)
               .'<td>'.$lbefore.'</td></tr>';                .&Apache::lonhtmlcommon::row_title(&mt('and'))
     $scrout.="</table>\n";                .$lbefore
     $scrout.=<<ENDDOCUMENT;                .&Apache::lonhtmlcommon::row_closure(1); # Last row of total pick_box
 $advanced_buttons  
 </form>      $scrout .= &Apache::lonhtmlcommon::end_pick_box();
 ENDDOCUMENT  
       $scrout .= $advanced_buttons
                 .'</form>';
   
     $scrout .= &Apache::loncommon::end_page();      $scrout .= &Apache::loncommon::end_page();
     $r->print($scrout);      $r->print($scrout);
     return;      return;
Line 1703  sub parse_domain_restrictions { Line 1733  sub parse_domain_restrictions {
         foreach (sort @allowed_domains) {          foreach (sort @allowed_domains) {
             $pretty_domains_string .= "<b>".$_."</b> ";              $pretty_domains_string .= "<b>".$_."</b> ";
         }          }
  my %servers = &Apache::lonnet::get_servers(\@allowed_domains,   my %servers = &Apache::lonnet::get_unique_servers(\@allowed_domains,
    'library');     'library');
  $libraries_to_query = [keys(%servers)];   $libraries_to_query = [keys(%servers)];
     }      }
Line 2266  sub print_sort_form { Line 2296  sub print_sort_form {
 // <![CDATA[  // <![CDATA[
     function change_sort() {      function change_sort() {
         var newloc = "/adm/searchcat?phase=results";          var newloc = "/adm/searchcat?phase=results";
         newloc += "&amp;persistent_db_id=$env{'form.persistent_db_id'}";          newloc += "&persistent_db_id=$env{'form.persistent_db_id'}";
         newloc += "&amp;sortby=";          newloc += "&sortby=";
         newloc += document.forms.statusform.elements.sortby.value;          newloc += document.forms.statusform.elements.sortby.value;
         parent.resultsframe.location= newloc;          parent.resultsframe.location= newloc;
     }      }
Line 2561  END Line 2591  END
             @Servers_to_contact = ($serverlist);              @Servers_to_contact = ($serverlist);
         }          }
     } else {      } 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));          @Servers_to_contact = sort(keys(%all_library_servers));
     }      }
     my %Server_status;      my %Server_status;
Line 2940  sub display_results { Line 2970  sub display_results {
                   .&mt('Sort by:').' '                    .&mt('Sort by:').' '
                   .&Apache::loncommon::select_form($env{'form.sortfield'},                    .&Apache::loncommon::select_form($env{'form.sortfield'},
                                                       'sortfield',                                                        'sortfield',
                                                       %sort_fields)                                                        \%sort_fields)
                   .' '                    .' '
                   .&Apache::loncommon::select_form($env{'form.sortorder'},                    .&Apache::loncommon::select_form($env{'form.sortorder'},
                                                       'sortorder',                                                        'sortorder',
                                                       (asc =>&mt('Ascending'),                                                        {asc =>&mt('Ascending'),
                                                        desc=>&mt('Descending')                                                         desc=>&mt('Descending')
                                                        ))                                                         })
                   .'</span>';                    .'</span>';
     ##      ##
     ## Display links for 'prev' and 'next' pages (if necessary) and Display Options      ## Display links for 'prev' and 'next' pages (if necessary) and Display Options
Line 3327  SCRIPT Line 3357  SCRIPT
     }      }
     function select_group() {      function select_group() {
  parent.window.location=   parent.window.location=
     "/adm/groupsort?mode=$env{'form.mode'}&amp;catalogmode=import$inhibit_menu&amp;acts="+      "/adm/groupsort?mode=$env{'form.mode'}&catalogmode=import$inhibit_menu&acts="+
     parent.statusframe.document.forms.statusform.elements.acts.value;      parent.statusframe.document.forms.statusform.elements.acts.value;
     }      }
 // ]]>  // ]]>
 </script>  </script>
 SCRIPT  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'} = '<option value="" selected="selected">('.&mt('Top level').')</option>';
       }
       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 = '<h1>'.&mt('Set a link to wishlist').'</h1>'.
                                   '<form method="post" name="newlink" action="/adm/wishlist?mode=set" '.
                                   'onsubmit="return newlinksubmit();" >'.
                                   &Apache::lonhtmlcommon::start_pick_box().
                                   &Apache::lonhtmlcommon::row_title(&mt('Link Title'));
   
       my $in_page_wishlistlink2 = &Apache::lonhtmlcommon::row_closure().
                                   &Apache::lonhtmlcommon::row_title(&mt('Path'));
   
       my $in_page_wishlistlink3 = &Apache::lonhtmlcommon::row_closure().
                                   &Apache::lonhtmlcommon::row_title(&mt('Note')).
                                   '<textarea name="note" rows="3" cols="35" style="width:100%"></textarea>'.
                                   &Apache::lonhtmlcommon::row_closure(1).
                                   &Apache::lonhtmlcommon::end_pick_box().
                                   '<br/><br/>'.
                                   '<input type="submit" value="'.&mt('Save in').'" />'.
                                   '<select name="folders">'.
                                   $folders{'folders'}.
                                   '</select>'.
                                   '<input type="button" value="'.&mt('cancel').'" onclick="javascript:window.close();" />'.
                                   '</form>';
   
       # 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;
   <script type="text/javascript">
   // <![CDATA[
   function set_wishlistlink(title, path){
      if(!title){
          title=document.title;
      }
      if(!path){
          path=location.pathname;
      }
      wishlistlink=window.open('','wishlistNewLink','width=560,height=350,scrollbars=0');
      wishlistlink.document.write(
      '$start_page_wishlistlink'
      +'<script type="text\/javascript">'
      +'function newlinksubmit(){'
      +'var title = document.getElementsByName("title")[0].value;'
      +'if (!title) {'
      +'alert("$warningLink");'
      +'return false;}'
      +'return true;}'
      +'<\/scr'+'ipt>'
      +'$in_page_wishlistlink1'
      +'<input type="text" name="title" size="45" value="'+title+'"/>'
      +'$in_page_wishlistlink2'
      +'<input type="text" name="path" size="45" value="'+path+'" '
      +'readonly="readonly" style="background-color: #DDDDDD"/>'
      +'$in_page_wishlistlink3'
      +'$end_page_wishlistlink' );
      wishlistlink.document.close();
   }
   
   // ]]>
   </script>
   SCRIPT
   
     my $start_page  = &Apache::loncommon::start_page(undef,$js,      my $start_page  = &Apache::loncommon::start_page(undef,$js,
      {'only_body' =>1});       {'only_body' =>1});
     my $result=<<END;      my $result=<<END;
Line 3454  sub detailed_citation_view { Line 3567  sub detailed_citation_view {
     $result .= '<b>'.$prefix.      $result .= '<b>'.$prefix.
         '<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />'.'&nbsp;'.          '<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />'.'&nbsp;'.
         '<a href="'.$jumpurl.'?inhibitmenu=yes" '.          '<a href="'.$jumpurl.'?inhibitmenu=yes" '.
         'target="preview">'.$values{'title'}."</a></b>\n";          'target="preview">'.$values{'title'}."</a></b>\n".
           '<a href="javascript:;" onclick="set_wishlistlink('."'$values{'title'}','$jumpurl'".')" '.
           'title="'.&mt('Set link to wishlist').'">'.
           '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.
           'alt="set wishlistlink" style="width:22px;"/></a>';
     $result .= "<p>\n";      $result .= "<p>\n";
     $result .= '<b>'.$values{'author'}.'</b>,'.      $result .= '<b>'.$values{'author'}.'</b>,'.
         ' <i>'.$values{'owner'}.'</i><br />';          ' <i>'.$values{'owner'}.'</i><br />';
Line 3521  sub detailed_citation_view { Line 3638  sub detailed_citation_view {
             $result .= '<b>'.&mt($field->{'translate'}).'</b>';              $result .= '<b>'.&mt($field->{'translate'}).'</b>';
             foreach my $item (split(',',$values{$field->{'name'}})){              foreach my $item (split(',',$values{$field->{'name'}})){
                 $item = &Apache::lonnet::clutter($item);                  $item = &Apache::lonnet::clutter($item);
                 $result .= &display_url($item,[2,0,1]);                  $result .= '<br />'.&display_url($item,1).'<br />';
             }              }
         } elsif (exists($field->{'format'}) && $field->{'format'} ne ''){          } elsif (exists($field->{'format'}) && $field->{'format'} ne ''){
             $result.= &mt($field->{'translate'},              $result.= &mt($field->{'translate'},
Line 3529  sub detailed_citation_view { Line 3646  sub detailed_citation_view {
                                   $values{$field->{'name'}}))."<br />\n";                                    $values{$field->{'name'}}))."<br />\n";
         } else {          } else {
             if ($field->{'special'} eq 'url link') {              if ($field->{'special'} eq 'url link') {
                 $result .= &display_url($jumpurl,[3,0,1]);                  $result .= '<br />'.&display_url($jumpurl,1).'<br />';
             } else {              } else {
                 $result.= &mt($field->{'translate'},                  $result.= &mt($field->{'translate'},
                               $values{$field->{'name'}});                                $values{$field->{'name'}});
Line 3583  sub summary_view { Line 3700  sub summary_view {
     }      }
     my $jumpurl=$values{'url'};      my $jumpurl=$values{'url'};
     $jumpurl=~s|^/ext/|http://|;      $jumpurl=~s|^/ext/|http://|;
     my $link = &display_url($jumpurl,[2,0,1]);      my $link = '<br />'.&display_url($jumpurl,1).'<br />';
   
       my $titleWL = &mt('Set link to wishlist');
     $result.=<<END;      $result.=<<END;
 <a href="$jumpurl?inhibitmenu=yes"   <a href="$jumpurl?inhibitmenu=yes" 
    target="preview">$values{'title'}</a><br />     target="preview">$values{'title'}</a>
   <a href="javascript:;" onclick="set_wishlistlink('$values{'title'}','$jumpurl')" 
      title="$titleWL">
      <img class="LC_icon" src="/res/adm/pages/wishlist.png"
           alt="set wishlistlink" style="width:22px;"/>
   </a>
   <br />
 $link<br />  $link<br />
 $values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}<br />  $values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}<br />
 $values{'copyrighttag'}<br />  $values{'copyrighttag'}<br />
Line 3619  sub compact_view { Line 3743  sub compact_view {
     my $jumpurl=$values{'url'};      my $jumpurl=$values{'url'};
     $jumpurl=~s|^/ext/|http://|;      $jumpurl=~s|^/ext/|http://|;
   
     my $link = &display_url($jumpurl,[1,1,1]);      my $link = &display_url($jumpurl,1);
           
     my $result =       my $result = 
         $prefix.'<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />';          $prefix.'<img src="'.&Apache::loncommon::icon($values{'url'}).'" alt="" />';
Line 3633  sub compact_view { Line 3757  sub compact_view {
     $result.=' <span class="LC_nobreak">'.      $result.=' <span class="LC_nobreak">'.
  '<a href="'.$jumpurl.'?inhibitmenu=yes" target="preview">'.   '<a href="'.$jumpurl.'?inhibitmenu=yes" target="preview">'.
         &HTML::Entities::encode($values{'title'},'<>&"').'</a></span> '.          &HTML::Entities::encode($values{'title'},'<>&"').'</a></span> '.
           '<a href="javascript:;" onclick="set_wishlistlink('."'$values{'title'}','$jumpurl'".')" '.
           'title="'.&mt('Set link to wishlist').'">'.
           '<img class="LC_icon" src="/res/adm/pages/wishlist.png" '.
           'alt="set wishlistlink" style="width:22px;"/>'.
           '</a>'.
  $link.' <b>'.$values{'author'}.'</b> ('.$values{'domain'}.')';   $link.' <b>'.$values{'author'}.'</b> ('.$values{'domain'}.')';
     return $result;      return $result;
 }  }
   
 sub display_url {  sub display_url {
     my ($url,$crumb_args) = @_;      my ($url,$skiplast) = @_;
     my $link;      my $link;
     if ($url=~m|^/ext/|) {      if ($url=~m|^/ext/|) {
  $url=~s|^/ext/|http://|;   $url=~s|^/ext/|http://|;
Line 3646  sub display_url { Line 3775  sub display_url {
     } elsif ($url=~m{^(http://|/uploaded/)}) {      } elsif ($url=~m{^(http://|/uploaded/)}) {
  $link='<span class="LC_filename">'.$url.'</span>';   $link='<span class="LC_filename">'.$url.'</span>';
     } else {      } else {
         $link=&Apache::lonhtmlcommon::crumbs($url,          $link=&Apache::lonhtmlcommon::crumbs(
   'preview',                    $url,
   '',                    'preview',
   (($env{'form.catalogmode'} eq 'import')?'parent.statusframe.document.forms.statusform':''),@{$crumb_args}).' ';                    '',
                     (($env{'form.catalogmode'} eq 'import')?'parent.statusframe.document.forms.statusform':''),
                     $skiplast).' ';
     }      }
     return $link;      return $link;
 }  }
Line 3672  sub fielded_format_view { Line 3803  sub fielded_format_view {
     my $jumpurl=$values{'url'};      my $jumpurl=$values{'url'};
     $jumpurl=~s|^/ext/|http://|;      $jumpurl=~s|^/ext/|http://|;
   
       my $titleWL = ('Set link to wishlist');
     my $result=<<END;      my $result=<<END;
 $prefix <img src="$icon" alt="" />  $prefix <img src="$icon" alt="" />
 <dl>  <dl>
 <dt>URL:</dt>  <dt>URL:</dt>
     <dd><a href="$jumpurl?inhibitmenu=yes"       <dd><a href="$jumpurl?inhibitmenu=yes" 
          target='preview'>$values{'url'}</a></dd>           target='preview'>$values{'url'}</a>
            <a href="javascript:;" onclick="set_wishlistlink('$values{'title'}','$jumpurl')"
               title="$titleWL">
               <img class="LC_icon" src="/res/adm/pages/wishlist.png"
               alt="set wishlistlink" style="width:22px;"/>
            </a>
       </dd>
 END  END
     foreach my $field ('title','author','domain','subject','keywords','notes',      foreach my $field ('title','author','domain','subject','keywords','notes',
                        'mimetag','language','creationdate','lastrevisiondate',                         'mimetag','language','creationdate','lastrevisiondate',
Line 3864  sub output_blank_field_error { Line 4002  sub output_blank_field_error {
     my ($r,$closebutton,$parms,$hidden_fields)=@_;      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 $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 $start_page = &Apache::loncommon::start_page('Search');
     my $end_page   = &Apache::loncommon::end_page();      my $end_page   = &Apache::loncommon::end_page();
       if ($closebutton) {
           $closebutton = '<p>'.$closebutton.'</p><hr />';
       } else {
           &Apache::lonhtmlcommon::add_breadcrumb
               ({href=>'',
                 text=>$heading,});
           $start_page .= &Apache::lonhtmlcommon::breadcrumbs();
       }
   
     $r->print(<<ENDPAGE);      $r->print(<<ENDPAGE);
 $start_page  $start_page
 <form method="post" action="/adm/searchcat">  <form method="post" action="/adm/searchcat">
 $hidden_fields  $hidden_fields
 $closebutton  $closebutton
 <hr />  </form>
 <h2>$heading</h2>  <h2>$heading</h2>
 <p class="LC_warning">  <p class="LC_warning">
 $errormsg  $errormsg
 </p>  </p>
 <p>  <p>
 <a href="/adm/searchcat?$parms&amp;persistent_db_id=$env{'form.persistent_db_id'}">$revise</a>&nbsp;  <a href="/adm/searchcat?$parms&amp;persistent_db_id=$env{'form.persistent_db_id'}">$revise</a>
 </p>  </p>
 $end_page  $end_page
 ENDPAGE  ENDPAGE

Removed from v.1.313  
changed lines
  Added in v.1.326


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>