version 1.133, 2005/11/08 22:08:12
|
version 1.139, 2005/12/19 21:39:33
|
Line 51 sub redirect_user {
|
Line 51 sub redirect_user {
|
my $navwindow; |
my $navwindow; |
if ($launch_nav eq 'on') { |
if ($launch_nav eq 'on') { |
$navwindow.=&Apache::lonnavmaps::launch_win('now',undef,undef, |
$navwindow.=&Apache::lonnavmaps::launch_win('now',undef,undef, |
($url eq '/adm/whatsnew')); |
($url =~ m-/^adm/whatsnew-)); |
} else { |
} else { |
$navwindow.=&Apache::lonnavmaps::close(); |
$navwindow.=&Apache::lonnavmaps::close(); |
} |
} |
Line 89 sub handler {
|
Line 89 sub handler {
|
|
|
# ================================================================== Roles Init |
# ================================================================== Roles Init |
if ($env{'form.selectrole'}) { |
if ($env{'form.selectrole'}) { |
|
if ($env{'form.newrole'}) { |
|
$env{'form.'.$env{'form.newrole'}}=1; |
|
} |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
my %temp=('logout_'.$env{'request.course.id'} => time); |
my %temp=('logout_'.$env{'request.course.id'} => time); |
&Apache::lonnet::put('email_status',\%temp); |
&Apache::lonnet::put('email_status',\%temp); |
Line 123 sub handler {
|
Line 126 sub handler {
|
if ($tstatus eq 'is') { |
if ($tstatus eq 'is') { |
$where=~s/^\///; |
$where=~s/^\///; |
my ($cdom,$cnum,$csec)=split(/\//,$where); |
my ($cdom,$cnum,$csec)=split(/\//,$where); |
|
# check for course groups |
|
my %coursegroups = &Apache::lonnet::get_active_groups( |
|
$env{'user.domain'},$env{'user.name'},$cdom, $cnum); |
|
my $cgrps = join(':',keys(%coursegroups)); |
|
|
# store role if recent_role list being kept |
# store role if recent_role list being kept |
if ($env{'environment.recentroles'}) { |
if ($env{'environment.recentroles'}) { |
&Apache::lonhtmlcommon::store_recent('roles', |
&Apache::lonhtmlcommon::store_recent('roles', |
Line 224 ENDENTERKEY
|
Line 232 ENDENTERKEY
|
&Apache::lonnet::appenv( |
&Apache::lonnet::appenv( |
'request.role' => $trolecode, |
'request.role' => $trolecode, |
'request.role.domain' => $cdom, |
'request.role.domain' => $cdom, |
'request.course.sec' => $csec); |
'request.course.sec' => $csec, |
|
'request.course.groups' => $cgrps); |
my $tadv=0; |
my $tadv=0; |
my $msg=&mt('Entering course ...'); |
my $msg=&mt('Entering course ...'); |
|
|
Line 262 ENDENTERKEY
|
Line 271 ENDENTERKEY
|
'.course.helper.not.run'}) { |
'.course.helper.not.run'}) { |
$furl = "/adm/helper/course.initialization.helper"; |
$furl = "/adm/helper/course.initialization.helper"; |
# Send the user to the course they selected |
# Send the user to the course they selected |
} elsif (($env{'request.course.fn'}) |
} elsif ($env{'request.course.fn'}) { |
&& ($role eq 'cc' && ($env{'environment.course_init_display'} ne 'firstres'))) { |
if ($env{'user.adv'}) { |
$msg = &mt('Entering course ....'); |
my $startpage = &courseloadpage($courseid); |
&redirect_user($r,&mt('New in course'), |
unless ($startpage eq 'firstres') { |
'/adm/whatsnew',$msg, |
$msg = &mt('Entering course ....'); |
$env{'environment.remotenavmap'}); |
&redirect_user($r,&mt('New in course'), |
return OK; |
'/adm/whatsnew?refpage=start',$msg, |
|
$env{'environment.remotenavmap'}); |
|
return OK; |
|
} |
|
} |
} |
} |
&redirect_user($r,&mt('Entering Course'), |
&redirect_user($r,&mt('Entering Course'), |
$furl,$msg, |
$furl,$msg, |
Line 312 ENDENTERKEY
|
Line 325 ENDENTERKEY
|
|
|
my $swinfo=&Apache::lonmenu::rawconfig(); |
my $swinfo=&Apache::lonmenu::rawconfig(); |
my $bodytag=&Apache::loncommon::bodytag('User Roles'); |
my $bodytag=&Apache::loncommon::bodytag('User Roles'); |
|
my $standby=&mt('Role selected. Please stand by.'); |
|
$standby=~s/\n/\\n/g; |
my $helptag='<table><tr><td>'.&Apache::loncommon::help_open_menu('','General Intro','General_Intro','User Roles',1,undef,undef,undef,undef,,&mt("Click here for help")).'</td></td></tr></table>'; |
my $helptag='<table><tr><td>'.&Apache::loncommon::help_open_menu('','General Intro','General_Intro','User Roles',1,undef,undef,undef,undef,,&mt("Click here for help")).'</td></td></tr></table>'; |
$r->print(<<ENDHEADER); |
$r->print(<<ENDHEADER); |
<html> |
<html> |
Line 323 $helptag<br />
|
Line 338 $helptag<br />
|
<script> |
<script> |
$swinfo |
$swinfo |
window.focus(); |
window.focus(); |
|
|
|
active=true; |
|
|
|
function enterrole (thisform,rolecode,buttonname) { |
|
if (active) { |
|
active=false; |
|
document.title='$standby'; |
|
window.status='$standby'; |
|
thisform.newrole.value=rolecode; |
|
thisform.submit(); |
|
} else { |
|
alert('$standby'); |
|
} |
|
} |
</script> |
</script> |
ENDHEADER |
ENDHEADER |
|
|
Line 396 ENDHEADER
|
Line 425 ENDHEADER
|
$r->print('<form method="post" name="rolechoice" action="'.(($fn)?$fn:$r->uri).'">'); |
$r->print('<form method="post" name="rolechoice" action="'.(($fn)?$fn:$r->uri).'">'); |
$r->print('<input type="hidden" name="orgurl" value="'.$fn.'" />'); |
$r->print('<input type="hidden" name="orgurl" value="'.$fn.'" />'); |
$r->print('<input type="hidden" name="selectrole" value="1" />'); |
$r->print('<input type="hidden" name="selectrole" value="1" />'); |
|
$r->print('<input type="hidden" name="newrole" value="" />'); |
} |
} |
if ($env{'user.adv'}) { |
if ($env{'user.adv'}) { |
$r->print( |
$r->print( |
Line 416 ENDHEADER
|
Line 446 ENDHEADER
|
if ($envkey=~/^user\.role\./) { |
if ($envkey=~/^user\.role\./) { |
my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont); |
my ($role,$where,$trolecode,$tstart,$tend,$tremark,$tstatus,$tpstart,$tpend,$tfont); |
&role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); |
&role_status($envkey,$then,$now,\$role,\$where,\$trolecode,\$tstatus,\$tstart,\$tend); |
next if (!defined($role) || $role eq ''); |
next if (!defined($role) || $role eq '' || $role =~ /^gr/); |
$tremark=''; |
$tremark=''; |
$tpstart=' '; |
$tpstart=' '; |
$tpend=' '; |
$tpend=' '; |
Line 610 ENDHEADER
|
Line 640 ENDHEADER
|
if (defined($roletext{'user.role.'.$_})) { |
if (defined($roletext{'user.role.'.$_})) { |
$output.=$roletext{'user.role.'.$_}; |
$output.=$roletext{'user.role.'.$_}; |
if ($_ =~ m-dc\./(\w+)/- && $dcroles{$1}) { |
if ($_ =~ m-dc\./(\w+)/- && $dcroles{$1}) { |
$output .= &allcourses_row($1); |
$output .= &allcourses_row($1,'recent'); |
} |
} |
} elsif ($numdc > 0) { |
} elsif ($numdc > 0) { |
unless ($_ =~/^error\:/) { |
unless ($_ =~/^error\:/) { |
Line 638 ENDHEADER
|
Line 668 ENDHEADER
|
$output.=$roletext{$sortrole{$which}}; |
$output.=$roletext{$sortrole{$which}}; |
if ($sortrole{$which} =~ m-dc\./(\w+)/-) { |
if ($sortrole{$which} =~ m-dc\./(\w+)/-) { |
if ($dcroles{$1}) { |
if ($dcroles{$1}) { |
$output .= &allcourses_row($1); |
$output .= &allcourses_row($1,''); |
} |
} |
} |
} |
} |
} |
Line 662 ENDHEADER
|
Line 692 ENDHEADER
|
} |
} |
unless ($nochoose) { |
unless ($nochoose) { |
if ($env{'request.role'} ne 'cm') { |
if ($env{'request.role'} ne 'cm') { |
$r->print('<td><input type=submit value="'. |
$r->print('<td><input type="submit" value="'. |
&mt('Select').'" name="cm"></td>'); |
&mt('Select').'" name="cm"></td>'); |
} else { |
} else { |
$r->print('<td> </td>'); |
$r->print('<td> </td>'); |
Line 773 sub build_roletext {
|
Line 803 sub build_roletext {
|
: ' rowspan="2" '; |
: ' rowspan="2" '; |
|
|
unless ($nochoose) { |
unless ($nochoose) { |
|
my $buttonname=$trolecode; |
|
$buttonname=~s/\W//g; |
if (!$button) { |
if (!$button) { |
if ($switchserver) { |
if ($switchserver) { |
$roletext.='<td'.$rowspan.'><a href="/adm/switchserver?'. |
$roletext.='<td'.$rowspan.'><a href="/adm/switchserver?'. |
Line 781 sub build_roletext {
|
Line 813 sub build_roletext {
|
$roletext.=('<td> </td>'); |
$roletext.=('<td> </td>'); |
} |
} |
} elsif ($tstatus eq 'is') { |
} elsif ($tstatus eq 'is') { |
$roletext.=('<td'.$rowspan.'><input type=submit value="'. |
$roletext.='<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'. |
&mt('Select').'" name="'. |
&mt('Select').'" onClick="javascript:enterrole(this.form,\''. |
$trolecode.'"></td>'); |
$trolecode."','".$buttonname.'\');"></td>'; |
} elsif ($tryagain) { |
} elsif ($tryagain) { |
$roletext.= |
$roletext.= |
'<td'.$rowspan.'><input type=submit value="'. |
'<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'. |
&mt('Try Selecting Again').'" name="'.$trolecode.'"></td>'; |
&mt('Try Selecting Again').'" onClick="javascript:enterrole(this.form,\''. |
|
$trolecode."','".$buttonname.'\');"></td>'; |
} elsif ($advanced) { |
} elsif ($advanced) { |
$roletext.= |
$roletext.= |
'<td'.$rowspan.'><input type=submit value="'. |
'<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'. |
&mt('Re-Initialize').'" name="'.$trolecode.'"></td>'; |
&mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''. |
|
$trolecode."','".$buttonname.'\');"></td>'; |
} else { |
} else { |
$roletext.='<td'.$rowspan.'> </td>'; |
$roletext.='<td'.$rowspan.'> </td>'; |
} |
} |
Line 846 sub check_fordc {
|
Line 880 sub check_fordc {
|
} |
} |
|
|
sub courselink { |
sub courselink { |
my ($dcdom) = @_; |
my ($dcdom,$rowtype) = @_; |
my $courseform=&Apache::loncommon::selectcourse_link |
my $courseform=&Apache::loncommon::selectcourse_link |
('rolechoice','dccourse_'.$dcdom,'dcdomain_'.$dcdom,'coursedesc_'.$dcdom,$dcdom); |
('rolechoice','dccourse'.$rowtype.'_'.$dcdom,'dcdomain'.$rowtype.'_'.$dcdom,'coursedesc'.$rowtype.'_'.$dcdom,$dcdom); |
my $hiddenitems = '<input type="hidden" name="dcdomain_'.$dcdom.'" value="'.$dcdom.'" />'. |
my $hiddenitems = '<input type="hidden" name="dcdomain'.$rowtype.'_'.$dcdom.'" value="'.$dcdom.'" />'. |
'<input type="hidden" name="origdom_'.$dcdom.'" value="'.$dcdom.'" />'. |
'<input type="hidden" name="origdom'.$rowtype.'_'.$dcdom.'" value="'.$dcdom.'" />'. |
'<input type="hidden" name="dccourse_'.$dcdom.'" value="" />'. |
'<input type="hidden" name="dccourse'.$rowtype.'_'.$dcdom.'" value="" />'. |
'<input type="hidden" name="coursedesc_'.$dcdom.'" value="" />'; |
'<input type="hidden" name="coursedesc'.$rowtype.'_'.$dcdom.'" value="" />'; |
return $courseform.$hiddenitems; |
return $courseform.$hiddenitems; |
} |
} |
|
|
Line 893 END
|
Line 927 END
|
} |
} |
|
|
sub processpick { |
sub processpick { |
my $dcdom = shift; |
|
my $process_pick = <<"END"; |
my $process_pick = <<"END"; |
<script> |
<script> |
function process_pick(dom) { |
function process_pick(dom) { |
var numbutton = getIndex(dom) |
var pickedCourse=opener.document.rolechoice.$env{'form.cnumelement'}.value; |
var pickedCourse = opener.document.rolechoice.dccourse_$dcdom.value |
var pickedDomain=opener.document.rolechoice.$env{'form.cdomelement'}.value; |
var pickedDomain = opener.document.rolechoice.dcdomain_$dcdom.value |
var okDomain = 0; |
if (opener.document.rolechoice.dcdomain_$dcdom.value == opener.document.rolechoice.origdom_$dcdom.value) { |
|
|
if (pickedDomain == dom) { |
if (pickedCourse != '') { |
if (pickedCourse != '') { |
if (numbutton != -1) { |
var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse |
var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse |
opener.document.title='Role selected. Please stand by.'; |
opener.document.rolechoice.elements[numbutton].name = courseTarget |
opener.status='Role selected. Please stand by.'; |
opener.document.rolechoice.submit() |
opener.document.rolechoice.newrole.value=courseTarget |
} |
opener.document.rolechoice.submit() |
} |
} |
|
} else { |
|
alert("You may only use this screen to select courses in the current domain: "+dom+"\\nPlease return to the roles page window and click the 'Select Course' link for domain: "+pickedDomain+",\\n if you are a Domain Coordinator in that domain, and wish to become a Course Coordinator in a course in the domain"); |
} |
} |
} |
} |
|
|
function getIndex(dom) { |
|
var callername = 'ccpick_'+dom |
|
for (var i=0;i<opener.document.rolechoice.elements.length;i++) { |
|
var elemname = opener.document.rolechoice.elements[i].name |
|
if (elemname == callername) { |
|
return i; |
|
} |
|
} |
|
return -1; |
|
} |
|
</script> |
</script> |
END |
END |
return $process_pick; |
return $process_pick; |
Line 957 sub display_cc_role {
|
Line 983 sub display_cc_role {
|
} |
} |
|
|
sub allcourses_row { |
sub allcourses_row { |
my $dcdom = shift; |
my ($dcdom,$rowtype) = @_; |
my $ccrole = Apache::lonnet::plaintext('cc'); |
my $ccrole = Apache::lonnet::plaintext('cc'); |
my $selectlink = &courselink($dcdom); |
my $selectlink = &courselink($dcdom,$rowtype); |
my $output = '<tr bgcolor="#77FF77">'. |
my $output = '<tr bgcolor="#77FF77">'. |
'<input type="hidden" name="ccpick_'.$dcdom.'" />'. |
|
'<input type="hidden" name="pick_'.$dcdom.'" value="1" />'. |
|
'<td colspan="5">'. |
'<td colspan="5">'. |
'<font color="#002200">'.$ccrole.'</font>'. |
'<font color="#002200">'.$ccrole.'</font>'. |
' <b>'.$selectlink.'</b>'. |
' <b>'.$selectlink.'</b>'. |
Line 1005 sub set_privileges {
|
Line 1029 sub set_privileges {
|
&Apache::lonnet::appenv('request.role.adv' => $tadv); |
&Apache::lonnet::appenv('request.role.adv' => $tadv); |
} |
} |
|
|
|
sub courseloadpage { |
|
my ($courseid) = @_; |
|
my $startpage; |
|
my %entry_settings = |
|
&Apache::lonnet::dump('nohist_whatsnew',$env{'user.domain'}, |
|
$env{'user.name'},$courseid.':courseinit'); |
|
my ($tmp) = %entry_settings; |
|
unless ($tmp =~ /^Error/) { |
|
$startpage = $entry_settings{$courseid.':courseinit'}; |
|
} |
|
if ($startpage eq '') { |
|
if (exists($env{'environment.course_init_display'})) { |
|
$startpage = $env{'environment.course_init_display'}; |
|
} |
|
} |
|
return $startpage; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |
|
|