[LON-CAPA-cvs] cvs: loncom /interface lonhelper.pm

foxr lon-capa-cvs@mail.lon-capa.org
Tue, 09 May 2006 21:44:18 -0000


This is a MIME encoded message

--foxr1147211058
Content-Type: text/plain

foxr		Tue May  9 17:44:18 2006 EDT

  Modified files:              
    /loncom/interface	lonhelper.pm 
  Log:
  Continue to separate student display into an independent sub and 
  clean up some dead stuff.
  
  
--foxr1147211058
Content-Type: text/plain
Content-Disposition: attachment; filename="foxr-20060509174418.txt"

Index: loncom/interface/lonhelper.pm
diff -u loncom/interface/lonhelper.pm:1.144 loncom/interface/lonhelper.pm:1.145
--- loncom/interface/lonhelper.pm:1.144	Tue May  9 17:39:47 2006
+++ loncom/interface/lonhelper.pm	Tue May  9 17:44:18 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # .helper XML handler to implement the LON-CAPA helper
 #
-# $Id: lonhelper.pm,v 1.144 2006/05/09 21:39:47 foxr Exp $
+# $Id: lonhelper.pm,v 1.145 2006/05/09 21:44:18 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -2293,16 +2293,129 @@
 #                     the set of users that should be on or off.
 #     $multiselect  - True if multiselect allowed.
 #     $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:
 #     HTML  text to add to the rendering of the helper.
 #
 sub render_student_list {
     my (
 	$sections, $students, $formprefix, $defaultusers,
-	$multiselect, $resultname) = @_;
+	$multiselect, $resultname, $javascript) = @_;
 
     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
     # at the top which allows quick selections from each section
     # as well as from categories of personnel.
@@ -2435,136 +2548,6 @@
     my $buttons = '';
     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}) {
         $result .= '<font color="#FF0000">' . $self->{ERROR_MSG} . '</font><br /><br />';
@@ -2704,7 +2687,8 @@
 					  "current",
 					  \%defaultUsers,
 				    $self->{'multichoice'},
-				    $self->{'variable'});
+				    $self->{'variable'},
+				    1);
 
 
     # If activeonly is not set then we can also give the expired students:
@@ -2718,7 +2702,8 @@
 					      "future",
 					      \%defaultUsers,
 					$self->{'multichoice'},
-					$self->{'variable'});
+					$self->{'variable'},
+					0);
 	# Past 
 
 	$result .= &render_student_list(\%sections,
@@ -2726,7 +2711,8 @@
 					      "past",
 					      \%defaultUsers,
 					$self->{'multichoice'},
-					$self->{'variable'});
+					$self->{'variable'},
+					0);
     }
 
 

--foxr1147211058--