--- loncom/interface/lonselstudent.pm 2007/11/01 20:04:17 1.11 +++ loncom/interface/lonselstudent.pm 2009/01/15 18:23:27 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # lonselstudent.pm : Reusable subs for student selection. # -# $Id: lonselstudent.pm,v 1.11 2007/11/01 20:04:17 albertel Exp $ +# $Id: lonselstudent.pm,v 1.14 2009/01/15 18:23:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -178,12 +178,14 @@ sub get_people_in_class { # This should be true for the first call for a page # and false for all other calls... only matters if # multiselect is true. +# $context - If email, do not include <br /><hr /> tags at the end +# of the data table. # Returns: # HTML text to add to the rendering of the helper. # sub render_student_list { my ($students, $formname, $formprefix, $defaultusers, - $multiselect, $resultname, $javascript) = @_; + $multiselect, $resultname, $javascript, $context) = @_; my $result = ""; @@ -195,11 +197,11 @@ sub render_student_list { <script type="text/javascript"> // <!-- - function findElement(name) { + function findElement(name,formname) { var i; var ele; - for(i =0; i < document.forms.$formname.elements.length; i++) { - ele = document.forms.$formname.elements[i]; + for(i =0; i < formname.elements.length; i++) { + ele = formname.elements[i]; if(ele.name == name) { return ele; } @@ -230,31 +232,31 @@ sub render_student_list { } } - function setAllStudents(value, which) { + function setAllStudents(value, which, formname) { var i; var ele; - for (i =0; i < document.forms.$formname.elements.length; i++) { - ele = document.forms.$formname.elements[i]; + for (i =0; i < formname.elements.length; i++) { + ele = formname.elements[i]; if(isStudent(ele) && rightSubForm(ele, which)) { ele.checked=value; } } } - function setAllCoursePersonnel(value, which) { + function setAllCoursePersonnel(value, which, formname) { var i; var ele; - for (i =0; i < document.forms.$formname.elements.length; i++) { - ele = document.forms.$formname.elements[i]; + for (i =0; i < formname.elements.length; i++) { + ele = formname.elements[i]; if(!isStudent(ele) && rightSubForm(ele, which)) { ele.checked = value; } } } - function setSection(which, value, subform) { + function setSection(which, value, subform, formname) { var i; var ele; - for (i =0; i < document.forms.$formname.elements.length; i++) { - ele = document.forms.$formname.elements[i]; + for (i =0; i < formname.elements.length; i++) { + ele = formname.elements[i]; if (ele.value.indexOf(':') != -1) { if ((section(ele) == which) && rightSubForm(ele, subform)) { ele.checked = value; @@ -263,34 +265,34 @@ sub render_student_list { } } - function setCheckboxes(listbox, which, value) { + function setCheckboxes(listbox, which, value, formname) { var k; var elem; var what; - elem = findElement(listbox); + elem = findElement(listbox, formname); if (elem != null) { for (k = 0; k < elem.length; k++) { if (elem.options[k].selected) { what = elem.options[k].value; if (what == 'allstudents') { - setAllStudents(value, which); + setAllStudents(value, which, formname); } else if (what == 'allpersonnel') { - setAllCoursePersonnel(value, which); + setAllCoursePersonnel(value, which, formname); } else if (what == 'nosection') { - setSection('',value, which); + setSection('',value, which, formname); } else { - setSection(what, value, which); + setSection(what, value, which, formname); } } } } } - function selectSections(listbox, which) { - setCheckboxes(listbox, which, true); + function selectSections(listbox, which, formname) { + setCheckboxes(listbox, which, true, formname); } - function unselectSections(listbox, which) { - setCheckboxes(listbox, which, false); + function unselectSections(listbox, which, formname) { + setCheckboxes(listbox, which, false, formname); } // --> @@ -321,7 +323,7 @@ SCRIPT if ($size > 5) { $size = 5; } - $result .= '<select multiple name="'.$formprefix + $result .= '<select multiple="multiple" name="'.$formprefix .'.chosensections" size="'.$size.'">'."\n"; $result .= '<option value="allstudents">'.&mt('All Students').'</option>'; $result .= '<option value="allpersonnel">'.&mt('All Course Personnel').'</option>'; @@ -330,12 +332,12 @@ SCRIPT foreach my $sec (sort {lc($a) cmp lc($b)} (keys(%sections))) { $result .= '<option name="'.$sec.'">'.$sec.'</option>'."\n"; } - $result .= '</td><td valign="top">'; - $result .= '<input type="button" name="'.$formprefix.'.select" value="'.'Select" onclick=' - ."'selectSections(\"$formprefix.chosensections\", \"$formprefix\")'".' /></td>'; + $result .= '</select></td><td valign="top">'; + $result .= '<input type="button" name="'.$formprefix.'.select" value="'.&mt('Select').'" onclick=' + ."'selectSections(\"$formprefix.chosensections\", \"$formprefix\", document.forms.$formname)'".' /></td>'; $result .= '<td valign="top"><input type="button" name="'.$formprefix .'.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 @@ -396,8 +398,10 @@ SCRIPT . '</td>'.&Apache::loncommon::end_data_table_row(). "\n"; } - $result .= &Apache::loncommon::end_data_table(). - " <br /> <hr />\n"; + $result .= &Apache::loncommon::end_data_table(); + if ($context ne 'email') { + $result .= "<br /> <hr />\n"; + } return $result; }