version 1.139, 2006/05/05 10:59:51
|
version 1.144, 2006/05/09 21:39:47
|
Line 2291 use Apache::lonnet;
|
Line 2291 use Apache::lonnet;
|
# set of students won't collide. |
# set of students won't collide. |
# $defaultusers - reference to a hash containng |
# $defaultusers - reference to a hash containng |
# 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. |
|
# $resultname - Name of result variable. |
# 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 ($self, |
my ( |
$sections, $students, $formprefix, $defaultusers) = @_; |
$sections, $students, $formprefix, $defaultusers, |
|
$multiselect, $resultname) = @_; |
|
|
my $multiselect = $self->{'multichoice'}; |
|
my $result = ""; |
my $result = ""; |
|
|
# If multiple selections are allowed, we have a listbox |
# If multiple selections are allowed, we have a listbox |
Line 2308 sub render_student_list {
|
Line 2310 sub render_student_list {
|
if ($multiselect) { |
if ($multiselect) { |
$result .= '<table><tr><td>'; |
$result .= '<table><tr><td>'; |
|
|
my $size = scalar(keys %$sections); |
my $size = scalar(keys(%$sections)); |
$size += 3; # We have allstudents allpersonel nosection too. |
$size += 3; # We have allstudents allpersonel nosection too. |
if ($size > 5) { |
if ($size > 5) { |
$size = 5; |
$size = 5; |
Line 2323 sub render_student_list {
|
Line 2325 sub render_student_list {
|
$result .= '<option name="'.$sec.'">'.$sec.'</option>'."\n"; |
$result .= '<option name="'.$sec.'">'.$sec.'</option>'."\n"; |
} |
} |
$result .= '</td><td valign="top">'; |
$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\")'".' /></td>'; |
."'selectSections(\"$formprefix.chosensections\", \"$formprefix\")'".' /></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="Unselect" onclick='. |
"'unselectSections(\"$formprefix.chosensections\")' ".' /></td></tr></table>'; |
"'unselectSections(\"$formprefix.chosensections\", \"$formprefix\")' ".' /></td></tr></table>'; |
} |
} |
|
|
# Now we list the students, but the form element type |
# Now we list the students, but the form element type |
Line 2352 sub render_student_list {
|
Line 2354 sub render_student_list {
|
my $checked = 0; |
my $checked = 0; |
for my $student (@$students) { |
for my $student (@$students) { |
$result .= '<tr><td><input type="'.$input_type.'" name="'. |
$result .= '<tr><td><input type="'.$input_type.'" name="'. |
$self->{'variable'}.".forminput".'"'; |
$resultname.".forminput".'"'; |
my $user = $student->[0]; |
my $user = $student->[0]; |
|
|
# Figure out which students are checked by default... |
# Figure out which students are checked by default... |
Line 2362 sub render_student_list {
|
Line 2364 sub render_student_list {
|
$result .= ' checked ="checked" '; |
$result .= ' checked ="checked" '; |
$checked = 1; |
$checked = 1; |
} |
} |
} elsif (!$self->{'multichoice'} && !$checked) { |
} elsif (!$multiselect && !$checked) { |
$result .= ' checked="checked" '; |
$result .= ' checked="checked" '; |
$checked = 1; # First one for radio if no default specified. |
$checked = 1; # First one for radio if no default specified. |
} |
} |
Line 2370 sub render_student_list {
|
Line 2372 sub render_student_list {
|
.$student->[2] . ':' |
.$student->[2] . ':' |
.$student->[1] . ':' |
.$student->[1] . ':' |
.$student->[3] . ':' |
.$student->[3] . ':' |
.$student->[4], "<>&\"'") |
.$student->[4] . ":" |
|
.$formprefix, "<>&\"'") |
."\" /></td><td>\n"; |
."\" /></td><td>\n"; |
$result .= HTML::Entities::encode($student->[1], '<>&"') |
$result .= HTML::Entities::encode($student->[1], '<>&"') |
. '</td><td align="center" >'."\n"; |
. '</td><td align="center" >'."\n"; |
Line 2464 sub render {
|
Line 2467 sub render {
|
return ""; |
return ""; |
} |
} |
} |
} |
|
function rightSubForm(element, which) { |
|
if (element.value.indexOf(which) != -1) { |
|
return true; |
|
} else { |
|
return false; |
|
} |
|
} |
|
|
function setAllStudents(value) { |
function setAllStudents(value, which) { |
var i; |
var i; |
var ele; |
var ele; |
for (i =0; i < document.forms.helpform.elements.length; i++) { |
for (i =0; i < document.forms.helpform.elements.length; i++) { |
ele = document.forms.helpform.elements[i]; |
ele = document.forms.helpform.elements[i]; |
if(isStudent(ele)) { |
if(isStudent(ele) && rightSubForm(ele, which)) { |
ele.checked=value; |
ele.checked=value; |
} |
} |
} |
} |
} |
} |
function setAllCoursePersonnel(value) { |
function setAllCoursePersonnel(value, which) { |
var i; |
var i; |
var ele; |
var ele; |
for (i =0; i < document.forms.helpform.elements.length; i++) { |
for (i =0; i < document.forms.helpform.elements.length; i++) { |
ele = document.forms.helpform.elements[i]; |
ele = document.forms.helpform.elements[i]; |
if(!isStudent(ele)) { |
if(!isStudent(ele) && rightSubForm(ele, which)) { |
ele.checked = value; |
ele.checked = value; |
} |
} |
} |
} |
} |
} |
function setSection(which, value) { |
function setSection(which, value, subform) { |
var i; |
var i; |
var ele; |
var ele; |
for (i =0; i < document.forms.helpform.elements.length; i++) { |
for (i =0; i < document.forms.helpform.elements.length; i++) { |
ele = document.forms.helpform.elements[i]; |
ele = document.forms.helpform.elements[i]; |
if (ele.value.indexOf(':') != -1) { |
if (ele.value.indexOf(':') != -1) { |
if (section(ele) == which) { |
if ((section(ele) == which) && rightSubForm(ele, subform)) { |
ele.checked = value; |
ele.checked = value; |
} |
} |
} |
} |
} |
} |
} |
} |
|
|
function setCheckboxes(listbox, value) { |
function setCheckboxes(listbox, which, value) { |
var k; |
var k; |
var elem; |
var elem; |
var what; |
var what; |
Line 2508 sub render {
|
Line 2518 sub render {
|
if (elem.options[k].selected) { |
if (elem.options[k].selected) { |
what = elem.options[k].text; |
what = elem.options[k].text; |
if (what == 'All Students') { |
if (what == 'All Students') { |
setAllStudents(value); |
setAllStudents(value, which); |
} else if (what == 'All Course Personnel') { |
} else if (what == 'All Course Personnel') { |
setAllCoursePersonnel(value); |
setAllCoursePersonnel(value, which); |
} else if (what == 'No Section') { |
} else if (what == 'No Section') { |
setSection('',value); |
setSection('',value, which); |
} else { |
} else { |
setSection(what, value); |
setSection(what, value, which); |
} |
} |
} |
} |
} |
} |
} |
} |
} |
} |
function selectSections(listbox) { |
function selectSections(listbox, which) { |
setCheckboxes(listbox, true); |
setCheckboxes(listbox, which, true); |
|
|
} |
} |
function unselectSections(listbox) { |
function unselectSections(listbox, which) { |
setCheckboxes(listbox, false); |
setCheckboxes(listbox, which, false); |
} |
|
/* ----------------------------- */ |
|
|
|
function checkall(value, checkName) { |
|
for (i=0; i<document.forms.helpform.elements.length; i++) { |
|
ele = document.forms.helpform.elements[i]; |
|
if (ele.name == checkName + '.forminput') { |
|
document.forms.helpform.elements[i].checked=value; |
|
} |
|
} |
|
} |
|
function checksec(value) { |
|
for (i=0; i<document.forms.helpform.elements.length; i++) { |
|
comp = document.forms.helpform.elements.chksec.value; |
|
if (document.forms.helpform.elements[i].value.indexOf(':'+comp+':') != -1) { |
|
if (document.forms.helpform.elements[i].value.indexOf(':Active') != -1) { |
|
document.forms.helpform.elements[i].checked=value; |
|
} |
|
} |
|
} |
|
} |
|
function checkactive() { |
|
for (i=0; i<document.forms.helpform.elements.length; i++) { |
|
if (document.forms.helpform.elements[i].value.indexOf(':Active') != -1) { |
|
document.forms.helpform.elements[i].checked=true; |
|
} |
|
} |
|
} |
|
function checkexpired() { |
|
for (i=0; i<document.forms.helpform.elements.length; i++) { |
|
if (document.forms.helpform.elements[i].value.indexOf(':Expired') != -1) { |
|
document.forms.helpform.elements[i].checked=true; |
|
} |
|
} |
|
} |
|
function uncheckexpired() { |
|
for (i=0; i<document.forms.helpform.elements.length; i++) { |
|
if (document.forms.helpform.elements[i].value.indexOf(':Expired') != -1) { |
|
document.forms.helpform.elements[i].checked=false; |
|
} |
|
} |
|
} |
|
function getDesiredState() { // Return desired person state radio value. |
|
numRadio = document.forms.helpform.personstate.length; |
|
for (i =0; i < numRadio; i++) { |
|
if (document.forms.helpform.personstate[i].checked) { |
|
return document.forms.helpform.personstate[i].value; |
|
} |
|
} |
|
return ""; |
|
} |
} |
|
|
function checksections(value) { // Check selected sections. |
|
numSections = document.forms.helpform.chosensections.length; |
|
desiredState = getDesiredState(); |
|
|
|
for (var option = 0; option < numSections; option++) { |
|
if(document.forms.helpform.chosensections.options[option].selected) { |
|
section = document.forms.helpform.chosensections.options[option].text; |
|
if (section == "none") { |
|
section =""; |
|
} |
|
for (i = 0; i < document.forms.helpform.elements.length; i++ ) { |
|
if (document.forms.helpform.elements[i].value.indexOf(':') != -1) { |
|
info = document.forms.helpform.elements[i].value.split(':'); |
|
hisSection = info[2]; |
|
hisState = info[4]; |
|
if (desiredState == hisState || |
|
desiredState == "All") { |
|
if(hisSection == section || |
|
section =="" ) { |
|
document.forms.helpform.elements[i].checked = value; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
// --> |
// --> |
</script> |
</script> |
SCRIPT |
SCRIPT |
Line 2766 BUTTONS
|
Line 2699 BUTTONS
|
|
|
# Current personel |
# Current personel |
|
|
$result .= $self->render_student_list(\%sections, |
$result .= &render_student_list(\%sections, |
$current_members, |
$current_members, |
"current", |
"current", |
\%defaultUsers); |
\%defaultUsers, |
|
$self->{'multichoice'}, |
|
$self->{'variable'}); |
|
|
|
|
# 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: |
# |
# |
if (!$self->{'activeonly'} && ((scalar @$expired_members) > 0)) { |
if (!$self->{'activeonly'} && ((scalar @$expired_members) > 0)) { |
|
|
# Past |
|
|
|
$result .= $self->render_student_list(\%sections, |
|
$expired_members, |
|
"past", |
|
\%defaultUsers); |
|
|
|
# And future. |
# And future. |
|
|
$result .= $self->render_student_list(\%sections, |
$result .= &render_student_list(\%sections, |
$future_members, |
$future_members, |
"future", |
"future", |
\%defaultUsers); |
\%defaultUsers, |
|
$self->{'multichoice'}, |
|
$self->{'variable'}); |
|
# Past |
|
|
|
$result .= &render_student_list(\%sections, |
|
$expired_members, |
|
"past", |
|
\%defaultUsers, |
|
$self->{'multichoice'}, |
|
$self->{'variable'}); |
} |
} |
|
|
|
|
Line 3232 sub start_section {
|
Line 3170 sub start_section {
|
|
|
my $section = Apache::loncoursedata::CL_SECTION(); |
my $section = Apache::loncoursedata::CL_SECTION(); |
my $classlist = Apache::loncoursedata::get_classlist(); |
my $classlist = Apache::loncoursedata::get_classlist(); |
foreach (keys %$classlist) { |
foreach my $user (keys(%$classlist)) { |
my $sectionName = $classlist->{$_}->[$section]; |
my $section_name = $classlist->{$user}[$section]; |
if (!$sectionName) { |
if (!$section_name) { |
$choices{"No section assigned"} = ""; |
$choices{"No section assigned"} = ""; |
} else { |
} else { |
$choices{$sectionName} = $sectionName; |
$choices{$section_name} = $section_name; |
} |
} |
} |
} |
|
|
for my $sectionName (sort(keys(%choices))) { |
if (exists($choices{"No section assigned"})) { |
push @{$paramHash->{CHOICES}}, [$sectionName, $sectionName]; |
push(@{$paramHash->{CHOICES}}, |
|
['No section assigned','No section assigned']); |
|
delete($choices{"No section assigned"}); |
|
} |
|
for my $section_name (sort {lc($a) cmp lc($b) } (keys(%choices))) { |
|
push @{$paramHash->{CHOICES}}, [$section_name, $section_name]; |
} |
} |
return if ($token->[2]{'onlysections'}); |
return if ($token->[2]{'onlysections'}); |
|
|
# add in groups to the end of the list |
# add in groups to the end of the list |
my %curr_groups; |
my %curr_groups = &Apache::loncommon::coursegroups(); |
if (&Apache::loncommon::coursegroups(\%curr_groups)) { |
foreach my $group_name (sort(keys(%curr_groups))) { |
foreach my $group_name (sort(keys(%curr_groups))) { |
push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]); |
push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]); |
|
} |
|
} |
} |
} |
} |
|
|
Line 3313 sub start_group {
|
Line 3254 sub start_group {
|
# Populate the CHOICES element |
# Populate the CHOICES element |
my %choices; |
my %choices; |
|
|
my %curr_groups; |
my %curr_groups = &Apache::loncommon::coursegroups(); |
if (&Apache::loncommon::coursegroups(\%curr_groups)) { |
foreach my $group_name (sort {lc($a) cmp lc($b)} (keys(%curr_groups))) { |
foreach my $group_name (sort(keys(%curr_groups))) { |
push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]); |
push(@{$paramHash->{CHOICES}}, [$group_name, $group_name]); |
|
} |
|
} |
} |
} |
} |
|
|