--- loncom/interface/lonselstudent.pm	2006/05/23 21:41:26	1.7
+++ loncom/interface/lonselstudent.pm	2007/11/01 19:56:39	1.10
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # lonselstudent.pm : Reusable subs for student selection.
 #
-# $Id: lonselstudent.pm,v 1.7 2006/05/23 21:41:26 foxr Exp $
+# $Id: lonselstudent.pm,v 1.10 2007/11/01 19:56:39 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -28,8 +28,9 @@
 
 package Apache::lonselstudent;
 use     Apache::lonnet;
-use     Apache::loncoursedata;
-use     HTML::Entities;
+use     Apache::lonlocal;
+use     Apache::loncoursedata();
+use     HTML::Entities();
 
 #
 #  Utility function used when rendering <student> tags.
@@ -112,10 +113,9 @@ sub get_people_in_class {
     my @keys = keys(%{$classlist});
     # Sort by: Section, name
     @keys = sort {
-        if ($classlist->{$a}->[$section] ne $classlist->{$b}->[$section]) {
-            return $classlist->{$a}->[$section] cmp $classlist->{$b}->[$section];
-        }
-        return $classlist->{$a}->[$fullname] cmp $classlist->{$b}->[$fullname];
+	lc($classlist->{$a}[$section])  cmp lc($classlist->{$b}[$section])  ||
+	lc($classlist->{$a}[$fullname]) cmp lc($classlist->{$b}[$fullname]) ||
+	lc($a) cmp lc($b)
     } (@keys);
  
 
@@ -188,6 +188,9 @@ sub render_student_list {
 
     my $result = "";
 
+    # no students so no output
+    return if (!@$students);
+
     if ($javascript && $multiselect) {
         $result .= <<SCRIPT;
 <script type="text/javascript">
@@ -269,12 +272,12 @@ sub render_student_list {
 	if (elem != null) {
 	    for (k = 0; k < elem.length; k++) {
 		if (elem.options[k].selected) {
-		    what = elem.options[k].text;
-		    if (what == 'All Students') {
+		    what = elem.options[k].value;
+		    if (what == 'allstudents') {
 			setAllStudents(value, which);
-		    } else if (what == 'All Course Personnel') {
+		    } else if (what == 'allpersonnel') {
 			setAllCoursePersonnel(value, which);
-		    } else if (what == 'No Section') {
+		    } else if (what == 'nosection') {
 			setSection('',value, which);
 		    } else {
 			setSection(what, value, which);
@@ -321,18 +324,18 @@ SCRIPT
 	}
 	$result .= '<select multiple name="'.$formprefix
 	    .'.chosensections" size="'.$size.'">'."\n";
-	$result .= '<option name="allstudents">All Students</option>';
-	$result .= '<option name="allpersonnel">All Course Personnel</option>';
-	$result .= '<option name="nosection">No Section</option>';
+	$result .= '<option value="allstudents">'.&mt('All Students').'</option>';
+	$result .= '<option value="allpersonnel">'.&mt('All Course Personnel').'</option>';
+	$result .= '<option value="nosection">'.&mt('No Section').'</option>';
 	$result .= "\n";
 	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='
+	$result .= '<input type="button" name="'.$formprefix.'.select" value="'.'Select" onclick='
 	    ."'selectSections(\"$formprefix.chosensections\", \"$formprefix\")'".' /></td>';
 	$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>';
     }
 
@@ -343,11 +346,11 @@ SCRIPT
 
     $result .= &Apache::loncommon::start_data_table();
     $result .= &Apache::loncommon::start_data_table_header_row();
-    $result .= '<th></th><th>Name</th>'."\n";
-    $result .= '    <th>Section</th>'."\n";
-    $result .= '    <th>Status</th>'."\n";
-    $result .= '    <th>Role</th>'."\n";
-    $result .= '    <th>Username : Domain</th>'."\n";
+    $result .= '<th></th><th>'.&mt('Name').'</th>'."\n";
+    $result .= '    <th>'.&mt('Section').'</th>'."\n";
+    $result .= '    <th>'.&mt('Status').'</th>'."\n";
+    $result .= '    <th>'.&mt('Role').'</th>'."\n";
+    $result .= '    <th>'.&mt('Username : Domain').'</th>'."\n";
     $result .= &Apache::loncommon::end_data_table_header_row();
 
     my $input_type;
@@ -361,7 +364,7 @@ SCRIPT
     for my $student (@$students) {
 	$result .= &Apache::loncommon::start_data_table_row().
 	    '<td><input type="'.$input_type.'"  name="'.
-	    $resultname.".forminput".'"';
+	    $resultname."_forminput".'"';
 	my $user    = $student->[0];
 
 	# Figure out which students are checked by default...