Diff for /loncom/interface/lonsearchcat.pm between versions 1.236 and 1.242

version 1.236, 2005/02/02 21:08:23 version 1.242, 2005/04/01 19:57:23
Line 195  sub handler { Line 195  sub handler {
                 &Apache::lonnet::logthis('lonsearchcat:'.                  &Apache::lonnet::logthis('lonsearchcat:'.
                                          'Unable to recover data from '.                                           'Unable to recover data from '.
                                          $persistent_db_file);                                           $persistent_db_file);
                 $r->print(<<END);   my $html=&Apache::lonxml::xmlbegin();
 <html>   $r->print(<<END);
 <head><title>LON-CAPA Search Error</title></head>  $html
   <head>
   <title>LON-CAPA Search Error</title></head>
 $bodytag  $bodytag
 We were unable to retrieve data describing your search.  This is a serious  We were unable to retrieve data describing your search.  This is a serious
 error and has been logged.  Please alert your LON-CAPA administrator.  error and has been logged.  Please alert your LON-CAPA administrator.
Line 224  END Line 226  END
  } else {   } else {
             # This is a stupid error to give to the user.                # This is a stupid error to give to the user.  
             # It really tells them nothing.              # It really tells them nothing.
     $r->print('<html><head></head>'.$bodytag.      my $html=&Apache::lonxml::xmlbegin();
       $r->print($html.'<head></head>'.$bodytag.
                       'Unable to tie hash to db file</body></html>');                        'Unable to tie hash to db file</body></html>');
     return OK;      return OK;
  }   }
Line 368  END Line 371  END
             &Apache::lonnet::logthis('lonsearchcat.pm: Unable to create '.              &Apache::lonnet::logthis('lonsearchcat.pm: Unable to create '.
                                      'needed table.  lonmysql error:'.                                       'needed table.  lonmysql error:'.
                                      $errorstring);                                       $errorstring);
       my $html=&Apache::lonxml::xmlbegin();
             $r->print(<<END);              $r->print(<<END);
 <html><head><title>Search Error</title></head>  $html
   <head>
   <title>Search Error</title></head>
 $bodytag  $bodytag
 Unable to create table in which to store search results.    Unable to create table in which to store search results.  
 The search has been aborted.  The search has been aborted.
