version 1.108, 2004/11/12 15:33:32
|
version 1.109, 2004/11/12 23:29:55
|
Line 105 sub handler {
|
Line 105 sub handler {
|
foreach my $envkey (keys %ENV) { |
foreach my $envkey (keys %ENV) { |
if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) { |
if ($envkey =~ m-^form\.cc\./(\w+)/(\w+)$-) { |
if ($dcroles{$1}) { |
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); |
&set_privileges($1,$2); |
} |
} |
} |
} |
Line 761 sub role_status {
|
Line 768 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 { |
sub check_fordc { |
my ($dcroles,$then) = @_; |
my ($dcroles,$then) = @_; |
my $numdc = 0; |
my $numdc = 0; |
Line 796 sub check_fordc {
|
Line 791 sub check_fordc {
|
|
|
sub courselink { |
sub courselink { |
my ($dcdom) = @_; |
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 = '<input type="hidden" name="dcdomain_'.$dcdom.'" value="'.$dcdom.'" />'. |
|
'<input type="hidden" name="origdom_'.$dcdom.'" value="'.$dcdom.'" />'. |
|
'<input type="hidden" name="dccourse_'.$dcdom.'" value="" />'. |
|
'<input type="hidden" name="coursedesc_'.$dcdom.'" value="" />'; |
|
return $cb_jscript.$verify_script.$courseform.$hiddenitems; |
|
} |
|
|
|
sub coursepick_jscript { |
|
my ($dcdom) = @_; |
my $verify_script = <<"END"; |
my $verify_script = <<"END"; |
<script> |
<script> |
function verifyCoursePick(caller) { |
function verifyCoursePick(caller) { |
var numbutton = getIndex(caller) |
var numbutton = getIndex(caller) |
var pickedCourse = document.rolechoice.dccourse.value |
var pickedCourse = document.rolechoice.dccourse_$dcdom.value |
var pickedDomain = document.rolechoice.dcdomain.value |
var pickedDomain = document.rolechoice.dcdomain_$dcdom.value |
if (document.rolechoice.dcdomain.value == document.rolechoice.origdom.value) { |
if (document.rolechoice.dcdomain_$dcdom.value == document.rolechoice.origdom_$dcdom.value) { |
if (pickedCourse != '') { |
if (pickedCourse != '') { |
if (numbutton != -1) { |
if (numbutton != -1) { |
var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse |
var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse |
Line 819 function verifyCoursePick(caller) {
|
Line 826 function verifyCoursePick(caller) {
|
alert("You can only use this screen to select courses in the current domain") |
alert("You can only use this screen to select courses in the current domain") |
} |
} |
} |
} |
|
function getIndex(caller) { |
function getIndex(what) { |
|
for (var i=0;i<document.rolechoice.elements.length;i++) { |
for (var i=0;i<document.rolechoice.elements.length;i++) { |
if (what == document.rolechoice.elements[i]) { |
if (document.rolechoice.elements[i] == caller) { |
return i; |
return i; |
} |
} |
} |
} |
Line 830 function getIndex(what) {
|
Line 836 function getIndex(what) {
|
} |
} |
</script> |
</script> |
END |
END |
my $courseform=&Apache::loncommon::selectcourse_link |
return $verify_script; |
('rolechoice','dccourse','dcdomain','coursedesc'); |
|
my $hiddenitems = '<input type="hidden" name="dcdomain" value="'.$dcdom.'" />'. |
|
'<input type="hidden" name="origdom" value="'.$dcdom.'" />'. |
|
'<input type="hidden" name="dccourse" value="" />'. |
|
'<input type="hidden" name="coursedesc" value="" />'; |
|
return $cb_jscript.$verify_script.$courseform.$hiddenitems; |
|
} |
} |
|
|
|
sub processpick { |
|
my $dcdom = shift; |
|
my $process_pick = <<"END"; |
|
<script> |
|
function process_pick(dom) { |
|
var numbutton = getIndex(dom) |
|
var pickedCourse = opener.document.rolechoice.dccourse_$dcdom.value |
|
var pickedDomain = opener.document.rolechoice.dcdomain_$dcdom.value |
|
if (opener.document.rolechoice.dcdomain_$dcdom.value == opener.document.rolechoice.origdom_$dcdom.value) { |
|
if (pickedCourse != '') { |
|
if (numbutton != -1) { |
|
var courseTarget = "cc./"+pickedDomain+"/"+pickedCourse |
|
opener.document.rolechoice.elements[numbutton+1].name = courseTarget |
|
opener.document.rolechoice.submit() |
|
} |
|
} |
|
} |
|
} |
|
|
|
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> |
|
END |
|
return $process_pick; |
|
} |
|
|
sub select_recent_courses { |
sub select_recent_courses { |
my ($r,$roletext)=@_; |
my ($r,$roletext)=@_; |
Line 852 sub select_recent_courses {
|
Line 885 sub select_recent_courses {
|
'</td></tr>'."\n"; |
'</td></tr>'."\n"; |
foreach my $courseid (sort keys %recent) { |
foreach my $courseid (sort keys %recent) { |
unless ($courseid =~/^error\:/) { |
unless ($courseid =~/^error\:/) { |
|
print STDERR "$courseid\n"; |
my ($dom,$crs) = split/_/,$courseid; |
my ($dom,$crs) = split/_/,$courseid; |
$numrecent ++; |
$numrecent ++; |
my $crskey = 'user.role.cc./'.$dom.'/'.$crs; |
my $crskey = 'user.role.cc./'.$dom.'/'.$crs; |
Line 864 sub select_recent_courses {
|
Line 898 sub select_recent_courses {
|
} |
} |
|
|
sub allcourses_row { |
sub allcourses_row { |
my ($dcdom) = @_; |
my $dcdom = shift; |
my $ccrole = Apache::lonnet::plaintext('cc'); |
my $ccrole = Apache::lonnet::plaintext('cc'); |
my $selectlink = &courselink($dcdom); |
my $selectlink = &courselink($dcdom); |
my $output = '<tr bgcolor="#77FF77">'. |
my $output = '<tr bgcolor="#77FF77">'. |
'<td><input type="button" value="'. |
'<td><input type="button" value="'. |
&mt('Select').'" name="ccpick_'.$dcdom.'/" '. |
&mt('Select').'" name="ccpick_'.$dcdom.'"'. |
'onClick="verifyCoursePick(this)">'. |
'onClick="verifyCoursePick(this)">'. |
'<input type="hidden" name="pick_'.$dcdom.'" value="1"></td>'. |
'<input type="hidden" name="pick_'.$dcdom.'" value="1"></td>'. |
'<td><font color="#002200">'. |
'<td><font color="#002200">'. |