version 1.114, 2006/05/09 14:38:10
|
version 1.118, 2006/05/30 12:46:09
|
Line 64 use Apache::Constants qw(:common :http);
|
Line 64 use Apache::Constants qw(:common :http);
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Apache::longroup; |
|
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
|
|
my $loginscript; # piece of javascript used in two separate instances |
my $loginscript; # piece of javascript used in two separate instances |
my $generalrule; |
my $generalrule; |
Line 235 sub user_modification_js {
|
Line 238 sub user_modification_js {
|
else { |
else { |
sections = document.cu.elements[i+1].value; |
sections = document.cu.elements[i+1].value; |
} |
} |
var newsecs = document.cu.elements[i+1].value; |
var newseclist = document.cu.elements[i+1].value; |
if (newsecs != null && newsecs != "") { |
var newsecs = new Array(); |
var numsplit = newsecs.split(/,/g); |
if (newseclist != null && newseclist != "") { |
numsec = numsec + numsplit.length; |
newsecs = newseclist.split(/,/g); |
|
numsec = numsec + newsecs.length; |
} |
} |
if ((role == 'st') && (numsec > 1)) { |
if ((role == 'st') && (numsec > 1)) { |
alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.") |
alert("In each course, each user may only have one student role at a time. You had selected "+numsec+" sections.\\nPlease modify your selections so they include no more than one section.") |
return; |
return; |
} |
} |
else { |
else { |
for (var j=0; j<numsplit.length; j++) { |
for (var j=0; j<newsecs.length; j++) { |
if ((numsplit[j] == 'all') || |
if ((newsecs[j] == 'all') || |
(numsplit[j] == 'none')) { |
(newsecs[j] == 'none')) { |
alert("'"+numsplit[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name."); |
alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name."); |
return; |
return; |
} |
} |
for (var k=0; k<groups.length; k++) { |
for (var k=0; k<groups.length; k++) { |
if (numsplit[j] == groups[k]) { |
if (newsecs[j] == groups[k]) { |
alert("'"+numsplit[j]+"' may not be used as a section name, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name."); |
alert("'"+newsecs[j]+"' may not be used as a section name, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name."); |
return; |
return; |
} |
} |
} |
} |
Line 304 sub print_user_modification_page {
|
Line 308 sub print_user_modification_page {
|
my %loaditem; |
my %loaditem; |
|
|
my $groupslist; |
my $groupslist; |
my %curr_groups = &Apache::loncommon::coursegroups(); |
my %curr_groups = &Apache::longroup::coursegroups(); |
if (%curr_groups) { |
if (%curr_groups) { |
$groupslist = join('","',sort(keys(%curr_groups))); |
$groupslist = join('","',sort(keys(%curr_groups))); |
$groupslist = '"'.$groupslist.'"'; |
$groupslist = '"'.$groupslist.'"'; |
Line 324 sub print_user_modification_page {
|
Line 328 sub print_user_modification_page {
|
var userrole = document.cu.role.options[document.cu.role.selectedIndex].value |
var userrole = document.cu.role.options[document.cu.role.selectedIndex].value |
var section=""; |
var section=""; |
var numsections = 0; |
var numsections = 0; |
|
var newsecs = new Array(); |
for (var i=0; i<document.cu.currsec.length; i++) { |
for (var i=0; i<document.cu.currsec.length; i++) { |
if (document.cu.currsec.options[i].selected == true ) { |
if (document.cu.currsec.options[i].selected == true ) { |
if (document.cu.currsec.options[i].value != "" && document.cu.currsec.options[i].value != null) { |
if (document.cu.currsec.options[i].value != "" && document.cu.currsec.options[i].value != null) { |
Line 345 sub print_user_modification_page {
|
Line 350 sub print_user_modification_page {
|
else { |
else { |
section = section + "," + document.cu.newsec.value |
section = section + "," + document.cu.newsec.value |
} |
} |
var numsplit = document.cu.newsec.value.split(/,/g); |
newsecs = document.cu.newsec.value.split(/,/g); |
numsections = numsections + numsplit.length; |
numsections = numsections + newsecs.length; |
} |
} |
if ((userrole == 'st') && (numsections > 1)) { |
if ((userrole == 'st') && (numsections > 1)) { |
alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.") |
alert("In each course, each user may only have one student role at a time. You had selected "+numsections+" sections.\\nPlease modify your selections so they include no more than one section.") |
return; |
return; |
} |
} |
for (var j=0; j<numsplit.length; j++) { |
for (var j=0; j<newsecs.length; j++) { |
if ((numsplit[j] == 'all') || (numsplit[j] == 'none')) { |
if ((newsecs[j] == 'all') || (newsecs[j] == 'none')) { |
alert("'"+numsplit[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name."); |
alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is a reserved word.\\nPlease choose a different section name."); |
return; |
return; |
} |
} |
if (document.cu.groups.value != '') { |
if (document.cu.groups.value != '') { |
var groups = document.cu.groups.value.split(/,/g); |
var groups = document.cu.groups.value.split(/,/g); |
for (var k=0; k<groups.length; k++) { |
for (var k=0; k<groups.length; k++) { |
if (numsplit[j] == groups[k]) { |
if (newsecs[j] == groups[k]) { |
alert("'"+numsplit[j]+"' may not be used as the name for a section, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name."); |
alert("'"+newsecs[j]+"' may not be used as the name for a section, as it is the name of a course group.\\nSection names and group names must be distinct. Please choose a different section name."); |
return; |
return; |
} |
} |
} |
} |
Line 974 ENDDROW
|
Line 979 ENDDROW
|
# |
# |
# Course level |
# Course level |
# |
# |
my $num_sections; |
|
|
|
if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) { |
if ($env{'request.role'} =~ m-^dc\./(\w+)/$-) { |
$r->print(&course_level_dc($1)); |
$r->print(&course_level_dc($1)); |
Line 1224 END
|
Line 1228 END
|
&Apache::lonnet::critical('put:'. |
&Apache::lonnet::critical('put:'. |
$env{'course.'.$cid.'.domain'}.':'. |
$env{'course.'.$cid.'.domain'}.':'. |
$env{'course.'.$cid.'.num'}.':classlist:'. |
$env{'course.'.$cid.'.num'}.':classlist:'. |
&Apache::lonnet::escape($env{'form.ccuname'}.':'. |
&escape($env{'form.ccuname'}.':'. |
$env{'form.ccdomain'}).'='. |
$env{'form.ccdomain'}).'='. |
&Apache::lonnet::escape($now.':'), |
&escape($now.':'), |
$env{'course.'.$cid.'.home'}).'</b><br />'); |
$env{'course.'.$cid.'.home'}).'</b><br />'); |
} |
} |
} |
} |
Line 1239 END
|
Line 1243 END
|
'</b><br />'); |
'</b><br />'); |
} |
} |
} elsif ($_=~/^form\.del/) { |
} elsif ($_=~/^form\.del/) { |
if ($_=~/^form\.del\:([^\_]+)\_([^\_]+)$/) { |
if ($_=~/^form\.del\:([^\_]+)\_([^\_\.]+)$/) { |
|
# Delete standard role |
$r->print(&mt('Deleting').' '.$2.' in '.$1.': '. |
$r->print(&mt('Deleting').' '.$2.' in '.$1.': '. |
&Apache::lonnet::assignrole($env{'form.ccdomain'}, |
&Apache::lonnet::assignrole($env{'form.ccdomain'}, |
$env{'form.ccuname'},$1,$2,$now,0,1).'<br />'); |
$env{'form.ccuname'},$1,$2,$now,0,1).'<br />'); |
Line 1250 END
|
Line 1255 END
|
&Apache::lonnet::critical('put:'. |
&Apache::lonnet::critical('put:'. |
$env{'course.'.$cid.'.domain'}.':'. |
$env{'course.'.$cid.'.domain'}.':'. |
$env{'course.'.$cid.'.num'}.':classlist:'. |
$env{'course.'.$cid.'.num'}.':classlist:'. |
&Apache::lonnet::escape($env{'form.ccuname'}.':'. |
&escape($env{'form.ccuname'}.':'. |
$env{'form.ccdomain'}).'='. |
$env{'form.ccdomain'}).'='. |
&Apache::lonnet::escape($now.':'), |
&escape($now.':'), |
$env{'course.'.$cid.'.home'}).'</b><br />'); |
$env{'course.'.$cid.'.home'}).'</b><br />'); |
} |
} |
} |
} |
|
if ($_=~/^form\.del\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { |
|
my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4); |
|
# Delete custom role |
|
$r->print(&mt('Deleting custom role [_1] by [_2]@[_3] in [_4]', |
|
$rolename,$rnam,$rdom,$url).': <b>'. |
|
&Apache::lonnet::assigncustomrole($env{'form.ccdomain'}, |
|
$env{'form.ccuname'},$url,$rdom,$rnam,$rolename,$now, |
|
0,1).'</b><br />'); |
|
} |
} elsif ($_=~/^form\.ren/) { |
} elsif ($_=~/^form\.ren/) { |
my $udom = $env{'form.ccdomain'}; |
my $udom = $env{'form.ccdomain'}; |
my $uname = $env{'form.ccuname'}; |
my $uname = $env{'form.ccuname'}; |
if ($_=~/^form\.ren\:([^\_]+)\_([^\_]+)$/) { |
# Re-enable standard role |
|
if ($_=~/^form\.ren\:([^\_]+)\_([^\_\.]+)$/) { |
my $url = $1; |
my $url = $1; |
my $role = $2; |
my $role = $2; |
my $logmsg; |
my $logmsg; |
Line 1279 END
|
Line 1294 END
|
} else { |
} else { |
my $result=&Apache::lonnet::assignrole($env{'form.ccdomain'}, |
my $result=&Apache::lonnet::assignrole($env{'form.ccdomain'}, |
$env{'form.ccuname'},$url,$role,0,$now); |
$env{'form.ccuname'},$url,$role,0,$now); |
$output = &mt('Re-Enabling [_1] in [_2]: [_3]', |
$output = &mt('Re-enabling [_1] in [_2]: <b>[_3]</b>', |
$role,$url,$result).'<br />'; |
$role,$url,$result).'<br />'; |
} |
} |
$r->print($output); |
$r->print($output); |
} |
} |
|
# Re-enable custom role |
|
if ($_=~/^form\.ren\:([^\_]+)\_cr\.cr\/(\w+)\/(\w+)\/(\w+)$/) { |
|
my ($url,$rdom,$rnam,$rolename) = ($1,$2,$3,$4); |
|
my $result = &Apache::lonnet::assigncustomrole( |
|
$env{'form.ccdomain'}, $env{'form.ccuname'}, |
|
$url,$rdom,$rnam,$rolename,0,$now); |
|
$r->print(&mt('Re-enabling custom role [_1] by [_2]@[_3] in [_4] : <b>[_5]</b>', |
|
$rolename,$rnam,$rdom,$url,$result).'<br />'); |
|
} |
} elsif ($_=~/^form\.act/) { |
} elsif ($_=~/^form\.act/) { |
my $udom = $env{'form.ccdomain'}; |
my $udom = $env{'form.ccdomain'}; |
my $uname = $env{'form.ccuname'}; |
my $uname = $env{'form.ccuname'}; |
Line 1307 END
|
Line 1331 END
|
$r->print(&commit_customrole($udom,$uname,$url,$three,$four,$five,$start,$end)); |
$r->print(&commit_customrole($udom,$uname,$url,$three,$four,$five,$start,$end)); |
} else { |
} else { |
my %curr_groups = |
my %curr_groups = |
&Apache::loncommon::coursegroups($one,$two); |
&Apache::longroup::coursegroups($one,$two); |
foreach my $sec (sort {$a cmp $b} keys %sections) { |
foreach my $sec (sort {$a cmp $b} keys %sections) { |
if (($sec eq 'none') || ($sec eq 'all') || |
if (($sec eq 'none') || ($sec eq 'all') || |
exists($curr_groups{$sec})) { |
exists($curr_groups{$sec})) { |
Line 1337 END
|
Line 1361 END
|
$r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,'')); |
$r->print(&commit_standardrole($udom,$uname,$url,$three,$start,$end,$one,$two,'')); |
} else { |
} else { |
my %curr_groups = |
my %curr_groups = |
&Apache::loncommon::coursegroups($one,$two); |
&Apache::longroup::coursegroups($one,$two); |
my $emptysec = 0; |
my $emptysec = 0; |
foreach my $sec (sort {$a cmp $b} keys %sections) { |
foreach my $sec (sort {$a cmp $b} keys %sections) { |
$sec =~ s/\W//g; |
$sec =~ s/\W//g; |
Line 1761 sub course_level_table {
|
Line 1785 sub course_level_table {
|
$bgcol=~s/[^7-9a-e]//g; |
$bgcol=~s/[^7-9a-e]//g; |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); |
$bgcol=substr($bgcol.$bgcol.$bgcol.'ffffff',2,6); |
my ($domain,$cnum)=split(/\//,$thiscourse); |
my ($domain,$cnum)=split(/\//,$thiscourse); |
my %sections_count = (); |
my %sections_count; |
my $num_sections = 0; |
|
if (defined($env{'request.course.id'})) { |
if (defined($env{'request.course.id'})) { |
if ($env{'request.course.id'} eq $domain.'_'.$cnum) { |
if ($env{'request.course.id'} eq $domain.'_'.$cnum) { |
$num_sections = &Apache::loncommon::get_sections($domain,$cnum,\%sections_count); |
%sections_count = |
|
&Apache::loncommon::get_sections($domain,$cnum); |
} |
} |
} |
} |
foreach ('st','ta','ep','ad','in','cc') { |
foreach ('st','ta','ep','ad','in','cc') { |
Line 1778 sub course_level_table {
|
Line 1802 sub course_level_table {
|
<td>$area<br />Domain: $domain</td> |
<td>$area<br />Domain: $domain</td> |
ENDEXTENT |
ENDEXTENT |
if ($_ ne 'cc') { |
if ($_ ne 'cc') { |
if ($num_sections > 0) { |
if (%sections_count) { |
my $currsec = &course_sections($num_sections,\%sections_count,$protectedcourse.'_'.$_); |
my $currsec = &course_sections(\%sections_count,$protectedcourse.'_'.$_); |
$table .= |
$table .= |
'<td><table border="0" cellspacing="0" cellpadding="0">'. |
'<td><table border="0" cellspacing="0" cellpadding="0">'. |
'<tr><td valign="top">'.$lt{'exs'}.'<br />'. |
'<tr><td valign="top">'.$lt{'exs'}.'<br />'. |
Line 1819 ENDTIMEENTRY
|
Line 1843 ENDTIMEENTRY
|
<td>$plrole</td> |
<td>$plrole</td> |
<td>$area</td> |
<td>$area</td> |
END |
END |
if ($num_sections > 0) { |
if (%sections_count) { |
my $currsec = &course_sections($num_sections,\%sections_count,$customrole); |
my $currsec = &course_sections(\%sections_count,$customrole); |
$table.= |
$table.= |
'<td><table border="0" cellspacing="0" cellpadding="0">'. |
'<td><table border="0" cellspacing="0" cellpadding="0">'. |
'<tr><td valign="top">'.$lt{'exs'}.'<br />'. |
'<tr><td valign="top">'.$lt{'exs'}.'<br />'. |
Line 1859 ENDTABLE
|
Line 1883 ENDTABLE
|
} |
} |
|
|
sub course_sections { |
sub course_sections { |
my ($num_sections,$sections_count,$role) = @_; |
my ($sections_count,$role) = @_; |
my $output = ''; |
my $output = ''; |
my @sections = (sort {$a <=> $b} keys %{$sections_count}); |
my @sections = (sort {$a <=> $b} keys %{$sections_count}); |
if ($num_sections == 1) { |
if (scalar(@sections) == 1) { |
$output = '<select name="currsec_'.$role.'" >'."\n". |
$output = '<select name="currsec_'.$role.'" >'."\n". |
' <option value="">Select</option>'."\n". |
' <option value="">Select</option>'."\n". |
' <option value="">No section</option>'."\n". |
' <option value="">No section</option>'."\n". |
Line 1870 sub course_sections {
|
Line 1894 sub course_sections {
|
} else { |
} else { |
$output = '<select name="currsec_'.$role.'" '; |
$output = '<select name="currsec_'.$role.'" '; |
my $multiple = 4; |
my $multiple = 4; |
if ($num_sections <4) { $multiple = $num_sections; } |
if (scalar(@sections) < 4) { $multiple = scalar(@sections); } |
$output .= '"multiple" size="'.$multiple.'">'."\n"; |
$output .= '"multiple" size="'.$multiple.'">'."\n"; |
foreach (@sections) { |
foreach (@sections) { |
$output .= '<option value="'.$_.'">'.$_."</option>\n"; |
$output .= '<option value="'.$_.'">'.$_."</option>\n"; |