--- loncom/auth/lonroles.pm 2004/11/12 15:33:32 1.108 +++ loncom/auth/lonroles.pm 2004/11/12 23:29:55 1.109 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # User Roles Screen # -# $Id: lonroles.pm,v 1.108 2004/11/12 15:33:32 raeburn Exp $ +# $Id: lonroles.pm,v 1.109 2004/11/12 23:29:55 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -105,7 +105,14 @@ sub handler { foreach my $envkey (keys %ENV) { if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) { if ($dcroles{$1}) { - unless ($ENV{'user.role.cc./'.$1.'/'.$2}) { + my $cckey = 'user.role.cc./'.$1.'/'.$2; + if ($ENV{$cckey}) { + my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont); + &role_status($cckey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); + unless (($tstatus eq 'is') || ($tstatus eq 'will_not')) { + &set_privileges($1,$2); + } + } else { &set_privileges($1,$2); } } @@ -761,18 +768,6 @@ sub role_status { } } -sub dc_script { - my $response = (<<"END"); -function setDCchoice(caller) { - var dcname = "dc./"+caller+"/" - document.rolechoice.dcselected.value = caller - document.rolechoice.elements[3].name = dcname - document.rolechoice.submit() -} -END - return $response; -} - sub check_fordc { my ($dcroles,$then) = @_; my $numdc = 0; @@ -796,14 +791,26 @@ sub check_fordc { sub courselink { my ($dcdom) = @_; - my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,'dom'); + my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($dcdom,$dcdom); + my $verify_script = &coursepick_jscript($dcdom); + my $courseform=&Apache::loncommon::selectcourse_link + ('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom); + my $hiddenitems = ''. + ''. + ''. + ''; + return $cb_jscript.$verify_script.$courseform.$hiddenitems; +} + +sub coursepick_jscript { + my ($dcdom) = @_; my $verify_script = <<"END"; END - my $courseform=&Apache::loncommon::selectcourse_link - ('rolechoice','dccourse','dcdomain','coursedesc'); - my $hiddenitems = ''. - ''. - ''. - ''; - return $cb_jscript.$verify_script.$courseform.$hiddenitems; + return $verify_script; } +sub processpick { + my $dcdom = shift; + my $process_pick = <<"END"; + +END + return $process_pick; +} sub select_recent_courses { my ($r,$roletext)=@_; @@ -852,6 +885,7 @@ sub select_recent_courses { ''."\n"; foreach my $courseid (sort keys %recent) { unless ($courseid =~/^error\:/) { + print STDERR "$courseid\n"; my ($dom,$crs) = split/_/,$courseid; $numrecent ++; my $crskey = 'user.role.cc./'.$dom.'/'.$crs; @@ -864,12 +898,12 @@ sub select_recent_courses { } sub allcourses_row { - my ($dcdom) = @_; + my $dcdom = shift; my $ccrole = Apache::lonnet::plaintext('cc'); my $selectlink = &courselink($dcdom); my $output = ''. ''. ''. ''.