version 1.21, 2005/02/17 08:29:43
|
version 1.33, 2005/11/07 15:43:31
|
Line 151 function process(calling,numauto,nummanu
|
Line 151 function process(calling,numauto,nummanu
|
} |
} |
|; |
|; |
if ($action eq 'viewclass') { |
if ($action eq 'viewclass') { |
|
$scripttag .= &Apache::loncommon::check_uncheck_jscript(); |
$scripttag .= qq| |
$scripttag .= qq| |
function checkAll(field) { |
|
if (field.length > 0) { |
|
for (i = 0; i < field.length; i++) { |
|
field[i].checked = true ; |
|
} |
|
} else { |
|
field.checked = true |
|
} |
|
} |
|
|
|
function uncheckAll(field) { |
|
if (field.length > 0) { |
|
for (i = 0; i < field.length; i++) { |
|
field[i].checked = false ; |
|
} |
|
} else { |
|
field.checked = false ; |
|
} |
|
} |
|
|
|
function countChecked(field) { |
function countChecked(field) { |
var count = 0; |
var count = 0; |
if (field.length > 0) { |
if (field.length > 0) { |
Line 207 ENDHEAD
|
Line 188 ENDHEAD
|
sub print_mainbox { |
sub print_mainbox { |
my ($r,$tasklongref,$realm,$reply) = @_; |
my ($r,$tasklongref,$realm,$reply) = @_; |
my $action = "information"; |
my $action = "information"; |
if ( exists($ENV{'form.action'}) ) { |
if ( exists($env{'form.action'}) ) { |
$action = $ENV{'form.action'}; |
$action = $env{'form.action'}; |
} |
} |
my $page = ''; |
my $page = ''; |
if ($action eq "information") { |
if ($action eq "information") { |
Line 245 ENDTHIS
|
Line 226 ENDTHIS
|
sub print_navmenu { |
sub print_navmenu { |
my ($r,$tasksref,$tasklongref) = @_; |
my ($r,$tasksref,$tasklongref) = @_; |
my $action = "information"; |
my $action = "information"; |
if (exists($ENV{'form.action'}) ) { |
if (exists($env{'form.action'}) ) { |
$action = $ENV{'form.action'}; |
$action = $env{'form.action'}; |
} |
} |
$r->print(<<ENDONE); |
$r->print(<<ENDONE); |
<td width="10" valign="top" bgcolor="#DDFFFF"> </td> |
<td width="10" valign="top" bgcolor="#DDFFFF"> </td> |
Line 284 ENDONE
|
Line 265 ENDONE
|
sub print_main_frame { |
sub print_main_frame { |
my ($r,$realm,$dom,$crs,$tasktitleref) = @_; |
my ($r,$realm,$dom,$crs,$tasktitleref) = @_; |
my $action = "information"; |
my $action = "information"; |
if (exists($ENV{'form.action'}) ) { |
if (exists($env{'form.action'}) ) { |
$action = $ENV{'form.action'}; |
$action = $env{'form.action'}; |
} |
} |
|
|
# Get course settings |
# Get course settings |
Line 504 ENDTWO
|
Line 485 ENDTWO
|
</form> |
</form> |
ENDTWO |
ENDTWO |
} elsif ($action eq "notify") { |
} elsif ($action eq "notify") { |
my @notified = (); |
|
if ($enrollvar{notifylist} =~ m/,/) { |
|
@notified = split/,/,$enrollvar{notifylist}; |
|
} else { |
|
@notified = $enrollvar{notifylist}; |
|
} |
|
my $notifycount = 0; |
my $notifycount = 0; |
|
my @notified = split(/,/,$enrollvar{notifylist}); |
foreach (@notified) { |
foreach (@notified) { |
unless ($_ eq '') { $notifycount ++; } |
unless ($_ eq '') { $notifycount ++; } |
} |
} |
my $noteset = ''; |
my $noteset = ''; |
if ($notifycount) { |
if ($notifycount) { |
Line 559 ENDTWO
|
Line 535 ENDTWO
|
my @roleinfo = split/:/,$_; |
my @roleinfo = split/:/,$_; |
if ($roleinfo[0] eq 'cc') { |
if ($roleinfo[0] eq 'cc') { |
unless (grep/^$roleinfo[1]\@$roleinfo[2]/,@ccs) { |
unless (grep/^$roleinfo[1]\@$roleinfo[2]/,@ccs) { |
my $active_cc = &LONCAPA::Enrollment::check_user_status($roleinfo[2],$roleinfo[1],$dom,$crs,'cc'); |
my $active_cc = &Apache::loncommon::check_user_status($roleinfo[2],$roleinfo[1],$dom,$crs,'cc'); |
if ($active_cc eq 'ok') { |
if ($active_cc eq 'active') { |
push @ccs, "$roleinfo[1]\@$roleinfo[2]"; |
push @ccs, "$roleinfo[1]\@$roleinfo[2]"; |
$pname{"$roleinfo[1]\@$roleinfo[2]"} = &Apache::loncommon::plainname($roleinfo[1],$roleinfo[2]); |
$pname{"$roleinfo[1]\@$roleinfo[2]"} = &Apache::loncommon::plainname($roleinfo[1],$roleinfo[2]); |
if (grep/^$roleinfo[1]\@$roleinfo[2]$/,@notified) { |
if (grep/^$roleinfo[1]\@$roleinfo[2]$/,@notified) { |
Line 584 ENDTWO
|
Line 560 ENDTWO
|
} |
} |
} |
} |
} |
} |
my $viewer = $ENV{'user.name'}.'@'.$ENV{'user.domain'}; |
my $viewer = $env{'user.name'}.'@'.$env{'user.domain'}; |
unless ( (grep/^$viewer$/,@ccs) || ($viewer eq '') ) { |
unless ( (grep/^$viewer$/,@ccs) || ($viewer eq '') ) { |
push @ccs,$viewer; |
push @ccs,$viewer; |
$pname{$viewer} = &Apache::loncommon::plainname($ENV{'user.name'},$ENV{'user.domain'}); |
$pname{$viewer} = &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'}); |
$notifystate{$viewer} = 0; |
$notifystate{$viewer} = 0; |
} |
} |
|
|
Line 657 ENDTWO
|
Line 633 ENDTWO
|
</form> |
</form> |
"); |
"); |
} elsif ($action eq "crosslist") { |
} elsif ($action eq "crosslist") { |
my @xlists = (); |
my @xlists; |
if ($enrollvar{crosslistings} =~ m/,/) { |
if ($enrollvar{crosslistings} ne '') { |
@xlists = split/,/,$enrollvar{crosslistings}; |
@xlists = split(/,/,$enrollvar{crosslistings}); |
} elsif ($enrollvar{crosslistings} ne '') { |
|
$xlists[0] = $enrollvar{crosslistings}; |
|
} |
} |
my $cross_str = @xlists; |
my $cross_str = @xlists; |
$r->print(" |
$r->print(" |
Line 690 ENDTWO
|
Line 664 ENDTWO
|
for (my $i=0; $i<@xlists; $i++) { |
for (my $i=0; $i<@xlists; $i++) { |
my $xl = ' '; |
my $xl = ' '; |
my $gp = ' '; |
my $gp = ' '; |
if ($xlists[$i] =~ /(\w+):?(.*)$/) { |
if ($xlists[$i] =~ /^([^:]+):?(.*)$/) { |
$xl = $1; |
$xl = $1; |
$gp = $2; |
$gp = $2; |
} |
} |
Line 742 ENDTWO
|
Line 716 ENDTWO
|
} elsif ($action eq "sections") { |
} elsif ($action eq "sections") { |
my @sections = (); |
my @sections = (); |
@sections = &Apache::lonnet::auto_get_sections($crs,$dom,$enrollvar{coursecode}); |
@sections = &Apache::lonnet::auto_get_sections($crs,$dom,$enrollvar{coursecode}); |
my @storedsections = (); |
my @storedsections = split(/,/,$enrollvar{sectionnums}); |
my @currsections = (); |
my @currsections = (); |
my %sec_id = (); |
my %sec_id = (); |
if ($enrollvar{sectionnums} =~ m/,/) { |
|
@storedsections = split/,/,$enrollvar{sectionnums}; |
|
} else { |
|
$storedsections[0] = $enrollvar{sectionnums}; |
|
} |
|
foreach (@storedsections) { |
foreach (@storedsections) { |
if ($_ =~ m/^(\w+):(\w*)$/) { |
if ($_ =~ m/^(\w+):(\w*)$/) { |
push @currsections, $1; |
push @currsections, $1; |
Line 1000 Note: Any students previously added manu
|
Line 969 Note: Any students previously added manu
|
<tr> |
<tr> |
<td> |
<td> |
"); |
"); |
if (! exists($ENV{'form.sortby'})) { |
if (! exists($env{'form.sortby'})) { |
$ENV{'form.sortby'} = 'username'; |
$env{'form.sortby'} = 'username'; |
} |
} |
if ($ENV{'form.Status'} !~ /^(Any|Expired|Active)$/) { |
if ($env{'form.Status'} !~ /^(Any|Expired|Active)$/) { |
$ENV{'form.Status'} = 'Active'; |
$env{'form.Status'} = 'Active'; |
} |
} |
my $status_select = &Apache::lonhtmlcommon::StatusOptions($ENV{'form.Status'}); |
my $status_select = &Apache::lonhtmlcommon::StatusOptions($env{'form.Status'}); |
# Get current classlist |
# Get current classlist |
my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); |
my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist(); |
if (! defined($classlist)) { |
if (! defined($classlist)) { |
Line 1017 Note: Any students previously added manu
|
Line 986 Note: Any students previously added manu
|
$r->print('<input type="submit" value="'.&mt('Update Display').'" />'. |
$r->print('<input type="submit" value="'.&mt('Update Display').'" />'. |
"\n</p>\n"); |
"\n</p>\n"); |
|
|
my ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount) = &Apache::londropadd::show_class_list($r,'autoenroll','nothing',$ENV{'form.Status'},$classlist,$keylist); |
my ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount) = &Apache::londropadd::show_class_list($r,'autoenroll','nothing',$env{'form.Status'},$classlist,$keylist); |
$r->print(" |
$r->print(" |
</td> |
</td> |
</tr> |
</tr> |
Line 1246 sub print_chgsettings_response {
|
Line 1215 sub print_chgsettings_response {
|
my $autoadds = ''; |
my $autoadds = ''; |
my $autodrops = ''; |
my $autodrops = ''; |
|
|
if ( exists($ENV{'form.autoadds'}) ) { |
if ( exists($env{'form.autoadds'}) ) { |
$autoadds=$ENV{'form.autoadds'}; |
$autoadds=$env{'form.autoadds'}; |
} |
} |
if ( exists($ENV{'form.autodrops'}) ) { |
if ( exists($env{'form.autodrops'}) ) { |
$autodrops=$ENV{'form.autodrops'}; |
$autodrops=$env{'form.autodrops'}; |
} |
} |
|
|
my $response = ""; |
my $response = ""; |
Line 1507 sub print_notify_response {
|
Line 1476 sub print_notify_response {
|
my %settings = &Apache::lonnet::get('environment',['internal.notifylist','internal.coursecode'],$dom,$crs); |
my %settings = &Apache::lonnet::get('environment',['internal.notifylist','internal.coursecode'],$dom,$crs); |
my $notifylist = $settings{'internal.notifylist'}; |
my $notifylist = $settings{'internal.notifylist'}; |
my $coursecode = $settings{'internal.coursecode'}; |
my $coursecode = $settings{'internal.coursecode'}; |
my @currpeople = (); |
my @currpeople = split(/,/,$notifylist); |
my $notify = 0; |
my $notify = 0; |
my @people = (); |
my @people = (); |
my $peoplestr = ""; |
my $peoplestr = ""; |
my $response = ""; |
my $response = ""; |
my $noprocess = 0; |
my $noprocess = 0; |
|
|
if ($notifylist =~ m/,/) { |
|
@currpeople = split/,/,$notifylist; |
|
} else { |
|
$currpeople[0] = $notifylist; |
|
} |
|
my $currcount = 0; |
my $currcount = 0; |
foreach (@currpeople) { |
foreach (@currpeople) { |
unless ($_ eq '') { $currcount ++; } |
unless ($_ eq '') { $currcount ++; } |
} |
} |
|
|
if ( exists($ENV{'form.notify'}) ) { |
if ( exists($env{'form.notify'}) ) { |
$notify=$ENV{'form.notify'}; |
$notify=$env{'form.notify'}; |
} |
} |
if ( exists($ENV{'form.notifyshow'}) ) { |
if ( exists($env{'form.notifyshow'}) ) { |
my $notifyshow = $ENV{'form.notifyshow'}; |
my $notifyshow = $env{'form.notifyshow'}; |
for (my $i=0; $i<$notifyshow; $i++) { |
for (my $i=0; $i<$notifyshow; $i++) { |
if ( exists($ENV{"form.note_$i"}) ) { |
if ( exists($env{"form.note_$i"}) ) { |
if ( exists($ENV{"form.notifyname_$i"}) ) { |
if ( exists($env{"form.notifyname_$i"}) ) { |
unless ( $ENV{"form.notifyname_$i"} eq '' ) { |
unless ( $env{"form.notifyname_$i"} eq '' ) { |
push @people, $ENV{"form.notifyname_$i"}; |
push @people, $env{"form.notifyname_$i"}; |
} |
} |
} |
} |
} |
} |
Line 1593 sub print_crosslistings_menu () {
|
Line 1557 sub print_crosslistings_menu () {
|
my $xliststr = ''; |
my $xliststr = ''; |
my $response = ''; |
my $response = ''; |
my $coursecode = $settings{'internal.coursecode'}; |
my $coursecode = $settings{'internal.coursecode'}; |
if ($settings{'internal.crosslistings'} =~ m/,/) { |
if ($settings{'internal.crosslistings'} ne '') { |
@currxlists = split/,/,$settings{'internal.crosslistings'}; |
@currxlists = split(/,/,$settings{'internal.crosslistings'}); |
} elsif ($settings{'internal.crosslistings'} ne '') { |
|
$currxlists[0] = $settings{'internal.crosslistings'}; |
|
} |
} |
|
|
if (@currxlists > 0) { |
if (@currxlists > 0) { |
for (my $i=0; $i<@currxlists; $i++) { |
for (my $i=0; $i<@currxlists; $i++) { |
my $xlist = "cross_".$i; |
my $xlist = "cross_".$i; |
my $gp = "gp_".$i; |
my $gp = "gp_".$i; |
if ( exists($ENV{"form.$xlist"}) ) { |
if ( exists($env{"form.$xlist"}) ) { |
my $xlistentry = ''; |
my $xlistentry = ''; |
if ($currxlists[$i] =~ m/^([^:]+)/) { |
if ($currxlists[$i] =~ m/^([^:]+)/) { |
$xlistentry = $1.':'; |
$xlistentry = $1.':'; |
} |
} |
if ( exists($ENV{"form.$gp"}) ) { |
if ( exists($env{"form.$gp"}) ) { |
$xlistentry .= $ENV{"form.$gp"}; |
$xlistentry .= $env{"form.$gp"}; |
} |
} |
push @xlists,$xlistentry; |
push @xlists,$xlistentry; |
$crosscount ++; |
$crosscount ++; |
Line 1619 sub print_crosslistings_menu () {
|
Line 1581 sub print_crosslistings_menu () {
|
} |
} |
} |
} |
|
|
if ($crosscount > 1) { |
$xliststr = join(",",@xlists); |
$xliststr = join(",",@xlists); |
|
} else { |
|
$xliststr = $xlists[0]; |
|
} |
|
my %cenv = ('internal.crosslistings' => $xliststr); |
my %cenv = ('internal.crosslistings' => $xliststr); |
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
if ($reply !~ /^ok$/) { |
if ($reply !~ /^ok$/) { |
Line 1641 sub print_crosslistings_menu () {
|
Line 1600 sub print_crosslistings_menu () {
|
$response .= "</ul><br/>\n"; |
$response .= "</ul><br/>\n"; |
} |
} |
} |
} |
if ( exists($ENV{'form.numcross'}) ) { |
if ( exists($env{'form.numcross'}) ) { |
my $numcross = $ENV{'form.numcross'}; |
my $numcross = $env{'form.numcross'}; |
if ($numcross > 0) { |
if ($numcross > 0) { |
my @bgcolors=("#eeeeee","#cccccc"); |
my @bgcolors=("#eeeeee","#cccccc"); |
$response .= qq(You indicated that you wish to add an additional $numcross crosslisting(s). For each new crosslisting enter the insititutional course section code (e.g., fs03zol101001, for section 001 of zol101 for fs03 semester), and the LON-CAPA section/group ID you wish to assign to students who will be enrolled in your LON-CAPA class as a result of their registration in the crosslisted course section. The LON-CAPA section/group ID can be left blank, if you do not wish to tie a section/group ID to this crosslisting. The institutional course section code should only contain letters and/or numbers, and must be consistent with the scheme adopted by your Domain Coordinator to map course codes (and section numbers) to your institution\'s student information system.<br/><br/> |
$response .= qq(You indicated that you wish to add an additional $numcross crosslisting(s). For each new crosslisting enter the insititutional course section code (e.g., fs03zol101001, for section 001 of zol101 for fs03 semester), and the LON-CAPA section/group ID you wish to assign to students who will be enrolled in your LON-CAPA class as a result of their registration in the crosslisted course section. The LON-CAPA section/group ID can be left blank, if you do not wish to tie a section/group ID to this crosslisting. The institutional course section code should only contain letters and/or numbers, and must be consistent with the scheme adopted by your Domain Coordinator to map course codes (and section numbers) to your institution\'s student information system.<br/><br/> |
Line 1701 sub print_crosslistings_response () {
|
Line 1660 sub print_crosslistings_response () {
|
my $warning = ''; |
my $warning = ''; |
my $warn_prefix = ''; |
my $warn_prefix = ''; |
|
|
if ($xliststr =~ m/,/) { |
if ($xliststr ne '') { |
@allxlists = split/,/,$xliststr; |
@allxlists = split(/,/,$xliststr); |
} else { |
|
unless ($xliststr eq '') { $allxlists[0] = $xliststr; } |
|
} |
} |
|
|
if ( exists($ENV{'form.numcross'}) ) { |
if ( exists($env{'form.numcross'}) ) { |
$numcross = $ENV{'form.numcross'}; |
$numcross = $env{'form.numcross'}; |
} |
} |
|
|
if ($numcross > 0) { |
if ($numcross > 0) { |
for (my $i=0; $i<$numcross; $i++) { |
for (my $i=0; $i<$numcross; $i++) { |
my $xl = "newcross_".$i; |
my $xl = "newcross_".$i; |
my $gp = "newgroupid_".$i; |
my $gp = "newgroupid_".$i; |
if ( exists($ENV{"form.$xl"}) ) { |
if ( exists($env{"form.$xl"}) ) { |
my $coursecheck = ''; |
my $coursecheck = ''; |
$coursecheck = &Apache::lonnet::auto_validate_courseID($crs,$dom,$ENV{"form.$xl"}); |
$coursecheck = &Apache::lonnet::auto_validate_courseID($crs,$dom,$env{"form.$xl"}); |
if ($coursecheck eq 'ok') { |
if ($coursecheck eq 'ok') { |
my $addcheck = ''; |
my $addcheck = ''; |
$addcheck = &Apache::lonnet::auto_new_course($crs,$dom,$ENV{"form.$xl"},$owner); |
$addcheck = &Apache::lonnet::auto_new_course($crs,$dom,$env{"form.$xl"},$owner); |
if ($addcheck eq 'ok') { |
if ($addcheck eq 'ok') { |
push @xlists,$ENV{"form.$xl"}.":".$ENV{"form.$gp"}; |
push @xlists,$env{"form.$xl"}.":".$env{"form.$gp"}; |
} else { |
} else { |
push @badowner,$ENV{"form.$xl"}.":".$ENV{"form.$gp"}; |
push @badowner,$env{"form.$xl"}.":".$env{"form.$gp"}; |
} |
} |
} else { |
} else { |
push @badxlists, $ENV{"form.$xl"}.":".$ENV{"form.$gp"}.":".$coursecheck; |
push @badxlists, $env{"form.$xl"}.":".$env{"form.$gp"}.":".$coursecheck; |
} |
} |
} |
} |
} |
} |
Line 1736 sub print_crosslistings_response () {
|
Line 1693 sub print_crosslistings_response () {
|
|
|
if (@xlists > 0 ) { |
if (@xlists > 0 ) { |
unless ($xliststr eq '') { $xliststr .= ","; } |
unless ($xliststr eq '') { $xliststr .= ","; } |
if (@xlists > 1) { |
$xliststr .= join(",",@xlists); |
$xliststr .= join(",",@xlists); |
|
} else { |
|
$xliststr .= $xlists[0]; |
|
} |
|
my %cenv = ('internal.crosslistings' => $xliststr); |
my %cenv = ('internal.crosslistings' => $xliststr); |
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
if ($reply !~ /^ok$/) { |
if ($reply !~ /^ok$/) { |
Line 1755 sub print_crosslistings_response () {
|
Line 1709 sub print_crosslistings_response () {
|
} |
} |
} else { |
} else { |
if ($xliststr =~ m/:/) { |
if ($xliststr =~ m/:/) { |
my @oldxlists = (); |
my @oldxlists = (split/,/,$xliststr); |
if ($xliststr =~ m/,/) { |
|
@oldxlists = split/,/,$xliststr; |
|
} else { |
|
$oldxlists[0] = $xliststr; |
|
} |
|
$response .= "Although no new crosslistings were added, the courses listed below continue to be crosslisted with your LON-CAPA course.<br/><ul>\n"; |
$response .= "Although no new crosslistings were added, the courses listed below continue to be crosslisted with your LON-CAPA course.<br/><ul>\n"; |
foreach (@oldxlists) { |
foreach (@oldxlists) { |
my ($xlist,$gp) = split/:/,$_; |
my ($xlist,$gp) = split/:/,$_; |
Line 1815 sub print_sections_menu () {
|
Line 1764 sub print_sections_menu () {
|
my $warn_prefix = ""; |
my $warn_prefix = ""; |
my $coursecode = $settings{'internal.coursecode'}; |
my $coursecode = $settings{'internal.coursecode'}; |
my $owner = $settings{'internal.courseowner'}; |
my $owner = $settings{'internal.courseowner'}; |
if ($settings{'internal.sectionnums'} =~ m/,/) { |
if ($settings{'internal.sectionnums'} ne '') { |
@currsections = split/,/,$settings{'internal.sectionnums'}; |
@currsections = split(/,/,$settings{'internal.sectionnums'}); |
} elsif ($settings{'internal.sectionnums'} ne '') { |
|
$currsections[0] = $settings{'internal.sectionnums'}; |
|
} |
} |
|
|
if ( exists($ENV{'form.secshow'}) ) { |
if ( exists($env{'form.secshow'}) ) { |
for (my $i=0; $i<$ENV{'form.secshow'}; $i++) { |
for (my $i=0; $i<$env{'form.secshow'}; $i++) { |
my $gp = "loncapasec_".$i; |
my $gp = "loncapasec_".$i; |
my $secnum = "secnum_".$i; |
my $secnum = "secnum_".$i; |
my $sec = "sec_".$i; |
my $sec = "sec_".$i; |
if ( exists( $ENV{"form.$sec"} ) ) { |
if ( exists( $env{"form.$sec"} ) ) { |
my $secentry; |
my $secentry; |
if ( exists( $ENV{"form.$secnum"} ) ) { |
if ( exists( $env{"form.$secnum"} ) ) { |
$secentry = $ENV{"form.$secnum"}.':'; |
$secentry = $env{"form.$secnum"}.':'; |
} |
} |
if ( exists( $ENV{"form.$gp"} ) ) { |
if ( exists( $env{"form.$gp"} ) ) { |
$secentry .= $ENV{"form.$gp"}; |
$secentry .= $env{"form.$gp"}; |
} |
} |
if ( grep/^$ENV{"form.$secnum"}:/,@currsections) { |
if ( grep/^$env{"form.$secnum"}:/,@currsections) { |
push @sections, $secentry; |
push @sections, $secentry; |
$seccount ++; |
$seccount ++; |
} else { |
} else { |
my $newsec = $coursecode.$ENV{"form.$secnum"}; |
my $newsec = $coursecode.$env{"form.$secnum"}; |
my $coursecheck = &Apache::lonnet::auto_validate_courseID($crs,$dom,$newsec); |
my $coursecheck = &Apache::lonnet::auto_validate_courseID($crs,$dom,$newsec); |
if ($coursecheck eq 'ok') { |
if ($coursecheck eq 'ok') { |
my $addcheck = &Apache::lonnet::auto_new_course($crs,$dom,$newsec,$owner); |
my $addcheck = &Apache::lonnet::auto_new_course($crs,$dom,$newsec,$owner); |
if ($addcheck eq 'ok') { |
if ($addcheck eq 'ok') { |
push @sections,$ENV{"form.$secnum"}.":".$ENV{"form.$gp"}; |
push @sections,$env{"form.$secnum"}.":".$env{"form.$gp"}; |
$seccount ++; |
$seccount ++; |
$addcount ++; |
$addcount ++; |
} else { |
} else { |
push @badowner,$ENV{"form.$secnum"}.":".$ENV{"form.$gp"}; |
push @badowner,$env{"form.$secnum"}.":".$env{"form.$gp"}; |
} |
} |
} else { |
} else { |
push @badsections, $ENV{"form.$secnum"}.":".$ENV{"form.$gp"}.":".$coursecheck; |
push @badsections, $env{"form.$secnum"}.":".$env{"form.$gp"}.":".$coursecheck; |
} |
} |
} |
} |
} |
} |
Line 1869 sub print_sections_menu () {
|
Line 1816 sub print_sections_menu () {
|
for (my $i=0; $i<@currsections; $i++) { |
for (my $i=0; $i<@currsections; $i++) { |
my $sec = "sec_".$i; |
my $sec = "sec_".$i; |
my $gp = "secgp_".$i; |
my $gp = "secgp_".$i; |
if ( exists($ENV{"form.$sec"}) ) { |
if ( exists($env{"form.$sec"}) ) { |
my $secentry = ''; |
my $secentry = ''; |
if ($currsections[$i] =~ m/^(\w+:)/ ) { |
if ($currsections[$i] =~ m/^(\w+:)/ ) { |
$secentry = $1; |
$secentry = $1; |
} |
} |
if ( exists($ENV{"form.$gp"}) ) { |
if ( exists($env{"form.$gp"}) ) { |
$secentry .= $ENV{"form.$gp"}; |
$secentry .= $env{"form.$gp"}; |
} |
} |
push @sections,$secentry; |
push @sections,$secentry; |
$seccount ++; |
$seccount ++; |
Line 1885 sub print_sections_menu () {
|
Line 1832 sub print_sections_menu () {
|
} |
} |
} |
} |
|
|
if ($seccount > 1) { |
$secstr = join(",",@sections); |
$secstr = join(",",@sections); |
|
} else { |
|
$secstr = $sections[0]; |
|
} |
|
my %cenv = ('internal.sectionnums' => $secstr); |
my %cenv = ('internal.sectionnums' => $secstr); |
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
my $reply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
if ($reply !~ /^ok$/) { |
if ($reply !~ /^ok$/) { |
Line 1938 sections which contribute to enrollment
|
Line 1882 sections which contribute to enrollment
|
} |
} |
} |
} |
|
|
if ( exists($ENV{'form.numsec'}) ) { |
if ( exists($env{'form.numsec'}) ) { |
my $numsec = $ENV{'form.numsec'}; |
my $numsec = $env{'form.numsec'}; |
if ($numsec > 0) { |
if ($numsec > 0) { |
my @bgcolors=("#eeeeee","#cccccc"); |
my @bgcolors=("#eeeeee","#cccccc"); |
$response .= qq( |
$response .= qq( |
Line 1999 sub print_sections_response () {
|
Line 1943 sub print_sections_response () {
|
my $putreply = ''; |
my $putreply = ''; |
my $warning = ''; |
my $warning = ''; |
my $warn_prefix = ''; |
my $warn_prefix = ''; |
if ($secstr =~ m/,/) { |
if ($secstr ne '') { |
@allsections = split/,/,$secstr; |
@allsections = split(/,/,$secstr); |
} else { |
|
unless ($secstr eq '') { $allsections[0] = $secstr; } |
|
} |
} |
|
|
if ( exists($ENV{'form.numsec'}) ) { |
if ( exists($env{'form.numsec'}) ) { |
$numsec = $ENV{'form.numsec'}; |
$numsec = $env{'form.numsec'}; |
} |
} |
|
|
if ($numsec > 0) { |
if ($numsec > 0) { |
for (my $i=0; $i<$numsec; $i++) { |
for (my $i=0; $i<$numsec; $i++) { |
my $sec = "newsec_".$i; |
my $sec = "newsec_".$i; |
my $gp = "newsecgp_".$i; |
my $gp = "newsecgp_".$i; |
if ( exists($ENV{"form.$sec"}) ) { |
if ( exists($env{"form.$sec"}) ) { |
unless ( (grep/^$ENV{"form.$sec"}:/,@allsections) || (grep/^$ENV{"form.$sec"}:/,@sections) ) { |
unless ( (grep/^$env{"form.$sec"}:/,@allsections) || (grep/^$env{"form.$sec"}:/,@sections) ) { |
my $newsec = $coursecode.$ENV{"form.$sec"}; |
my $newsec = $coursecode.$env{"form.$sec"}; |
my $coursecheck = &Apache::lonnet::auto_validate_courseID($crs,$dom,$newsec); |
my $coursecheck = &Apache::lonnet::auto_validate_courseID($crs,$dom,$newsec); |
if ($coursecheck eq 'ok') { |
if ($coursecheck eq 'ok') { |
my $addcheck = &Apache::lonnet::auto_new_course($crs,$dom,$newsec,$owner); |
my $addcheck = &Apache::lonnet::auto_new_course($crs,$dom,$newsec,$owner); |
if ($addcheck eq 'ok') { |
if ($addcheck eq 'ok') { |
push @sections,$ENV{"form.$sec"}.":".$ENV{"form.$gp"}; |
push @sections,$env{"form.$sec"}.":".$env{"form.$gp"}; |
} else { |
} else { |
push @badowner,$ENV{"form.$sec"}.":".$ENV{"form.$gp"}; |
push @badowner,$env{"form.$sec"}.":".$env{"form.$gp"}; |
} |
} |
} else { |
} else { |
push @badsections, $ENV{"form.$sec"}.":".$ENV{"form.$gp"}.":".$coursecheck; |
push @badsections, $env{"form.$sec"}.":".$env{"form.$gp"}.":".$coursecheck; |
} |
} |
} |
} |
} |
} |
Line 2035 sub print_sections_response () {
|
Line 1977 sub print_sections_response () {
|
|
|
if (@sections > 0 ) { |
if (@sections > 0 ) { |
unless ($secstr eq '') { $secstr .= ","; } |
unless ($secstr eq '') { $secstr .= ","; } |
if (@sections > 1) { |
$secstr .= join(",",@sections); |
$secstr .= join(",",@sections); |
|
} else { |
|
$secstr .= $sections[0]; |
|
} |
|
my %cenv = ('internal.sectionnums' => $secstr); |
my %cenv = ('internal.sectionnums' => $secstr); |
$putreply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
$putreply = &Apache::lonnet::put('environment',\%cenv,$dom,$crs); |
if ($putreply !~ /^ok$/) { |
if ($putreply !~ /^ok$/) { |
Line 2091 sub print_photos_response () {
|
Line 2029 sub print_photos_response () {
|
my %settings = &Apache::lonnet::get('environment',['internal.showphotos'],$dom,$crs); |
my %settings = &Apache::lonnet::get('environment',['internal.showphotos'],$dom,$crs); |
my $currphotos = $settings{'internal.showphotos'}; |
my $currphotos = $settings{'internal.showphotos'}; |
my $showphotos = ''; |
my $showphotos = ''; |
if ( exists($ENV{'form.showphotos'}) ) { |
if ( exists($env{'form.showphotos'}) ) { |
$showphotos=$ENV{'form.showphotos'}; |
$showphotos=$env{'form.showphotos'}; |
} |
} |
|
|
my $response = ""; |
my $response = ""; |
Line 2137 sub print_update_result () {
|
Line 2075 sub print_update_result () {
|
my $authtype = $settings{'internal.authtype'}; |
my $authtype = $settings{'internal.authtype'}; |
my $autharg = $settings{'internal.autharg'}; |
my $autharg = $settings{'internal.autharg'}; |
my ($startaccess,$endaccess) = &get_dates_from_form(); |
my ($startaccess,$endaccess) = &get_dates_from_form(); |
if ( exists($ENV{'form.updateadds'}) ) { |
if ( exists($env{'form.updateadds'}) ) { |
$updateadds = $ENV{'form.updateadds'}; |
$updateadds = $env{'form.updateadds'}; |
} |
} |
if ( exists($ENV{'form.updatedrops'}) ) { |
if ( exists($env{'form.updatedrops'}) ) { |
$updatedrops = $ENV{'form.updatedrops'}; |
$updatedrops = $env{'form.updatedrops'}; |
} |
} |
if (($startaccess eq '') || ($endaccess eq '')) { |
if (($startaccess eq '') || ($endaccess eq '')) { |
$response = "There was a problem processing your requested roster update because start and and access dates could not be determined. No changes have been made to the class roster.<br />"; |
$response = "There was a problem processing your requested roster update because start and and access dates could not be determined. No changes have been made to the class roster.<br />"; |
Line 2156 sub print_update_result () {
|
Line 2094 sub print_update_result () {
|
my @currsections = (); |
my @currsections = (); |
my @currxlists = (); |
my @currxlists = (); |
|
|
if ($settings{'internal.sectionnums'} =~ m/,/) { |
if ($settings{'internal.sectionnums'} ne '') { |
@currsections = split/,/,$settings{'internal.sectionnums'}; |
@currsections = split(/,/,$settings{'internal.sectionnums'}); |
} elsif ($settings{'internal.sectionnums'} ne '') { |
|
$currsections[0] = $settings{'internal.sectionnums'}; |
|
} |
} |
|
|
if ($settings{'internal.crosslistings'} =~ m/,/) { |
if ($settings{'internal.crosslistings'} ne '') { |
@currxlists = split/,/,$settings{'internal.crosslistings'}; |
@currxlists = split(/,/,$settings{'internal.crosslistings'}); |
} elsif ($settings{'internal.crosslistings'} ne '') { |
|
$currxlists[0] = $settings{'internal.crosslistings'}; |
|
} |
} |
|
|
if (@currxlists > 0) { |
if (@currxlists > 0) { |
foreach (@currxlists) { |
foreach (@currxlists) { |
if (m/^(\w+):(\w*)$/) { |
if (m/^([^:]+):(\w*)$/) { |
unless (grep/^$1$/,@allcourses) { |
unless (grep/^$1$/,@allcourses) { |
push @allcourses,$1; |
push @allcourses,$1; |
$LC_code{$1} = $2; |
$LC_code{$1} = $2; |
Line 2199 sub print_update_result () {
|
Line 2133 sub print_update_result () {
|
&Apache::lonnet::logthis("lonpopulate:update roster". |
&Apache::lonnet::logthis("lonpopulate:update roster". |
"failed to retrieve classlist". |
"failed to retrieve classlist". |
" data for ".$crs."\@".$dom." by ". |
" data for ".$crs."\@".$dom." by ". |
$ENV{'user.name'}." \@ ".$ENV{'user.domain'}. |
$env{'user.name'}." \@ ".$env{'user.domain'}. |
": ".$outcome); |
": ".$outcome); |
} |
} |
if ($reply{$crs} > 0) { |
if ($reply{$crs} > 0) { |
Line 2241 sub print_viewclass_response {
|
Line 2175 sub print_viewclass_response {
|
my %otherdom = (); |
my %otherdom = (); |
my %lockchg = (); |
my %lockchg = (); |
my %nolockchg = (); |
my %nolockchg = (); |
my $classlist = &Apache::loncoursedata::get_classlist($cid,$dom,$crs); |
my $classlist = &Apache::loncoursedata::get_classlist($dom,$crs); |
my $endidx = &Apache::loncoursedata::CL_END; |
my $endidx = &Apache::loncoursedata::CL_END; |
my $startidx = &Apache::loncoursedata::CL_START; |
my $startidx = &Apache::loncoursedata::CL_START; |
my $ididx=&Apache::loncoursedata::CL_ID; |
my $ididx=&Apache::loncoursedata::CL_ID; |
my $secidx=&Apache::loncoursedata::CL_SECTION; |
my $secidx=&Apache::loncoursedata::CL_SECTION; |
my $typeidx=&Apache::loncoursedata::CL_TYPE; |
my $typeidx=&Apache::loncoursedata::CL_TYPE; |
my $lockedidx=&Apache::loncoursedata::CL_LOCKEDTYPE; |
my $lockedidx=&Apache::loncoursedata::CL_LOCKEDTYPE; |
my @typechglist = (); |
|
my @lockchglist = (); |
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['chgauto','chgmanual','lockchg','unlockchg']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['chgauto','chgmanual','lockchg','unlockchg']); |
if ($ENV{'form.chgauto'}) { |
my @typechglist = (&Apache::loncommon::get_env_multiple('form.chgauto'), |
if (ref($ENV{'form.chgauto'}) eq 'ARRAY') { |
&Apache::loncommon::get_env_multiple('form.chgmanual')); |
push @typechglist, @{$ENV{'form.chgauto'}}; |
my @lockchglist = (&Apache::loncommon::get_env_multiple('form.lockchg'), |
} else { |
&Apache::loncommon::get_env_multiple('form.unlockchg')); |
push @typechglist, $ENV{'form.chgauto'}; |
|
} |
|
} |
|
if ($ENV{'form.chgmanual'}) { |
|
if (ref($ENV{'form.chgmanual'}) eq 'ARRAY') { |
|
push @typechglist, @{$ENV{'form.chgmanual'}}; |
|
} else { |
|
push @typechglist, $ENV{'form.chgmanual'}; |
|
} |
|
} |
|
if ($ENV{'form.lockchg'}) { |
|
if (ref($ENV{'form.lockchg'}) eq 'ARRAY') { |
|
push @lockchglist, @{$ENV{'form.lockchg'}}; |
|
} else { |
|
push @lockchglist, $ENV{'form.lockchg'}; |
|
} |
|
} |
|
if ($ENV{'form.unlockchg'}) { |
|
if (ref($ENV{'form.unlockchg'}) eq 'ARRAY') { |
|
push @lockchglist, @{$ENV{'form.unlockchg'}}; |
|
} else { |
|
push @lockchglist, $ENV{'form.unlockchg'}; |
|
} |
|
} |
|
foreach my $student (sort @typechglist) { |
foreach my $student (sort @typechglist) { |
my ($uname,$udom) = split/:/,$student; |
my ($uname,$udom) = split/:/,$student; |
my $sdata = $classlist->{$student}; |
my $sdata = $classlist->{$student}; |
Line 2348 sub print_viewclass_response {
|
Line 2257 sub print_viewclass_response {
|
} |
} |
if ($chgtotal > 0) { |
if ($chgtotal > 0) { |
$response = "You requested a change in enrollment type for $chgtotal students.<br /><br />\n"; |
$response = "You requested a change in enrollment type for $chgtotal students.<br /><br />\n"; |
$classlist = &Apache::loncoursedata::get_classlist($cid,$dom,$crs); |
$classlist = &Apache::loncoursedata::get_classlist($dom,$crs); |
if ($chgok > 0) { |
if ($chgok > 0) { |
$response .= "The following $chgok changes were successful:<br />"; |
$response .= "The following $chgok changes were successful:<br />"; |
$response .= &enrolltype_result(\%chg,$classlist,$endidx,$startidx,$ididx,$secidx,$typeidx); |
$response .= &enrolltype_result(\%chg,$classlist,$endidx,$startidx,$ididx,$secidx,$typeidx); |
Line 2365 sub print_viewclass_response {
|
Line 2274 sub print_viewclass_response {
|
} |
} |
if ($locktotal > 0) { |
if ($locktotal > 0) { |
$response .= "You requested locking/unlocking for $locktotal manually enrolled students.<br /><br />\n"; |
$response .= "You requested locking/unlocking for $locktotal manually enrolled students.<br /><br />\n"; |
$classlist = &Apache::loncoursedata::get_classlist($cid,$dom,$crs); |
$classlist = &Apache::loncoursedata::get_classlist($dom,$crs); |
if ($lockok > 0) { |
if ($lockok > 0) { |
$response .= "The following $lockok changes were successful:<br />"; |
$response .= "The following $lockok changes were successful:<br />"; |
$response .= &enrolltype_result(\%lockchg,$classlist,$endidx,$startidx,$ididx,$secidx,$typeidx,$lockedidx); |
$response .= &enrolltype_result(\%lockchg,$classlist,$endidx,$startidx,$ididx,$secidx,$typeidx,$lockedidx); |
Line 2496 sub setup_date_selectors {
|
Line 2405 sub setup_date_selectors {
|
if (! defined($starttime)) { |
if (! defined($starttime)) { |
$starttime = time; |
$starttime = time; |
if ($action eq 'setdates') { |
if ($action eq 'setdates') { |
if (exists($ENV{'course.'.$ENV{'request.course.id'}. |
if (exists($env{'course.'.$env{'request.course.id'}. |
'.default_enrollment_start_date'})) { |
'.default_enrollment_start_date'})) { |
$starttime = $ENV{'course.'.$ENV{'request.course.id'}. |
$starttime = $env{'course.'.$env{'request.course.id'}. |
'.default_enrollment_start_date'}; |
'.default_enrollment_start_date'}; |
} |
} |
} |
} |
Line 2506 sub setup_date_selectors {
|
Line 2415 sub setup_date_selectors {
|
if (! defined($endtime)) { |
if (! defined($endtime)) { |
$endtime = time+(6*30*24*60*60); # 6 months from now, approx |
$endtime = time+(6*30*24*60*60); # 6 months from now, approx |
if ($action eq 'setdates') { |
if ($action eq 'setdates') { |
if (exists($ENV{'course.'.$ENV{'request.course.id'}. |
if (exists($env{'course.'.$env{'request.course.id'}. |
'.default_enrollment_end_date'})) { |
'.default_enrollment_end_date'})) { |
$endtime = $ENV{'course.'.$ENV{'request.course.id'}. |
$endtime = $env{'course.'.$env{'request.course.id'}. |
'.default_enrollment_end_date'}; |
'.default_enrollment_end_date'}; |
} |
} |
} |
} |
Line 2527 sub get_dates_from_form {
|
Line 2436 sub get_dates_from_form {
|
my $enddate; |
my $enddate; |
$startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate'); |
$startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate'); |
$enddate = &Apache::lonhtmlcommon::get_date_from_form('enddate'); |
$enddate = &Apache::lonhtmlcommon::get_date_from_form('enddate'); |
if ( exists ($ENV{'form.no_end_date'}) ) { |
if ( exists ($env{'form.no_end_date'}) ) { |
$enddate = 0; |
$enddate = 0; |
} |
} |
return ($startdate,$enddate); |
return ($startdate,$enddate); |
Line 2560 sub date_setting_table {
|
Line 2469 sub date_setting_table {
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
if ($r->header_only) { |
if ($r->header_only) { |
$r->content_type('text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
return OK; |
return OK; |
} |
} |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['action','state']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['action','state']); |
# Needs to be in a course |
# Needs to be in a course |
if (! (($ENV{'request.course.fn'}) && (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) { |
if (! (($env{'request.course.fn'}) && (&Apache::lonnet::allowed('cst',$env{'request.course.id'})))) { |
# Not in a course, or not allowed to modify parms |
# Not in a course, or not allowed to modify parms |
$ENV{'user.error.msg'}="/adm/populate:cst:0:0:Cannot drop or add students"; |
$env{'user.error.msg'}="/adm/populate:cst:0:0:Cannot drop or add students"; |
return HTTP_NOT_ACCEPTABLE; |
return HTTP_NOT_ACCEPTABLE; |
} |
} |
# Start page |
# Start page |
$r->content_type('text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
|
|
my @tasks = ("information","chgsettings","setdates","setaccess","notify","crosslist","sections","photos","updatenow","viewclass"); |
my @tasks = ("information","chgsettings","setdates","setaccess","notify","crosslist","sections","photos","updatenow","viewclass"); |
Line 2607 sub handler {
|
Line 2516 sub handler {
|
); |
); |
|
|
my $realm = ''; |
my $realm = ''; |
if ( exists($ENV{'request.course.id'}) ) { |
if ( exists($env{'request.course.id'}) ) { |
$realm= $ENV{'course.'.$ENV{'request.course.id'}.'.description'}; |
$realm= $env{'course.'.$env{'request.course.id'}.'.description'}; |
} |
} |
unless ($realm) { $realm=' '; } |
unless ($realm) { $realm=' '; } |
my $dom = $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}; |
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $crs = $ENV{'course.'.$ENV{'request.course.id'}.'.num'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
|
# |
# |
# Main switch on form.action and form.state, as appropriate |
# Main switch on form.action and form.state, as appropriate |
# |
# |
|
|
my $action = "information"; |
my $action = "information"; |
if ( exists($ENV{'form.action'}) ) { |
if ( exists($env{'form.action'}) ) { |
$action = $ENV{'form.action'}; |
$action = $env{'form.action'}; |
} |
} |
my $state = "choose"; |
my $state = "choose"; |
|
|
if ( exists($ENV{'form.state'}) ) { |
if ( exists($env{'form.state'}) ) { |
$state = $ENV{'form.state'}; |
$state = $env{'form.state'}; |
} |
} |
|
|
if ($action eq "information") { |
if ($action eq "information") { |
Line 2635 sub handler {
|
Line 2544 sub handler {
|
$r->print(&choose_header($action)); |
$r->print(&choose_header($action)); |
} else { |
} else { |
if ($action eq "crosslist") { |
if ($action eq "crosslist") { |
if ( exists($ENV{'form.numcross'}) ) { |
if ( exists($env{'form.numcross'}) ) { |
if ( $ENV{'form.numcross'} > 0 ) { |
if ( $env{'form.numcross'} > 0 ) { |
$r->print(&choose_header($action)); |
$r->print(&choose_header($action)); |
} else { |
} else { |
$r->print(&header()); |
$r->print(&header()); |
Line 2645 sub handler {
|
Line 2554 sub handler {
|
$r->print(&header()); |
$r->print(&header()); |
} |
} |
} elsif ($action eq "sections") { |
} elsif ($action eq "sections") { |
if ( exists($ENV{'form.numsec'}) ) { |
if ( exists($env{'form.numsec'}) ) { |
if ( $ENV{'form.numsec'} > 0 ) { |
if ( $env{'form.numsec'} > 0 ) { |
$r->print(&choose_header($action)); |
$r->print(&choose_header($action)); |
} else { |
} else { |
$r->print(&header()); |
$r->print(&header()); |