Diff for /loncom/interface/lonhelper.pm between versions 1.144 and 1.145

version 1.144, 2006/05/09 21:39:47 version 1.145, 2006/05/09 21:44:18
Line 2293  use Apache::lonnet; Line 2293  use Apache::lonnet;
 #                     the set of users that should be on or off.  #                     the set of users that should be on or off.
 #     $multiselect  - True if multiselect allowed.  #     $multiselect  - True if multiselect allowed.
 #     $resultname   - Name of result variable.  #     $resultname   - Name of result variable.
   #     $javascript   - If true, the javascript to run this is output
   #                     This should be true for the first call for a page
   #                     and false for all other calls... only matters if
   #                     multiselect is true.
 #  Returns:  #  Returns:
 #     HTML  text to add to the rendering of the helper.  #     HTML  text to add to the rendering of the helper.
 #  #
 sub render_student_list {  sub render_student_list {
     my (      my (
  $sections, $students, $formprefix, $defaultusers,   $sections, $students, $formprefix, $defaultusers,
  $multiselect, $resultname) = @_;   $multiselect, $resultname, $javascript) = @_;
   
     my $result = "";      my $result = "";
   
       if ($javascript && $multiselect) {
           $result .= <<SCRIPT;
   <script type="text/javascript">
   // <!--
   
       function findElement(name) {
    var i;
    var ele;
    for(i =0; i < document.forms.helpform.elements.length; i++) {
       ele = document.forms.helpform.elements[i];
       if(ele.name == name) {
    return ele;
       }
    }
    return null;
       }
       function isStudent(element) {
    if(element.value.indexOf(":Student") != -1) {
       return 1;
    }
    return 0;
       }
       function section(element) {
    var i;
    var info;
    if (element.value.indexOf(':') != -1) {
       info = element.value.split(':');
       return info[2];
    } else {
       return "";
    }
       }
       function rightSubForm(element, which) {
    if (element.value.indexOf(which) != -1) {
       return true;
    } else {
       return false;
    }
       }
   
       function setAllStudents(value, which) {
    var i;
    var ele;
    for (i =0; i < document.forms.helpform.elements.length; i++) {
       ele = document.forms.helpform.elements[i];
       if(isStudent(ele) && rightSubForm(ele, which)) {
    ele.checked=value;
       }
    }
       }
       function setAllCoursePersonnel(value, which) {
    var i;
    var ele;
    for (i =0; i < document.forms.helpform.elements.length; i++) {
       ele = document.forms.helpform.elements[i];
       if(!isStudent(ele) && rightSubForm(ele, which)) {
    ele.checked = value;
       }
    }
       }
       function setSection(which, value, subform) {
    var i;
    var ele;
    for (i =0; i < document.forms.helpform.elements.length; i++) {
       ele = document.forms.helpform.elements[i];
       if (ele.value.indexOf(':') != -1) {
    if ((section(ele) == which) && rightSubForm(ele, subform)) {
       ele.checked = value;
    }
       }
    }
       }
   
       function setCheckboxes(listbox, which, value) {
    var k;
    var elem;
    var what;
           elem = findElement(listbox);
    if (elem != null) {
       for (k = 0; k < elem.length; k++) {
    if (elem.options[k].selected) {
       what = elem.options[k].text;
       if (what == 'All Students') {
    setAllStudents(value, which);
       } else if (what == 'All Course Personnel') {
    setAllCoursePersonnel(value, which);
       } else if (what == 'No Section') {
    setSection('',value, which);
       } else {
    setSection(what, value, which);
       }
    }
       }
    }
       }
       function selectSections(listbox, which) {
    setCheckboxes(listbox, which, true);
   
       }
       function unselectSections(listbox, which) {
    setCheckboxes(listbox, which, false);
       }
   
   // -->
   </script>
   SCRIPT
   
       }
   
     # If multiple selections are allowed, we have a listbox      # If multiple selections are allowed, we have a listbox
     # at the top which allows quick selections from each section      # at the top which allows quick selections from each section
     # as well as from categories of personnel.      # as well as from categories of personnel.
Line 2435  sub render { Line 2548  sub render {
     my $buttons = '';      my $buttons = '';
     my $var = $self->{'variable'};      my $var = $self->{'variable'};
   
     if ($self->{'multichoice'}) {  
         $result = <<SCRIPT;  
 <script type="text/javascript">  
 // <!--  
   
     function findElement(name) {  
  var i;  
  var ele;  
  for(i =0; i < document.forms.helpform.elements.length; i++) {  
     ele = document.forms.helpform.elements[i];  
     if(ele.name == name) {  
  return ele;  
     }  
  }  
  return null;  
     }  
     function isStudent(element) {  
  if(element.value.indexOf(":Student") != -1) {  
     return 1;  
  }  
  return 0;  
     }  
     function section(element) {  
  var i;  
  var info;  
  if (element.value.indexOf(':') != -1) {  
     info = element.value.split(':');  
     return info[2];  
  } else {  
     return "";  
  }  
     }  
     function rightSubForm(element, which) {  
  if (element.value.indexOf(which) != -1) {  
     return true;  
  } else {  
     return false;  
  }  
     }  
   
     function setAllStudents(value, which) {  
  var i;  
  var ele;  
  for (i =0; i < document.forms.helpform.elements.length; i++) {  
     ele = document.forms.helpform.elements[i];  
     if(isStudent(ele) && rightSubForm(ele, which)) {  
  ele.checked=value;  
     }  
  }  
     }  
     function setAllCoursePersonnel(value, which) {  
  var i;  
  var ele;  
  for (i =0; i < document.forms.helpform.elements.length; i++) {  
     ele = document.forms.helpform.elements[i];  
     if(!isStudent(ele) && rightSubForm(ele, which)) {  
  ele.checked = value;  
     }  
  }  
     }  
     function setSection(which, value, subform) {  
  var i;  
  var ele;  
  for (i =0; i < document.forms.helpform.elements.length; i++) {  
     ele = document.forms.helpform.elements[i];  
     if (ele.value.indexOf(':') != -1) {  
  if ((section(ele) == which) && rightSubForm(ele, subform)) {  
     ele.checked = value;  
  }  
     }  
  }  
     }  
   
     function setCheckboxes(listbox, which, value) {  
  var k;  
  var elem;  
  var what;  
         elem = findElement(listbox);  
  if (elem != null) {  
     for (k = 0; k < elem.length; k++) {  
  if (elem.options[k].selected) {  
     what = elem.options[k].text;  
     if (what == 'All Students') {  
  setAllStudents(value, which);  
     } else if (what == 'All Course Personnel') {  
  setAllCoursePersonnel(value, which);  
     } else if (what == 'No Section') {  
  setSection('',value, which);  
     } else {  
  setSection(what, value, which);  
     }  
  }  
     }  
  }  
     }  
     function selectSections(listbox, which) {  
  setCheckboxes(listbox, which, true);  
   
     }  
     function unselectSections(listbox, which) {  
  setCheckboxes(listbox, which, false);  
     }  
   
 // -->  
 </script>  
 SCRIPT  
   
         my %lt=&Apache::lonlocal::texthash(  
                     'ocs'  => "Select Only Current Students",  
                     'ues'  => "Unselect Expired Students",  
                     'sas'  => "Select All Students",  
                     'uas'  => "Unselect All Students",  
                     'sfsg' => "Select Current Students for Section/Group",  
     'ufsg' => "Unselect for Section/Group");  
    
         $buttons = <<BUTTONS;  
 <br />  
 <table>  
     
   <tr>  
      <td><input type="button" onclick="checkall(true, '$var')" value="$lt{'sas'}" /></td>  
      <td> <input type="button" onclick="checkall(false, '$var')" value="$lt{'uas'}" /><br /></td>  
   </tr>  
     
 </table>  
 <br />  
 BUTTONS  
 #    $result .= $buttons;     
   
 }  
   
     if (defined $self->{ERROR_MSG}) {      if (defined $self->{ERROR_MSG}) {
         $result .= '<font color="#FF0000">' . $self->{ERROR_MSG} . '</font><br /><br />';          $result .= '<font color="#FF0000">' . $self->{ERROR_MSG} . '</font><br /><br />';
Line 2704  BUTTONS Line 2687  BUTTONS
   "current",    "current",
   \%defaultUsers,    \%defaultUsers,
     $self->{'multichoice'},      $self->{'multichoice'},
     $self->{'variable'});      $self->{'variable'},
       1);
   
   
     # If activeonly is not set then we can also give the expired students:      # If activeonly is not set then we can also give the expired students:
Line 2718  BUTTONS Line 2702  BUTTONS
       "future",        "future",
       \%defaultUsers,        \%defaultUsers,
  $self->{'multichoice'},   $self->{'multichoice'},
  $self->{'variable'});   $self->{'variable'},
    0);
  # Past    # Past 
   
  $result .= &render_student_list(\%sections,   $result .= &render_student_list(\%sections,
Line 2726  BUTTONS Line 2711  BUTTONS
       "past",        "past",
       \%defaultUsers,        \%defaultUsers,
  $self->{'multichoice'},   $self->{'multichoice'},
  $self->{'variable'});   $self->{'variable'},
    0);
     }      }
   
   

Removed from v.1.144  
changed lines
  Added in v.1.145


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