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

version 1.312, 2009/07/31 10:58:57 version 1.313, 2009/07/31 16:01:48
Line 266  sub handler { Line 266  sub handler {
     ## Configure dynamic components of interface      ## Configure dynamic components of interface
     ##      ##
     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 798  sub setup_basic_search { Line 798  sub setup_basic_search {
                  $scrout .= '<input type="hidden" name="area" value="'.$area.'" />';                   $scrout .= '<input type="hidden" name="area" value="'.$area.'" />';
              }               }
     #      #
     $scrout .= '<center>'.$/;      $scrout .= '<div align="center">'.$/;
 #    if ($env{'request.course.id'}) {  #    if ($env{'request.course.id'}) {
         $scrout .= '<h1>'.$lt{$area}.'</h1>';          $scrout .= '<h1>'.$lt{$area}.'</h1>';
 #    } else {  #    } else {
Line 810  sub setup_basic_search { Line 810  sub setup_basic_search {
              &Apache::lonhtmlcommon::textbox('basicexp',               &Apache::lonhtmlcommon::textbox('basicexp',
                                              $env{'form.basicexp'},50).                                               $env{'form.basicexp'},50).
              '<br />'.               '<br />'.
             '<font size="-1">'.&searchhelp().'</font>'.'</td>'.              '<span class="LC_fontsize_small">'.&searchhelp().'</span>'.'</td>'.
             '<td><font size="-1">'.              '<td>'.
             '<span class="LC_nobreak">'.('&nbsp;'x3).$adv_search_link.'</span>'.'<br />'.              '<span class="LC_nobreak">'.('&nbsp;'x3).$adv_search_link.'</span>'.'<br />'.
             '<span class="LC_nobreak">'.('&nbsp;'x1).$userelatedwords.'</span>'.'<br />'.              '<span class="LC_nobreak">'.('&nbsp;'x1).$userelatedwords.'</span>'.'<br />'.
             '<span class="LC_nobreak">'.('&nbsp;'x1).$onlysearchdomain.'</span>'.'<br />'.              '<span class="LC_nobreak">'.('&nbsp;'x1).$onlysearchdomain.'</span>'.'<br />'.
             '<span class="LC_nobreak">'.('&nbsp;'x1).$inclext.'</span>'.'<br />'.              '<span class="LC_nobreak">'.('&nbsp;'x1).$inclext.'</span>'.'<br />'.
              '</font></td>'.               '</td>'.
             '</tr>'.$/;              '</tr>'.
               '</table>'.$/;
       #
       $scrout .= '<p>'
                 .&viewoptions()
                 .'</p>'
                 .'<p>'
                 .'<input type="submit" name="basicsubmit" '
                 .'value="'.&mt('Search').'" />'
                 .' '
                 .$closebutton
                 .'</p>';
     #      #
     $scrout .= '<tr><td align="center" colspan="2">'.      $scrout .= '</div>'.'</form>';
                '<font size="-1">'.  
                '<input type="submit" name="basicsubmit" '.  
                'value="'.&mt('Search').'" />'.  
                ('&nbsp;'x2).$closebutton.('&nbsp;'x2). &viewoptions().  
                '</font>'.  
                '</td></tr>'.$/;  
     $scrout .= '</table>'.$/.'</center>'.'</form>';  
     return $scrout;      return $scrout;
 }   } 
   
Line 861  END Line 865  END
     if ($env{'form.area'} eq 'portfolio') {      if ($env{'form.area'} eq 'portfolio') {
         $srchtype = 'Portfolio';          $srchtype = 'Portfolio';
         $jscript = '<script type="text/javascript">          $jscript = '<script type="text/javascript">
   // <![CDATA[
 function additional_metadata() {  function additional_metadata() {
     if (document.advsearch.newfield.checked) {      if (document.advsearch.newfield.checked) {
         document.advsearch.phase.value = "disp_adv";          document.advsearch.phase.value = "disp_adv";
Line 868  function additional_metadata() { Line 873  function additional_metadata() {
         document.advsearch.submit();          document.advsearch.submit();
     }      }
 }  }
   // ]]>
 </script>';  </script>';
     }      }
     my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search",      my $scrout= &Apache::loncommon::start_page("Advanced $srchtype Search",
Line 1172  Outputs: text for box with view options Line 1178  Outputs: text for box with view options
 ######################################################################  ######################################################################
 ######################################################################  ######################################################################
 sub viewoptions {  sub viewoptions {
     my $scrout = '<span class="LC_nobreak">';      my $scrout;
     if (! defined($env{'form.viewselect'})) {       if (! defined($env{'form.viewselect'})) { 
         $env{'form.viewselect'}='detailed';           $env{'form.viewselect'}='detailed'; 
     }      }
     $scrout.=&Apache::lonmeta::selectbox('viewselect',      $scrout .= '<span class="LC_nobreak">'
  $env{'form.viewselect'},                .&mt('Type:').' '
  \&viewoptiontext,                .&Apache::lonmeta::selectbox('viewselect',
  sort(keys(%Views)));                     $env{'form.viewselect'},
     $scrout.= '&nbsp;&nbsp;';                     \&viewoptiontext,
                      sort(keys(%Views)))
                 .'</span>';
     my $countselect = &Apache::lonmeta::selectbox('show',      my $countselect = &Apache::lonmeta::selectbox('show',
                                                   $env{'form.show'},                                                    $env{'form.show'},
                                                   undef,                                                    undef,
                                                   (10,20,50,100,1000,10000));                                                    (10,20,50,100,1000,10000));
     $scrout .= ('&nbsp;'x2)      $scrout .= ' <span class="LC_nobreak">'
               .&mt('[_1] Records per Page',$countselect)                .&mt('Records per Page:').' '.$countselect
               .'</span>'.$/;                .'</span>'.$/;
     return $scrout;      return $scrout;
 }  }
Line 2167  sub ensure_db_and_table { Line 2175  sub ensure_db_and_table {
     ## Sanity check the table id.      ## Sanity check the table id.
     ##      ##
     if (! defined($table) || $table eq '' || $table =~ /\D/ ) {      if (! defined($table) || $table eq '' || $table =~ /\D/ ) {
         $r->print("Unable to retrieve search results.  ".          $r->print(&Apache::loncommon::start_page(&mt('Error'))
                   "Unable to determine the table results were saved in.  ".  . '<p>table: |'.$table.'|</p>' # SB
   &Apache::loncommon::end_page());                   .'<p class="LC_error">'
                    .&mt('Unable to retrieve search results. '
                        .'Unable to determine the table results were saved in.')
                    .&Apache::loncommon::end_page()
           );
         return undef;          return undef;
     }      }
     ##      ##
Line 2251  sub print_sort_form { Line 2263  sub print_sort_form {
     }      }
     my $js =<<END;      my $js =<<END;
 <script type="text/javascript">  <script type="text/javascript">
   // <![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 += "&amp;persistent_db_id=$env{'form.persistent_db_id'}";
Line 2258  sub print_sort_form { Line 2271  sub print_sort_form {
         newloc += document.forms.statusform.elements.sortby.value;          newloc += document.forms.statusform.elements.sortby.value;
         parent.resultsframe.location= newloc;          parent.resultsframe.location= newloc;
     }      }
   // ]]>
 </script>  </script>
 END  END
   
Line 2400  Returns: Nothing. Line 2414  Returns: Nothing.
 sub update_count_status {  sub update_count_status {
     my ($r,$text) = @_;      my ($r,$text) = @_;
     $text =~ s/\'/\\\'/g;      $text =~ s/\'/\\\'/g;
     $r->print      $r->print(<<SCRIPT);
         ("<script>document.statusform.count.value = ' $text'</script>\n");  <script type="text/javascript">
   // <![CDATA[
   document.statusform.count.value = ' $text'
   // ]]>
   </script>
   SCRIPT
   
     $r->rflush();      $r->rflush();
 }  }
   
 sub update_status {  sub update_status {
     my ($r,$text) = @_;      my ($r,$text) = @_;
     $text =~ s/\'/\\\'/g;      $text =~ s/\'/\\\'/g;
     $r->print      $r->print(<<SCRIPT);
         ("<script>document.statusform.status.value = ' $text'</script>\n");  <script type="text/javascript">
   // <![CDATA[
   document.statusform.status.value = ' $text'
   // ]]>
   </script>
   SCRIPT
   
     $r->rflush();      $r->rflush();
 }  }
   
Line 2436  sub update_seconds { Line 2462  sub update_seconds {
     my ($r) = @_;      my ($r) = @_;
     my $time = &time_left();      my $time = &time_left();
     if (($last_time-$time) > 0) {      if (($last_time-$time) > 0) {
         $r->print("<script>".          $r->print(<<SCRIPT);
                   "document.statusform.seconds.value = '$time'".  <script type="text/javascript">
                   "</script>\n");  // <![CDATA[
   document.statusform.seconds.value = '$time'
   // ]]>
   </script>
   SCRIPT
   
         $r->rflush();          $r->rflush();
     }      }
     $last_time = $time;      $last_time = $time;
Line 2470  sub revise_button { Line 2501  sub revise_button {
             '&amp;cleargroupsort=1'.              '&amp;cleargroupsort=1'.
             '&amp;phase='.$revise_phase;              '&amp;phase='.$revise_phase;
     my $result = qq{<input type="button" value="$revisetext" name="revise"} .      my $result = qq{<input type="button" value="$revisetext" name="revise"} .
         qq{ onClick="parent.location='$newloc';" /> };          qq{ onclick="parent.location='$newloc';" /> };
     return $result;      return $result;
 }  }
   
Line 2691  END Line 2722  END
         last if ($connection->aborted());          last if ($connection->aborted());
         &update_seconds($r);          &update_seconds($r);
     }      }
     &update_status($r,&mt('Search Complete [_1]',$server));      &update_status($r,&mt('Search Complete on Server [_1]',$server));
     &update_seconds($r);      &update_seconds($r);
     #      #
     &Apache::lonmysql::disconnect_from_db(); # This is unneccessary      &Apache::lonmysql::disconnect_from_db(); # This is unneccessary
Line 2701  END Line 2732  END
     # loaded from /adm/searchcat      # loaded from /adm/searchcat
     $r->print(&Apache::loncommon::end_page());      $r->print(&Apache::loncommon::end_page());
 #    if ($env{'form.catalogmode'} ne 'import') {  #    if ($env{'form.catalogmode'} ne 'import') {
         $r->print("<script>".           $r->print(<<SCRIPT);
                       "window.location='/adm/searchcat?".  <script>
                       "phase=sort&".  window.location='/adm/searchcat?phase=sort&persistent_db_id=$env{'form.persistent_db_id'}';
                       "persistent_db_id=$env{'form.persistent_db_id'}';".  </script>
                   "</script>");  SCRIPT
 #    }  #    }
     return;      return;
 }  }
Line 2728  sub prev_next_buttons { Line 2759  sub prev_next_buttons {
     return '' if ($show eq 'all'); # No links if you get them all at once.      return '' if ($show eq 'all'); # No links if you get them all at once.
     #      #
     # Create buttons      # Create buttons
     my $buttons = '<input type="submit" name="prev" value="'.&mt('Prev').'" ';      return '<p class="LC_nobreak">'
     $buttons .= '/>';            .'<input type="submit" name="prev" value="&lt;"'
     $buttons .= '&nbsp;'x3;            .' title="'.&mt('Previous').'" />'
     $buttons .= '<input type="submit" name="reload" '.            .' '
         'value="'.&mt('Reload').'" />';            .'<input type="submit" name="reload" value="'.&mt('Reload').'" />'
     $buttons .= '&nbsp;'x3;            .' '
     $buttons .= '<input type="submit" name="next" value="'.&mt('Next').'" ';            .'<input type="submit" name="next" value="&gt;"'
     $buttons .= '/>';            .' title="'.&mt('Next').'" />'
     return $buttons;            .'</p>';
 }  }
   
 ######################################################################  ######################################################################
Line 2905  sub display_results { Line 2936  sub display_results {
     $env{'form.sortorder'}='asc';      $env{'form.sortorder'}='asc';
  }   }
     }      }
     my $sortform = &mt('Sort by [_1] [_2]',      my $sortform = '<span class="LC_nobreak">'
                        &Apache::loncommon::select_form($env{'form.sortfield'},                    .&mt('Sort by:').' '
                     .&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>';
     ##      ##
     ## Output links (if necessary) for 'prev' and 'next' pages.      ## Display links for 'prev' and 'next' pages (if necessary) and Display Options
     $r->print      $r->print('<fieldset>'."\n"
         ('<table width="100%"><tr><td width="25%" align="right">'.               .'<legend>'.&mt('Display Options').'</legend>'."\n"
          '<span class="LC_nobreak">'.$sortform.'</span>'.               .$sortform
          '</td><td width="25%" align="right">'.               .' '
          &prev_next_buttons($min,$env{'form.show'},$total_results).               .&viewoptions()
          '</td><td align="right">'.               .'</fieldset>'
          &viewoptions().'</td></tr></table>'               .&prev_next_buttons($min,$env{'form.show'},$total_results)
          );      );
   
     if ($total_results == 0) {      if ($total_results == 0) {
         $r->print('<meta HTTP-EQUIV="Refresh" CONTENT="2" />'.          $r->print('<meta HTTP-EQUIV="Refresh" CONTENT="2" />'.
                   '<p class="LC_info">'.&mt('There are currently no results').'.</p>'.                    '<p class="LC_info">'.&mt('There are currently no results.').'</p>'.
                   "</form>".                    "</form>".
   &Apache::loncommon::end_page());    &Apache::loncommon::end_page());
         return;          return;
Line 2995  sub display_results { Line 3029  sub display_results {
                  .&mt('There were no results matching your query.')                   .&mt('There were no results matching your query.')
                  .'</p>');                   .'</p>');
     } else {      } else {
         $r->print          $r->print(
             ('<center>'.              &prev_next_buttons($min,$env{'form.show'},$total_results,
              &prev_next_buttons($min,$env{'form.show'},$total_results,  
                                 "table=".$env{'form.table'}.                                  "table=".$env{'form.table'}.
                                 "&amp;phase=results".                                  "&amp;phase=results".
                                 "&amp;persistent_db_id=".                                  "&amp;persistent_db_id=".
                                 $env{'form.persistent_db_id'})                                  $env{'form.persistent_db_id'})
              ."</center>\n"          );
              );  
     }      }
     $r->print("</form>".&Apache::loncommon::end_page());      $r->print("</form>".&Apache::loncommon::end_page());
     $r->rflush();      $r->rflush();
Line 3033  sub catalogmode_output { Line 3065  sub catalogmode_output {
         if ($env{'form.catalogmode'} eq 'interactive') {          if ($env{'form.catalogmode'} eq 'interactive') {
             $output.=<<END               $output.=<<END 
 <font size='-1'><input type="button" name="returnvalues" value="select"  <font size='-1'><input type="button" name="returnvalues" value="select"
 onClick="javascript:select_data('$title','$url')" />  onclick="javascript:select_data('$title','$url')" />
 </font>  </font>
 END  END
         }          }
Line 3043  END Line 3075  END
         $output.=<<END;          $output.=<<END;
 <font size='-1'>  <font size='-1'>
 <input type="checkbox" name="returnvalues" value="select"  <input type="checkbox" name="returnvalues" value="select"
 onClick="javascript:queue($checkbox_num,$fnum)" />  onclick="javascript:queue($checkbox_num,$fnum)" />
 </font>  </font>
 END  END
     }      }
Line 3212  sub search_results_header { Line 3244  sub search_results_header {
  if (! exists($env{'form.mode'}) || $env{'form.mode'} ne 'edit') {   if (! exists($env{'form.mode'}) || $env{'form.mode'} ne 'edit') {
             $js.=<<SCRIPT;              $js.=<<SCRIPT;
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
     function select_data(title,url) {      function select_data(title,url) {
  changeTitle(title);   changeTitle(title);
  changeURL(url);   changeURL(url);
Line 3227  sub search_results_header { Line 3260  sub search_results_header {
     parent.opener.inf.document.forms.resinfo.elements.u.value=val;      parent.opener.inf.document.forms.resinfo.elements.u.value=val;
  }   }
     }      }
   // ]]>
 </script>  </script>
 SCRIPT  SCRIPT
         } elsif ($env{'form.mode'} eq 'edit') {          } elsif ($env{'form.mode'} eq 'edit') {
Line 3251  END Line 3285  END
   
             $js.=<<SCRIPT;              $js.=<<SCRIPT;
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 function select_data(title,url) {  function select_data(title,url) {
     changeURL(url);      changeURL(url);
     changeTitle(title);      changeTitle(title);
Line 3265  function changeURL(val) { Line 3300  function changeURL(val) {
         alert("Unable to transfer data to "+url);          alert("Unable to transfer data to "+url);
     }      }
 }  }
   // ]]>
 </script>  </script>
 SCRIPT  SCRIPT
         }          }
Line 3272  SCRIPT Line 3308  SCRIPT
     my $inhibit_menu = "&".&Apache::loncommon::inhibit_menu_check();      my $inhibit_menu = "&".&Apache::loncommon::inhibit_menu_check();
     $js.=<<SCRIPT if $env{'form.catalogmode'} eq 'import';      $js.=<<SCRIPT if $env{'form.catalogmode'} eq 'import';
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
     function queue(checkbox_num,val) {      function queue(checkbox_num,val) {
         if (document.forms.results.returnvalues.length != "undefined" &&          if (document.forms.results.returnvalues.length != "undefined" &&
             typeof(document.forms.results.returnvalues.length) == "number") {              typeof(document.forms.results.returnvalues.length) == "number") {
Line 3293  SCRIPT Line 3330  SCRIPT
     "/adm/groupsort?mode=$env{'form.mode'}&amp;catalogmode=import$inhibit_menu&amp;acts="+      "/adm/groupsort?mode=$env{'form.mode'}&amp;catalogmode=import$inhibit_menu&amp;acts="+
     parent.statusframe.document.forms.statusform.elements.acts.value;      parent.statusframe.document.forms.statusform.elements.acts.value;
     }      }
   // ]]>
 </script>  </script>
 SCRIPT  SCRIPT
   
Line 3324  sub print_frames_interface { Line 3362  sub print_frames_interface {
     my $results_link = &results_link();      my $results_link = &results_link();
     my $js = <<JS;      my $js = <<JS;
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 var targetwin = opener;  var targetwin = opener;
 var queue = '';  var queue = '';
   // ]]>
 </script>  </script>
 JS  JS
   
Line 3875  $start_page Line 3915  $start_page
 <form method="post" action="/adm/searchcat">  <form method="post" action="/adm/searchcat">
 $hidden_fields  $hidden_fields
 <input type='button' value='Revise search request'  <input type='button' value='Revise search request'
 onClick='this.form.submit();' />  onclick='this.form.submit();' />
 $closebutton  $closebutton
 </form>  </form>
 <hr />  <hr />

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


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