Diff for /loncom/interface/statistics/lonstathelpers.pm between versions 1.22 and 1.24

version 1.22, 2004/09/16 14:28:19 version 1.24, 2004/09/23 14:35:25
Line 169  sub ProblemSelector { Line 169  sub ProblemSelector {
   
 =pod  =pod
   
 =item &MultpleProblemSelector($navmap,$ResponseTypes,$selected,$inputname)  =item &MultipleProblemSelector($navmap,$selected,$inputname)
   
 Generate HTML with checkboxes for problem selection.  Generate HTML with checkboxes for problem selection.
   
Line 178  Input: Line 178  Input:
 $navmap: a navmap object.  If undef, navmaps will be called to create a  $navmap: a navmap object.  If undef, navmaps will be called to create a
 new object.  new object.
   
 $ResponseTypes: scalar containing regular expression which matches response   
 types.  Only those problems which contain the given response type will be   
 shown.  
   
 $selected: Scalar, Array, or hash reference of currently selected items.  $selected: Scalar, Array, or hash reference of currently selected items.
   
 $inputname: The name of the form elements to use for the checkboxs.  $inputname: The name of the form elements to use for the checkboxs.
Line 194  and their contents.  A checkbox is provi Line 190  and their contents.  A checkbox is provi
 ####################################################  ####################################################
 ####################################################  ####################################################
 sub MultipleProblemSelector {  sub MultipleProblemSelector {
     my ($navmap,$ReponseTypes,$inputname,$formname)=@_;      my ($navmap,$inputname,$formname)=@_;
     my $cid = $ENV{'request.course.id'};      my $cid = $ENV{'request.course.id'};
     my $Str;      my $Str;
     # Massage the input as needed.      # Massage the input as needed.
Line 210  sub MultipleProblemSelector { Line 206  sub MultipleProblemSelector {
     # Header      # Header
     $Str .= <<"END";      $Str .= <<"END";
 <script>  <script>
     function checkall(value, checkName) {      function checkall(value) {
         for (i=0; i<document.forms.$formname.elements.length; i++) {          for (i=0; i<document.forms.$formname.elements.length; i++) {
             ele = document.forms.$formname.elements[i];              ele = document.forms.$formname.elements[i];
             if (ele.name == '$inputname') {              if (ele.name == '$inputname') {
Line 235  END Line 231  END
     while (my $curRes = $iterator->next()) {      while (my $curRes = $iterator->next()) {
         if ($curRes == $iterator->END_MAP) {          if ($curRes == $iterator->END_MAP) {
             if (ref($Accumulator[-1]) eq 'CODE') {              if (ref($Accumulator[-1]) eq 'CODE') {
                 push(@Sequence_Data,&{$Accumulator[-1]}());                  my $old_accumulator = pop(@Accumulator);
                 pop(@Accumulator);                  push(@Sequence_Data,&{$old_accumulator}());
             }              }
         } elsif ($curRes == $iterator->BEGIN_MAP) {          } elsif ($curRes == $iterator->BEGIN_MAP) {
             # Not much to do here.              # Not much to do here.
         }          }
         next if (! ref($curRes));          next if (! ref($curRes));
         if ($curRes->is_map) {          if ($curRes->is_map) {
             push(@Accumulator,&new_accumulator($curRes->title,              push(@Accumulator,&new_accumulator($curRes->compTitle,
                                                $curRes->src,                                                 $curRes->src,
                                                $curRes->symb,                                                 $curRes->symb,
                                                $inputname));                                                 $inputname));
Line 259  END Line 255  END
         #my $seq = pop(@Sequence_Data);          #my $seq = pop(@Sequence_Data);
         next if (! defined($seq) || ref($seq) ne 'HASH');          next if (! defined($seq) || ref($seq) ne 'HASH');
         $Str.= '<tr><td colspan="2">'.          $Str.= '<tr><td colspan="2">'.
             '<b>'.&get_title($seq->{'title'},$seq->{'src'}).'</b>'.              '<b>'.$seq->{'title'}.'</b>'.
             '</td></tr>'.$/;              '</td></tr>'.$/;
         $Str.= $seq->{'html'};          $Str.= $seq->{'html'};
     }      }
Line 284  sub new_accumulator { Line 280  sub new_accumulator {
         sub {          sub {
             if (@_) {               if (@_) { 
                 my ($res,$checked) = @_;                  my ($res,$checked) = @_;
                 $target.='<tr><td>'.                  $target.='<tr><td><label>'.
                     '<input type="checkbox" name="'.$inputname.'" ';                      '<input type="checkbox" name="'.$inputname.'" ';
                 if ($checked) {                  if ($checked) {
                     $target .= 'checked ';                      $target .= 'checked ';
                 }                  }
                 $target.=                   $target.= 
                     'value="'.&Apache::lonnet::escape($res->symb).'" />'.                      'value="'.&Apache::lonnet::escape($res->symb).'" />'.
                     '</td><td>'.&get_title($res->title,$res->symb).'</td>'.                      '&nbsp;'.$res->compTitle.'</label></td>'.
                     '</tr>'.$/;                      '</tr>'.$/;
             } else {               } else { 
                 if (defined($target)) {                  if (defined($target)) {
Line 1244  Returns: An array of scalars containing Line 1240  Returns: An array of scalars containing
 ####################################################  ####################################################
 ####################################################  ####################################################
 sub manage_caches {  sub manage_caches {
     my ($r,$formname,$inputname) = @_;      my ($r,$formname,$inputname,$update_message) = @_;
     &Apache::loncoursedata::clear_internal_caches();      &Apache::loncoursedata::clear_internal_caches();
     my $sectionkey =       my $sectionkey = 
         join(',',          join(',',
Line 1261  sub manage_caches { Line 1257  sub manage_caches {
         (exists($ENV{'form.prevenrollstatus'}) &&          (exists($ENV{'form.prevenrollstatus'}) &&
             $ENV{'form.prevenrollstatus'} ne $statuskey)              $ENV{'form.prevenrollstatus'} ne $statuskey)
         ) {          ) {
           if (defined($update_message)) {
               $r->print($update_message);
           }
         &Apache::lonstatistics::Gather_Full_Student_Data($r,$formname,          &Apache::lonstatistics::Gather_Full_Student_Data($r,$formname,
                                                          $inputname);                                                           $inputname);
               
     }      }
     #      #
     my @Buttons =       my @Buttons = 

Removed from v.1.22  
changed lines
  Added in v.1.24


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