Line 380  END Line 386  END
         }          }
         delete($ENV{'form.launch'});          delete($ENV{'form.launch'});
         if (! &make_form_data_persistent($r,$persistent_db_file)) {          if (! &make_form_data_persistent($r,$persistent_db_file)) {
             $r->print(<<END);      my $html=&Apache::lonxml::xmlbegin();
 <html><head><title>Search Error</title></head>      $r->print(<<END);
   $html
   <head>
   <title>Search Error</title></head>
 $bodytag  $bodytag
 Unable to properly store search information.  The search has been aborted.  Unable to properly store search information.  The search has been aborted.
 </body>  </body>
Line 477  sub course_search { Line 486  sub course_search {
     my $discuss=$ENV{'form.crsdiscuss'};      my $discuss=$ENV{'form.crsdiscuss'};
     my @allwords=($search_string,@New_Words);      my @allwords=($search_string,@New_Words);
     $totalfound=0;      $totalfound=0;
     $r->print('<html><head><title>LON-CAPA Course Search</title></head>'.      my $html=&Apache::lonxml::xmlbegin();
       $r->print($html.'<head><title>LON-CAPA Course Search</title></head>'.
       $bodytag.'<hr /><center><font size="+2" face="arial">'.$pretty_search_string.'</font></center><hr /><b>'.&mt('Course content').':</b><br />');        $bodytag.'<hr /><center><font size="+2" face="arial">'.$pretty_search_string.'</font></center><hr /><b>'.&mt('Course content').':</b><br />');
     $r->rflush();      $r->rflush();
 # ======================================================= Go through the course  # ======================================================= Go through the course
Line 625  sub checkonthis { Line 635  sub checkonthis {
 # Check also the dependencies of this one  # Check also the dependencies of this one
     my $dependencies=      my $dependencies=
                 &Apache::lonnet::metadata($url,'dependencies');                  &Apache::lonnet::metadata($url,'dependencies');
     foreach (split(/\,/,$dependencies) && (!$alreadyseen{$id})) {      foreach (split(/\,/,$dependencies)) {
        if (($_=~/^\/res\//)) {         if (($_=~/^\/res\//) && (!$alreadyseen{$id})) { 
           &checkonthis($r,$id,$_,$level+1,'',$fulltext,undef,@allwords);            &checkonthis($r,$id,$_,$level+1,'',$fulltext,undef,@allwords);
        }         }
     }      }
Line 653  sub untiehash { Line 663  sub untiehash {
 } # End of course search scoping  } # End of course search scoping
   
 sub search_html_header {  sub search_html_header {
       my $html=&Apache::lonxml::xmlbegin();
     my $Str = <<ENDHEADER;      my $Str = <<ENDHEADER;
 <html>  $html
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
 </head>  </head>
Line 1524  sub parse_advanced_search { Line 1535  sub parse_advanced_search {
     ##      ##
     ## Deal with restrictions to given domains      ## Deal with restrictions to given domains
     ##       ## 
     my ($libraries_to_query,$pretty_domains_string) =       my ($libraries_to_query,$pretty_domains_string,$domain_sql_restriction) = 
         &parse_domain_restrictions();          &parse_domain_restrictions();
       push(@queries,$domain_sql_restriction);
     $pretty_search_string .= $pretty_domains_string."<br />\n";      $pretty_search_string .= $pretty_domains_string."<br />\n";
     #      #
     if (@queries) {      if (@queries) {
Line 1533  sub parse_advanced_search { Line 1545  sub parse_advanced_search {
     } elsif ($customquery) {      } elsif ($customquery) {
         $query = '';          $query = '';
     }      }
     # &Apache::lonnet::logthis('query = '.$/.$query);      #&Apache::lonnet::logthis('advanced query = '.$/.$query);
     return ($query,$customquery,$customshow,$libraries_to_query,      return ($query,$customquery,$customshow,$libraries_to_query,
             $pretty_search_string);              $pretty_search_string);
 }  }
Line 1543  sub parse_domain_restrictions { Line 1555  sub parse_domain_restrictions {
     # $ENV{'form.domains'} can be either a scalar or an array reference.      # $ENV{'form.domains'} can be either a scalar or an array reference.
     # We need an array.      # We need an array.
     if (! exists($ENV{'form.domains'}) || $ENV{'form.domains'} eq '') {      if (! exists($ENV{'form.domains'}) || $ENV{'form.domains'} eq '') {
         return (undef,'');          return (undef,'',undef);
     }      }
     my @allowed_domains;      my @allowed_domains;
     if (ref($ENV{'form.domains'})) {      if (ref($ENV{'form.domains'})) {
Line 1554  sub parse_domain_restrictions { Line 1566  sub parse_domain_restrictions {
     #      #
     my %domain_hash = ();      my %domain_hash = ();
     my $pretty_domains_string;      my $pretty_domains_string;
       my $domain_sql_restriction;
     foreach (@allowed_domains) {      foreach (@allowed_domains) {
         $domain_hash{$_}++;          $domain_hash{$_}++;
     }      }
     if ($domain_hash{'any'}) {      if ($domain_hash{'any'}) {
         $pretty_domains_string = "In all LON-CAPA domains.";          $pretty_domains_string = "In all LON-CAPA domains.";
           $domain_sql_restriction = undef;
     } else {      } else {
         if (@allowed_domains > 1) {          if (@allowed_domains > 1) {
             $pretty_domains_string = "In LON-CAPA domains:";              $pretty_domains_string = "In LON-CAPA domains:";
         } else {          } else {
             $pretty_domains_string = "In LON-CAPA domain ";              $pretty_domains_string = "In LON-CAPA domain ";
         }          }
           $domain_sql_restriction = 
               '(domain="'.join('" OR domain="',@allowed_domains).'")';
         foreach (sort @allowed_domains) {          foreach (sort @allowed_domains) {
             $pretty_domains_string .= "<b>".$_."</b> ";              $pretty_domains_string .= "<b>".$_."</b> ";
         }          }
Line 1574  sub parse_domain_restrictions { Line 1590  sub parse_domain_restrictions {
             }              }
         }          }
     }      }
     return ($libraries_to_query,$pretty_domains_string);      return ($libraries_to_query,
               $pretty_domains_string,
               $domain_sql_restriction);
 }  }
   
 ######################################################################  ######################################################################
Line 1603  sub parse_basic_search { Line 1621  sub parse_basic_search {
  $ENV{"form.$_"}=&Apache::lonnet::unescape($ENV{"form.$_"});   $ENV{"form.$_"}=&Apache::lonnet::unescape($ENV{"form.$_"});
  $ENV{"form.$_"}=~s/[^\w\/\s\(\)\=\-\"\']//g;   $ENV{"form.$_"}=~s/[^\w\/\s\(\)\=\-\"\']//g;
     }      }
     my ($libraries_to_query,$pretty_domains_string) =       my ($libraries_to_query,$pretty_domains_string,$domain_sql_restriction) = 
         &parse_domain_restrictions();          &parse_domain_restrictions();
     #      #
     # Check to see if enough of a query is filled in      # Check to see if enough of a query is filled in
Line 1627  sub parse_basic_search { Line 1645  sub parse_basic_search {
         return;          return;
     }      }
     push(@Queries,$SQLQuery);      push(@Queries,$SQLQuery);
       if (defined($domain_sql_restriction) && $domain_sql_restriction ne '') {
           push(@Queries,$domain_sql_restriction);
       }
     #foreach my $q (@Queries) {      #foreach my $q (@Queries) {
     #    &Apache::lonnet::logthis('    '.$q);      #    &Apache::lonnet::logthis('    '.$q);
     #}      #}
Line 1637  sub parse_basic_search { Line 1658  sub parse_basic_search {
     }      }
     $pretty_search_string .= "<br />\n";      $pretty_search_string .= "<br />\n";
     $pretty_search_string =~ s:^<br /> and ::;      $pretty_search_string =~ s:^<br /> and ::;
     # &Apache::lonnet::logthis($final_query);      #&Apache::lonnet::logthis('simple search final query = '.$/.$final_query);
     return ($final_query,$pretty_search_string,      return ($final_query,$pretty_search_string,
             $libraries_to_query);              $libraries_to_query);
 }  }
Line 2111  sub print_sort_form { Line 2132  sub print_sort_form {
         return;          return;
     }      }
     my $result;      my $result;
       my $html=&Apache::lonxml::xmlbegin();
     $result.=<<END;      $result.=<<END;
 <html>  $html
 <head>  <head>
 <script>  <script>
     function change_sort() {      function change_sort() {
Line 2352  sub run_search { Line 2374  sub run_search {
     #      #
     # Print run_search header      # Print run_search header
     #      #
       my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<END);      $r->print(<<END);
 <html>  $html
 <head><title>Search Status</title></head>  <head>
   <title>Search Status</title></head>
 $bodytag  $bodytag
 <form name="statusform" action="" method="post">  <form name="statusform" action="" method="post">
 <input type="hidden" name="Queue" value="" />  <input type="hidden" name="Queue" value="" />
Line 2422  END Line 2446  END
 <table>  <table>
 <tr><th>Status</th><th>Total Matches</th><th>Time Remaining</th><th></th></tr>  <tr><th>Status</th><th>Total Matches</th><th>Time Remaining</th><th></th></tr>
 <tr>  <tr>
 <td><input type="text" name="status"  value="" size="30" /></td>  <td><input type="text" name="status"  value="" size="50" /></td>
 <td><input type="text" name="count"   value="" size="10" /></td>  <td><input type="text" name="count"   value="" size="10" /></td>
 <td><input type="text" name="seconds" value="" size="8" /></td>  <td><input type="text" name="seconds" value="" size="8" /></td>
 <td>$revise</td>  <td>$revise</td>
Line 2469  END Line 2493  END
                 delete ($Server_status{$server});                  delete ($Server_status{$server});
                 next;                  next;
             }              }
             $status=~/^([\.\w]+)$/;               $status=~s|/||g; 
            my $datafile=$r->dir_config('lonDaemons').'/tmp/'.$1;             my $datafile=$r->dir_config('lonDaemons').'/tmp/'.$status;
             if (-e $datafile && ! -e "$datafile.end") {              if (-e $datafile && ! -e "$datafile.end") {
                 &update_status($r,&mt('Receiving results from [_1]',$server));                  &update_status($r,&mt('Receiving results from [_1]',$server));
                 next;                  next;
Line 2661  sub display_results { Line 2685  sub display_results {
               );                );
     #      #
     # Build sorting selector      # Build sorting selector
     my @field_order =  ('default',      my @fields = 
                         'title',          (
                         'author',           {key=>'default' },
                         'subject',           {key=>'title' },
                         'url',           {key =>'author' },
                         'keywords',           {key =>'subject'},
                         'version',           {key =>'url',desc=>'URL'},
                         'language',           {key =>'keywords'},
                         'creationdate'=>,           {key =>'language'},
                         'lastrevisiondate',           {key =>'creationdate'},
                         'owner',           {key =>'lastrevisiondate'},
                         'copyright',           {key =>'owner'},
                         'authorspace',           {key =>'copyright'},
                         'lowestgradeleve',           {key =>'authorspace'},
                         'highestgradelevel',           {key =>'lowestgradelevel'},
                         'standards',           {key =>'highestgradelevel'},
                         'count',           {key =>'standards',desc=>'Standards'},
                         'stdno',           {key =>'count',desc=>'Number of accesses'},
                         'avetries',           {key =>'stdno',desc=>'Students Attempting'},
                         'difficulty',           {key =>'avetries',desc=>'Average Number of Tries'},
                         'disc',           {key =>'difficulty',desc=>'Mean Degree of Difficulty'},
                         'clear',           {key =>'disc',desc=>'Mean Degree of Discrimination'},
                         'technical',           {key =>'clear',desc=>'Evaluation: Clear'},
                         'correct',           {key =>'technical',desc=>'Evaluation: Technically Correct'},
                         'helpful',           {key =>'correct',desc=>'Evaluation: Material is Correct'},
                         'depth',           {key =>'helpful',desc=>'Evaluation: Material is Helpful'},
                         );                                                         {key =>'depth',desc=>'Evaluation: Material has Depth'},
     my %sort_fields = ('default'     => 'Default',           );
                        'title'       => 'Title',      my %fieldnames = &Apache::lonmeta::fieldnames();
                        'author'      => 'Author',      my @field_order;
                        'subject'     => 'Subject',      foreach my $field_data (@fields) {
                        'url'         => 'URL',          push(@field_order,$field_data->{'key'});
                        'keywords'    => 'Keywords',          if (! exists($field_data->{'desc'})) {
                        'version'     => 'Version',              $field_data->{'desc'}=$fieldnames{$field_data->{'key'}};
                        'language'    => 'Language',          } else {
                        'creationdate'=> 'Creation Date',              if (! defined($field_data->{'desc'})) {
                        'lastrevisiondate' => 'Last Revision Date',                  $field_data->{'desc'} = ucfirst($field_data->{'key'});
                        'owner'       => 'Owner',              }
                        'copyright'   => 'Copyright',              $field_data->{'desc'} = &mt($field_data->{'desc'});
                        'authorspace' => 'Authorspace',          }
                        'lowestgradeleve' => 'Lowest Grade Level',      }
                        'highestgradelevel' => 'Highest Grade Level',      my %sort_fields = map {$_->{'key'},$_->{'desc'}} @fields;
                        'standards'   => 'Standards',      $sort_fields{'select_form_order'} = \@field_order;
                        'count'       => 'Number of Accesses',      $ENV{'form.sortorder'} = 'asc' if (! exists($ENV{'form.sortorder'}));
                        'stdno'       => 'Students Attempting',      my $sortform = &mt('Sort by [_1] [_2]',
                        'avetries'    => 'Average Number of Tries',  
                        'difficulty'  => 'Mean Degree of Difficulty',  
                        'disc'        => 'Mean Degree of Discrimination',  
                        'clear'       => 'Evaluation: Clear',  
                        'technical'   => 'Evaluation: Technically Correct',  
                        'correct'     => 'Evaluation: Material is Correct',  
                        'helpful'     => 'Evaluation: Material is Helpful',  
                        'depth'       => 'Evaluation: Material has Depth',  
                        'select_form_order' => \@field_order,  
                        );  
   
     my $sortform = &mt('Sort by [_1]',  
                        &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'},
                                                         'sortorder',
                                                         (asc =>&mt('Ascending'),
                                                          desc=>&mt('Descending')
                                                          ))
                          );
     ##      ##
     ## Output links (if necessary) for 'prev' and 'next' pages.      ## Output links (if necessary) for 'prev' and 'next' pages.
     $r->print      $r->print
         ('<table width="100%"><tr><td width="25%" align="right">'.          ('<table width="100%"><tr><td width="25%" align="right">'.
          $sortform.           '<nobr>'.$sortform.'</nobr>'.
          '</td><td width="25%" align="right">'.           '</td><td width="25%" align="right">'.
          &prev_next_buttons($min,$ENV{'form.show'},$total_results).           &prev_next_buttons($min,$ENV{'form.show'},$total_results).
          '</td><td align="right">'.           '</td><td align="right">'.
Line 2745  sub display_results { Line 2763  sub display_results {
     ##      ##
     ## Get results from MySQL table      ## Get results from MySQL table
     my $sort_command  = 'id>='.$min.' AND id<='.$max;      my $sort_command  = 'id>='.$min.' AND id<='.$max;
       my $order;
       if (exists($ENV{'form.sortorder'})) {
           if ($ENV{'form.sortorder'} eq 'asc') {
               $order = 'ASC';
           } elsif ($ENV{'form.sortorder'} eq 'desc') {
               $order = 'DESC';
           } else {
               $order = '';
           }
       } else {
           $order = '';
       }
     if ($ENV{'form.sortfield'} ne 'default' &&       if ($ENV{'form.sortfield'} ne 'default' && 
         exists($sort_fields{$ENV{'form.sortfield'}})) {          exists($sort_fields{$ENV{'form.sortfield'}})) {
         $sort_command = $ENV{'form.sortfield'}.' IS NOT NULL '.          $sort_command = $ENV{'form.sortfield'}.' IS NOT NULL '.
             'ORDER BY '.$ENV{'form.sortfield'}.              'ORDER BY '.$ENV{'form.sortfield'}.' '.$order.
             '  LIMIT '.($min-1).','.($max-$min);              '  LIMIT '.($min-1).','.($max-$min);
     }      }
     my @Results = &Apache::lonmysql::get_rows($table,$sort_command);      my @Results = &Apache::lonmysql::get_rows($table,$sort_command);
Line 3087  END Line 3117  END
 ######################################################################  ######################################################################
 sub search_status_header {  sub search_status_header {
     my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);      my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);
       my $html=&Apache::lonxml::xmlbegin();
     return <<ENDSTATUS;      return <<ENDSTATUS;
 <html><head><title>Search Status</title></head>  $html
   <head>
   <title>Search Status</title></head>
 $bodytag  $bodytag
 <h3>Search Status</h3>  <h3>Search Status</h3>
 Sending search request to LON-CAPA servers.<br />  Sending search request to LON-CAPA servers.<br />
Line 3111  sub print_frames_interface { Line 3144  sub print_frames_interface {
         "&persistent_db_id=".$ENV{'form.persistent_db_id'};          "&persistent_db_id=".$ENV{'form.persistent_db_id'};
     my $run_search_link = $basic_link."&phase=run_search";      my $run_search_link = $basic_link."&phase=run_search";
     my $results_link = &results_link();      my $results_link = &results_link();
       my $html=&Apache::lonxml::xmlbegin();
     my $result = <<"ENDFRAMES";      my $result = <<"ENDFRAMES";
 <html>  $html
 <head>  <head>
 <script>  <script>
 var targetwin = opener;  var targetwin = opener;
Line 3308  sub detailed_citation_view { Line 3342  sub detailed_citation_view {
 sub summary_view {  sub summary_view {
     my ($prefix,%values) = @_;      my ($prefix,%values) = @_;
     my $icon=&Apache::loncommon::icon($values{'url'});      my $icon=&Apache::loncommon::icon($values{'url'});
     my $result=<<END;      my $result=qq{$prefix<img src="$icon" />};
 $prefix<img src="$icon" />&nbsp;      if (exists($ENV{'form.sortfield'}) && 
           $ENV{'form.sortfield'} !~ /^(default|
                                        author|
                                        url|
                                        title|
                                        owner|
                                        lastrevisiondate|
                                        copyright)$/x) {
           my $tmp = $values{$ENV{'form.sortfield'}};
           if (! defined($tmp)) { $tmp = 'undefined'; }
           $result .= '&nbsp;'.$tmp.'&nbsp;';
       }
       $result.=<<END;
 <a href="http://$ENV{'HTTP_HOST'}$values{'url'}"   <a href="http://$ENV{'HTTP_HOST'}$values{'url'}" 
    target='search_preview'>$values{'author'}</a><br />     target='search_preview'>$values{'title'}</a><br />
 $values{'title'}<br />  $values{'author'}, $values{'owner'} -- $values{'lastrevisiondate'}<br />
 $values{'owner'} -- $values{'lastrevisiondate'}<br />  
 $values{'copyrighttag'}<br />  $values{'copyrighttag'}<br />
 $values{'extrashow'}  $values{'extrashow'}
 </p>  </p>
Line 3336  END Line 3381  END
 sub compact_view {  sub compact_view {
     my ($prefix,%values) = @_;      my ($prefix,%values) = @_;
     my $result =       my $result = 
         $prefix.'<img src="'.&Apache::loncommon::icon($values{'url'}).          $prefix.'<img src="'.&Apache::loncommon::icon($values{'url'}).'">';
         '">&nbsp;<a href="'.$values{'url'}.'" target="search_preview">'.      if (exists($ENV{'form.sortfield'}) && 
           $ENV{'form.sortfield'} !~ /^(default|author|url|title)$/) {
           my $tmp = $values{$ENV{'form.sortfield'}};
           if (! defined($tmp)) { $tmp = 'undefined'; }
           $result .= '&nbsp;'.$tmp.'&nbsp;';
       }
       $result.='&nbsp;<a href="'.$values{'url'}.'" target="search_preview">'.
         $values{'title'}.'</a>'.('&nbsp;'x2).          $values{'title'}.'</a>'.('&nbsp;'x2).
         '<b>'.$values{'author'}.'</b><br />';          '<b>'.$values{'author'}.'</b><br />';
     return $result;      return $result;
Line 3366  $prefix <img src="$icon" /> Line 3417  $prefix <img src="$icon" />
     <dd><a href="http://$ENV{'HTTP_HOST'}$values{'url'}"       <dd><a href="http://$ENV{'HTTP_HOST'}$values{'url'}" 
          target='search_preview'>$values{'url'}</a></dd>           target='search_preview'>$values{'url'}</a></dd>
 END  END
     foreach my $field ('title','author','subject','keywords','notes',      foreach my $field ('title','author','domain','subject','keywords','notes',
                        'mimetag','language','creationdate','lastrevisiondate',                         'mimetag','language','creationdate','lastrevisiondate',
                        'owner','copyrighttag','hostname','abstract') {                         'owner','copyrighttag','hostname','abstract') {
         $result .= (' 'x4).'<dt>'.$Translated{$field}.'</dt>'."\n".          $result .= (' 'x4).'<dt>'.$Translated{$field}.'</dt>'."\n".
Line 3407  sub xml_sgml_view { Line 3458  sub xml_sgml_view {
     my ($prefix,%values) = @_;      my ($prefix,%values) = @_;
     my $xml = '<LonCapaResource>'."\n";      my $xml = '<LonCapaResource>'."\n";
     # The usual suspects      # The usual suspects
     foreach my $field ('url','title','author','subject','keywords','notes') {      foreach my $field ('url','title','author','subject','keywords','notes','domain') {
         $xml .= qq{<$field>$values{$field}</$field>}."\n";          $xml .= qq{<$field>$values{$field}</$field>}."\n";
     }      }
     #      #
Line 3508  sub output_unparsed_phrase_error { Line 3559  sub output_unparsed_phrase_error {
     my $heading = &mt('Unparsed Field');      my $heading = &mt('Unparsed Field');
     my $revise  = &mt('Revise search request');      my $revise  = &mt('Revise search request');
     # make query information persistent to allow for subsequent revision      # make query information persistent to allow for subsequent revision
       my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<ENDPAGE);      $r->print(<<ENDPAGE);
 <html>  $html
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
 </head>  </head>
Line 3556  sub output_blank_field_error { Line 3608  sub output_blank_field_error {
     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 Queary');
       my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<ENDPAGE);      $r->print(<<ENDPAGE);
 <html>  $html
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
 </head>  </head>
Line 3602  sub output_date_error { Line 3655  sub output_date_error {
     my ($r,$message,$closebutton,$hidden_fields)=@_;      my ($r,$message,$closebutton,$hidden_fields)=@_;
     # make query information persistent to allow for subsequent revision      # make query information persistent to allow for subsequent revision
     my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);      my $bodytag=&Apache::loncommon::bodytag(undef,undef,undef,1);
       my $html=&Apache::lonxml::xmlbegin();
     $r->print(<<RESULTS);      $r->print(<<RESULTS);
 <html>  $html
 <head>  <head>
 <title>The LearningOnline Network with CAPA</title>  <title>The LearningOnline Network with CAPA</title>
 </head>  </head>

Removed from v.1.236  
changed lines
  Added in v.1.242


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