Diff for /loncom/interface/lonhelper.pm between versions 1.130 and 1.132

version 1.130, 2006/01/24 22:20:19 version 1.132, 2006/03/06 23:32:31
Line 2306  sub render { Line 2306  sub render {
             }               } 
         }          }
     }      }
       function checkexpired()  {
    for (i=0; i<document.forms.helpform.elements.length; i++) {
               if (document.forms.helpform.elements[i].value.indexOf(':Expired') != -1) {
                   document.forms.helpform.elements[i].checked=true;
               } 
           }
       }
     function uncheckexpired() {      function uncheckexpired() {
  for (i=0; i<document.forms.helpform.elements.length; i++) {   for (i=0; i<document.forms.helpform.elements.length; i++) {
             if (document.forms.helpform.elements[i].value.indexOf(':Expired') != -1) {              if (document.forms.helpform.elements[i].value.indexOf(':Expired') != -1) {
Line 2374  SCRIPT Line 2381  SCRIPT
 </table>  </table>
 <br />  <br />
 BUTTONS  BUTTONS
       $result .= $buttons;   
   
     }      }
   
     if (defined $self->{ERROR_MSG}) {      if (defined $self->{ERROR_MSG}) {
Line 2393  BUTTONS Line 2402  BUTTONS
  delete($defaultUsers{''});   delete($defaultUsers{''});
     }      }
     my $choices = [];      my $choices = [];
       my $expired_students = []; # Will hold expired students.
   
     # Load up the non-students, if necessary      # Load up the non-students, if necessary
     if ($self->{'coursepersonnel'}) {      if ($self->{'coursepersonnel'}) {
Line 2430  BUTTONS Line 2440  BUTTONS
         }          }
         return $classlist->{$a}->[$fullname] cmp $classlist->{$b}->[$fullname];          return $classlist->{$a}->[$fullname] cmp $classlist->{$b}->[$fullname];
     } @keys;      } @keys;
       #
       #  now add the fancy section choice... first enumerate the sections:
       if ($self->{'multichoice'}) {
    my %sections;
    for my $key (@keys) {
       my $section_name = $classlist->{$key}->[$section];
       if ($section_name ne "") {
    $sections{$section_name} = 1;
       }
    }
    #  The variable $choice_widget will have the html to make the choice 
    #  selector.
    my $size=5;
    if (scalar(keys(%sections)) < 5) {
       $size=scalar(keys(%sections));
    }
    my $choice_widget = '<select multiple name="chosensections" size="'.$size.'">'."\n";
    foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) {
       $choice_widget .= "<option name=\"$sec\">$sec</option>\n";
    }
    $choice_widget .= "<option>none</option></select>\n";
   
    # Build a table without any borders to contain the section based
    # selection:
   
    my $section_selectors =<<SECTIONSELECT;
   <table border="0">
     <tr valign="top">
      <td>For Sections:</td><td>$choice_widget</td>
      <td><label><input type="radio" name="personstate" value="Active" checked />
                  Current Students</label></td>
      <td><label><input type="radio" name="personstate" value="All" />
                  All students</label></td>
      <td><label><input type="radio" name="personstate" value="Expired" />
                  Expired Students</label></td>
     </tr>
     <tr>
      <td><input type="button" value="Select" onclick="checksections(true);" /></td>
      <td><input type="button" value="Unselect" onclick="checksections(false);" /></td></tr>
   </table>
   <br />
   SECTIONSELECT
            $result .= $section_selectors;
       }
   
     # username, fullname, section, type      # username, fullname, section, type
     for (@keys) {      for (@keys) {
  # Filter out inactive students if we've set "activeonly"  
  if (!$self->{'activeonly'} || $classlist->{$_}->[$status] eq   # We split the active students into the choices array and
           # inactive ones into expired_students so that we can put them in 2 separate
    # tables.
   
    if ( $classlist->{$_}->[$status] eq
     'Active') {      'Active') {
     push @$choices, [$_, $classlist->{$_}->[$fullname],       push @$choices, [$_, $classlist->{$_}->[$fullname], 
      $classlist->{$_}->[$section],       $classlist->{$_}->[$section],
      $classlist->{$_}->[$status], 'Student'];       $classlist->{$_}->[$status], 'Student'];
    } else {
       push @$expired_students, [$_, $classlist->{$_}->[$fullname], 
         $classlist->{$_}->[$section],
         $classlist->{$_}->[$status], 'Student'];
  }   }
     }      }
   
Line 2453  BUTTONS Line 2515  BUTTONS
  "<td align='center'><b>".&mt('Username').":".&mt('Domain')."</b></td></tr>";   "<td align='center'><b>".&mt('Username').":".&mt('Domain')."</b></td></tr>";
   
     my $checked = 0;      my $checked = 0;
       #
       # Give the active students and staff:
       #
     for my $choice (@$choices) {      for my $choice (@$choices) {
         $result .= "<tr><td><input type='$type' name='" .          $result .= "<tr><td><input type='$type' name='" .
             $self->{'variable'} . '.forminput' . "'";              $self->{'variable'} . '.forminput' . "'";
Line 2484  BUTTONS Line 2549  BUTTONS
     . HTML::Entities::encode($choice->[0],'<>&"')      . HTML::Entities::encode($choice->[0],'<>&"')
     . "</td></tr>\n";      . "</td></tr>\n";
     }      }
   
     $result .= "</table>\n\n";      $result .= "</table>\n\n";
     $result .= $buttons;     
       # If activeonly is not set then we can also give the expired students:
     #      #
     #  now add the fancy section choice... first enumerate the sections:      if (!$self->{'activeonly'} && ((scalar @$expired_students) > 0)) {
     if ($self->{'multichoice'}) {   $result .= "<p>Inactive students: </p>\n";
  my %sections;   $result .= <<INACTIVEBUTTONS;
  for my $key (@keys) {     <table>
     my $section_name = $classlist->{$key}->[$section];                <tr>
     if ($section_name ne "") {                   <td><input type="button" value="Select expired" onclick="checkexpired();" /> </td>
  $sections{$section_name} = 1;   <td><input type="button" value="Unselect expired" onclick="uncheckexpired();" /></td>
                 </tr>
              </table>
   INACTIVEBUTTONS
    $result .= "<table>\n";
   
    for my $choice (@$expired_students) {
           $result .= "<tr><td><input type='$type' name='" .
               $self->{'variable'} . '.forminput' . "'";
               
    if (%defaultUsers) {
       my $user=$choice->[0];
       if (exists($defaultUsers{$user})) {
    $result .= " checked='checked' ";
    $checked = 1;
     }      }
    } elsif (!$self->{'multichoice'} && !$checked) {
               $result .= " checked='checked' ";
               $checked = 1;
           }
           $result .=
               " value='" . HTML::Entities::encode($choice->[0] . ':' 
    .$choice->[2] . ':' 
    .$choice->[1] . ':' 
    .$choice->[3], "<>&\"'")
               . "' /></td><td>"
               . HTML::Entities::encode($choice->[1],'<>&"')
               . "</td><td align='center'>" 
               . HTML::Entities::encode($choice->[2],'<>&"')
               . "</td>\n<td>" 
       . HTML::Entities::encode($choice->[3],'<>&"')
               . "</td>\n<td>" 
       . HTML::Entities::encode($choice->[4],'<>&"')
               . "</td>\n<td>" 
       . HTML::Entities::encode($choice->[0],'<>&"')
       . "</td></tr>\n";    
  }   }
  #  The variable $choice_widget will have the html to make the choice    $result .= "</table>\n";
  #  selector.  
  my $size=5;      }
  if (scalar(keys(%sections)) < 5) {  
     $size=scalar(keys(%sections));  
  }  
  my $choice_widget = '<select multiple name="chosensections" size="'.$size.'">'."\n";  
  foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) {  
     $choice_widget .= "<option name=\"$sec\">$sec</option>\n";  
  }  
  $choice_widget .= "<option>none</option></select>\n";  
   
  # Build a table without any borders to contain the section based  
  # selection:  
   
  my $section_selectors =<<SECTIONSELECT;  
 <table border="0">  
   <tr valign="top">  
    <td>For Sections:</td><td>$choice_widget</td>  
    <td><label><input type="radio" name="personstate" value="Active" checked />  
                Current Students</label></td>  
    <td><label><input type="radio" name="personstate" value="All" />  
                All students</label></td>  
    <td><label><input type="radio" name="personstate" value="Expired" />  
                Expired Students</label></td>  
   </tr>  
   <tr>  
    <td><input type="button" value="Select" onclick="checksections(true);" /></td>  
    <td><input type="button" value="Unselect" onclick="checksections(false);" /></td></tr>  
 </table>  
 <br />  
 SECTIONSELECT  
          $result .= $section_selectors;  
     }  
     return $result;      return $result;
 }  }
   

Removed from v.1.130  
changed lines
  Added in v.1.132


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