Diff for /loncom/interface/lonselstudent.pm between versions 1.9 and 1.14

version 1.9, 2006/07/17 16:26:08 version 1.14, 2009/01/15 18:23:27
Line 28 Line 28
   
 package Apache::lonselstudent;  package Apache::lonselstudent;
 use     Apache::lonnet;  use     Apache::lonnet;
 use     Apache::loncoursedata;  use     Apache::lonlocal;
 use     HTML::Entities;  use     Apache::loncoursedata();
   use     HTML::Entities();
   
 #  #
 #  Utility function used when rendering <student> tags.  #  Utility function used when rendering <student> tags.
Line 110  sub get_people_in_class { Line 111  sub get_people_in_class {
   
     my $classlist = &Apache::loncoursedata::get_classlist();      my $classlist = &Apache::loncoursedata::get_classlist();
     my @keys = keys(%{$classlist});      my @keys = keys(%{$classlist});
     # Sort by: Section, name      # Sort by: fullname, username
     @keys = sort {      @keys = sort {
  lc($classlist->{$a}[$section])  cmp lc($classlist->{$b}[$section])  ||  
  lc($classlist->{$a}[$fullname]) cmp lc($classlist->{$b}[$fullname]) ||   lc($classlist->{$a}[$fullname]) cmp lc($classlist->{$b}[$fullname]) ||
  lc($a) cmp lc($b)   lc($a) cmp lc($b)
     } (@keys);      } (@keys);
Line 178  sub get_people_in_class { Line 178  sub get_people_in_class {
 #                     This should be true for the first call for a page  #                     This should be true for the first call for a page
 #                     and false for all other calls... only matters if  #                     and false for all other calls... only matters if
 #                     multiselect is true.  #                     multiselect is true.
   #     $context      - If email, do not include <br /><hr /> tags at the end
   #                     of the data table. 
 #  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 ($students, $formname, $formprefix, $defaultusers,      my ($students, $formname, $formprefix, $defaultusers,
  $multiselect, $resultname, $javascript) = @_;   $multiselect, $resultname, $javascript, $context) = @_;
   
     my $result = "";      my $result = "";
   
Line 195  sub render_student_list { Line 197  sub render_student_list {
 <script type="text/javascript">  <script type="text/javascript">
 // <!--  // <!--
   
     function findElement(name) {      function findElement(name,formname) {
  var i;   var i;
  var ele;   var ele;
  for(i =0; i < document.forms.$formname.elements.length; i++) {   for(i =0; i < formname.elements.length; i++) {
     ele = document.forms.$formname.elements[i];      ele = formname.elements[i];
     if(ele.name == name) {      if(ele.name == name) {
  return ele;   return ele;
     }      }
Line 230  sub render_student_list { Line 232  sub render_student_list {
  }   }
     }      }
   
     function setAllStudents(value, which) {      function setAllStudents(value, which, formname) {
  var i;   var i;
  var ele;   var ele;
  for (i =0; i < document.forms.$formname.elements.length; i++) {   for (i =0; i < formname.elements.length; i++) {
     ele = document.forms.$formname.elements[i];      ele = formname.elements[i];
     if(isStudent(ele) && rightSubForm(ele, which)) {      if(isStudent(ele) && rightSubForm(ele, which)) {
  ele.checked=value;   ele.checked=value;
     }      }
  }   }
     }      }
     function setAllCoursePersonnel(value, which) {      function setAllCoursePersonnel(value, which, formname) {
  var i;   var i;
  var ele;   var ele;
  for (i =0; i < document.forms.$formname.elements.length; i++) {   for (i =0; i < formname.elements.length; i++) {
     ele = document.forms.$formname.elements[i];      ele = formname.elements[i];
     if(!isStudent(ele) && rightSubForm(ele, which)) {      if(!isStudent(ele) && rightSubForm(ele, which)) {
  ele.checked = value;   ele.checked = value;
     }      }
  }   }
     }      }
     function setSection(which, value, subform) {      function setSection(which, value, subform, formname) {
  var i;   var i;
  var ele;   var ele;
  for (i =0; i < document.forms.$formname.elements.length; i++) {   for (i =0; i < formname.elements.length; i++) {
     ele = document.forms.$formname.elements[i];      ele = formname.elements[i];
     if (ele.value.indexOf(':') != -1) {      if (ele.value.indexOf(':') != -1) {
  if ((section(ele) == which) && rightSubForm(ele, subform)) {   if ((section(ele) == which) && rightSubForm(ele, subform)) {
     ele.checked = value;      ele.checked = value;
Line 263  sub render_student_list { Line 265  sub render_student_list {
  }   }
     }      }
   
     function setCheckboxes(listbox, which, value) {      function setCheckboxes(listbox, which, value, formname) {
  var k;   var k;
  var elem;   var elem;
  var what;   var what;
         elem = findElement(listbox);          elem = findElement(listbox, formname);
  if (elem != null) {   if (elem != null) {
     for (k = 0; k < elem.length; k++) {      for (k = 0; k < elem.length; k++) {
  if (elem.options[k].selected) {   if (elem.options[k].selected) {
     what = elem.options[k].text;      what = elem.options[k].value;
     if (what == 'All Students') {      if (what == 'allstudents') {
  setAllStudents(value, which);   setAllStudents(value, which, formname);
     } else if (what == 'All Course Personnel') {      } else if (what == 'allpersonnel') {
  setAllCoursePersonnel(value, which);   setAllCoursePersonnel(value, which, formname);
     } else if (what == 'No Section') {      } else if (what == 'nosection') {
  setSection('',value, which);   setSection('',value, which, formname);
     } else {      } else {
  setSection(what, value, which);   setSection(what, value, which, formname);
     }      }
  }   }
     }      }
  }   }
     }      }
     function selectSections(listbox, which) {      function selectSections(listbox, which, formname) {
  setCheckboxes(listbox, which, true);   setCheckboxes(listbox, which, true, formname);
   
     }      }
     function unselectSections(listbox, which) {      function unselectSections(listbox, which, formname) {
  setCheckboxes(listbox, which, false);   setCheckboxes(listbox, which, false, formname);
     }      }
   
 // -->  // -->
Line 321  SCRIPT Line 323  SCRIPT
  if ($size > 5) {    if ($size > 5) { 
     $size = 5;       $size = 5; 
  }   }
  $result .= '<select multiple name="'.$formprefix   $result .= '<select multiple="multiple" name="'.$formprefix
     .'.chosensections" size="'.$size.'">'."\n";      .'.chosensections" size="'.$size.'">'."\n";
  $result .= '<option name="allstudents">All Students</option>';   $result .= '<option value="allstudents">'.&mt('All Students').'</option>';
  $result .= '<option name="allpersonnel">All Course Personnel</option>';   $result .= '<option value="allpersonnel">'.&mt('All Course Personnel').'</option>';
  $result .= '<option name="nosection">No Section</option>';   $result .= '<option value="nosection">'.&mt('No Section').'</option>';
  $result .= "\n";   $result .= "\n";
  foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) {   foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) {
     $result .= '<option name="'.$sec.'">'.$sec.'</option>'."\n";      $result .= '<option name="'.$sec.'">'.$sec.'</option>'."\n";
  }   }
  $result .= '</td><td valign="top">';   $result .= '</select></td><td valign="top">';
  $result .= '<input type="button" name="'.$formprefix.'.select" value="Select" onclick='   $result .= '<input type="button" name="'.$formprefix.'.select" value="'.&mt('Select').'" onclick='
     ."'selectSections(\"$formprefix.chosensections\", \"$formprefix\")'".' /></td>';      ."'selectSections(\"$formprefix.chosensections\", \"$formprefix\", document.forms.$formname)'".' /></td>';
  $result .= '<td valign="top"><input type="button" name="'.$formprefix   $result .= '<td valign="top"><input type="button" name="'.$formprefix
     .'.unselect" value="Unselect"  onclick='.      .'.unselect" value="'.&mt('Unselect').'"  onclick='.
     "'unselectSections(\"$formprefix.chosensections\", \"$formprefix\")' ".' /></td></tr></table>';      "'unselectSections(\"$formprefix.chosensections\", \"$formprefix\", document.forms.$formname)' ".' /></td></tr></table>';
     }      }
   
     #  Now we list the students, but the form element type      #  Now we list the students, but the form element type
Line 345  SCRIPT Line 347  SCRIPT
   
     $result .= &Apache::loncommon::start_data_table();      $result .= &Apache::loncommon::start_data_table();
     $result .= &Apache::loncommon::start_data_table_header_row();      $result .= &Apache::loncommon::start_data_table_header_row();
     $result .= '<th></th><th>Name</th>'."\n";      $result .= '<th></th><th>'.&mt('Name').'</th>'."\n";
     $result .= '    <th>Section</th>'."\n";      $result .= '    <th>'.&mt('Section').'</th>'."\n";
     $result .= '    <th>Status</th>'."\n";      $result .= '    <th>'.&mt('Status').'</th>'."\n";
     $result .= '    <th>Role</th>'."\n";      $result .= '    <th>'.&mt('Role').'</th>'."\n";
     $result .= '    <th>Username : Domain</th>'."\n";      $result .= '    <th>'.&mt('Username : Domain').'</th>'."\n";
     $result .= &Apache::loncommon::end_data_table_header_row();      $result .= &Apache::loncommon::end_data_table_header_row();
   
     my $input_type;      my $input_type;
Line 396  SCRIPT Line 398  SCRIPT
         . '</td>'.&Apache::loncommon::end_data_table_row().          . '</td>'.&Apache::loncommon::end_data_table_row().
  "\n";   "\n";
     }      }
     $result .= &Apache::loncommon::end_data_table().      $result .= &Apache::loncommon::end_data_table();
  " <br /> <hr />\n";      if ($context ne 'email') {
    $result .= "<br /> <hr />\n";
       }
   
     return $result;      return $result;
 }  }

Removed from v.1.9  
changed lines
  Added in v.1.14


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