version 1.69, 2005/10/12 14:45:44
|
version 1.78, 2005/11/15 21:41:10
|
Line 68 sub proctor_check_auth {
|
Line 68 sub proctor_check_auth {
|
foreach my $possible (@allowed) { |
foreach my $possible (@allowed) { |
my ($puser,$pdom)=(split('@',$possible)); |
my ($puser,$pdom)=(split('@',$possible)); |
if ($puser eq $user && $pdom eq $domain) { |
if ($puser eq $user && $pdom eq $domain) { |
my $authhost=&Apache::lonnet::authenticate($puser,$env{'form.proctorpassword'},$pdom); |
my $authenticated=0; |
if ($authhost ne 'no_host') { |
if ( $slot->{'secret'} =~ /\S/ && |
|
$env{'form.proctorpassword'} eq $slot->{'secret'} ) { |
|
$authenticated=1; |
|
} else { |
|
|
|
my $authhost=&Apache::lonnet::authenticate($puser,$env{'form.proctorpassword'},$pdom); |
|
if ($authhost ne 'no_host') { |
|
$authenticated=1; |
|
} |
|
} |
|
if ($authenticated) { |
my $version= |
my $version= |
$Apache::lonhomework::results{'resource.version'}= |
$Apache::lonhomework::results{'resource.version'}= |
++$Apache::lonhomework::history{'resource.version'}; |
++$Apache::lonhomework::history{'resource.version'}; |
Line 317 sub submission_time_stamp {
|
Line 327 sub submission_time_stamp {
|
my $slot_name=$Apache::lonhomework::history{'resource.'.$version.'.checkedin.slot'}; |
my $slot_name=$Apache::lonhomework::history{'resource.'.$version.'.checkedin.slot'}; |
my %slot=&Apache::lonnet::get_slot($slot_name); |
my %slot=&Apache::lonnet::get_slot($slot_name); |
my $diff = $slot{'endtime'} - $submissiontime; |
my $diff = $slot{'endtime'} - $submissiontime; |
my ($color,$when)=('red','after'); |
my ($color,$when)=('#FF6666','after'); |
if ($diff > 0) { ($color,$when)=('green','before'); } |
if ($diff > 0) { ($color,$when)=('#336600','before'); } |
my $info; |
my $info; |
if ($diff%60) { $info=($diff%60).' seconds'; } |
if ($diff%60) { $info=($diff%60).' seconds'; } |
$diff=int($diff/60); |
$diff=int($diff/60); |
Line 335 sub submission_time_stamp {
|
Line 345 sub submission_time_stamp {
|
return $result; |
return $result; |
} |
} |
|
|
|
sub webgrade_standard_info { |
|
my ($version)=&get_version(); |
|
my (undef,undef,$udom,$uname) = &Apache::lonxml::whichuser(); |
|
my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/'; |
|
my $file_list="<ul>\n"; |
|
foreach my $partial_file (split(',',$Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"})) { |
|
my $file=$file_url.$partial_file; |
|
$file=~s|/+|/|g; |
|
&Apache::lonnet::allowuploaded('/adm/bridgetask',$file); |
|
$file_list.='<li><nobr><a href="'.$file.'?rawmode=1" target="lonGRDs"><img src="'. |
|
&Apache::loncommon::icon($file).'" border=0"> '.$file. |
|
'</a></nobr></li>'."\n"; |
|
} |
|
$file_list.="</ul>\n"; |
|
|
|
my %lt=&Apache::lonlocal::texthash('done' => 'Done', |
|
'stop' => 'Stop', |
|
); |
|
|
|
my $result=<<INFO; |
|
<div class="handininfo"> |
|
<input type="submit" name="next" value="$lt{'done'}" /> |
|
<input type="submit" name="stop" value="$lt{'stop'}" /> |
|
$file_list |
|
</div> |
|
INFO |
|
return $result; |
|
} |
|
|
sub start_Task { |
sub start_Task { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
|
|
my ($status,$accessmsg,$slot); |
my ($status,$accessmsg,$slot); |
if ($target ne 'webgrade') { |
if ($target ne 'webgrade') { |
|
&Apache::structuretags::init_problem_globals('Task'); |
&Apache::structuretags::initialize_storage(); |
&Apache::structuretags::initialize_storage(); |
&Apache::lonhomework::showhash(%Apache::lonhomework::history); |
&Apache::lonhomework::showhash(%Apache::lonhomework::history); |
|
if ($env{'request.state'} eq 'construct') { |
|
&Apache::structuretags::setup_rndseed($safeeval); |
|
} |
} |
} |
|
|
$Apache::lonhomework::parsing_a_task=1; |
$Apache::lonhomework::parsing_a_task=1; |
Line 349 sub start_Task {
|
Line 392 sub start_Task {
|
my ($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
my ($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
&Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
&Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
|
|
if ($target eq 'web') { |
if ($target eq 'web' && $env{'request.state'} ne 'construct') { |
if ($Apache::lonhomework::modifygrades) { |
if ($Apache::lonhomework::modifygrades) { |
$body_tag_start.='<form name="gradesubmission" method="POST" action="'; |
$body_tag_start.='<form name="gradesubmission" method="POST" action="'; |
my $uri=$env{'request.uri'}; |
my $uri=$env{'request.uri'}; |
Line 366 sub start_Task {
|
Line 409 sub start_Task {
|
} |
} |
} |
} |
} |
} |
|
if ($target eq 'web' && $env{'request.state'} eq 'construct') { |
|
$form_tag_start.=&Apache::structuretags::problem_web_to_edit_header($env{'form.rndseed'}); |
|
} |
if ($target eq 'web' || ($target eq 'grade' && !$env{'form.webgrade'}) || $target eq 'answer' || |
if ($target eq 'web' || ($target eq 'grade' && !$env{'form.webgrade'}) || $target eq 'answer' || |
$target eq 'tex') { |
$target eq 'tex') { |
my ($version,$previous)=&get_version(); |
my ($version,$previous)=&get_version(); |
Line 382 sub start_Task {
|
Line 428 sub start_Task {
|
my $bodytext=&Apache::lonxml::get_all_text("/task",$parser); |
my $bodytext=&Apache::lonxml::get_all_text("/task",$parser); |
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
$result.= $head_tag_start.'</head>'.$body_tag_start; |
$result.= $head_tag_start.'</head>'.$body_tag_start; |
|
if ($env{'request.state'} eq 'construct') { |
|
$result.=$form_tag_start; |
|
} |
my $msg; |
my $msg; |
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
Line 421 DONESCREEN
|
Line 470 DONESCREEN
|
} |
} |
} elsif ($target eq 'grade' && !$env{'form.webgrade'}) { |
} elsif ($target eq 'grade' && !$env{'form.webgrade'}) { |
if ($status eq 'NEEDS_CHECKIN') { |
if ($status eq 'NEEDS_CHECKIN') { |
&proctor_check_auth($slot_name,$slot); |
if(&proctor_check_auth($slot_name,$slot)) { |
|
my $result=&add_to_queue('gradingqueue', |
|
$Apache::inputtags::slot_name); |
|
&Apache::lonxml::debug("add_to_queue said $result"); |
|
} |
} |
} |
} |
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
Line 511 DONESCREEN
|
Line 564 DONESCREEN
|
value="'.$sec.'" />'; |
value="'.$sec.'" />'; |
} |
} |
} |
} |
|
if ($webgrade eq 'yes') { $result.=&webgrade_standard_info(); } |
} |
} |
|
} elsif ($target eq 'edit') { |
|
$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start. |
|
&Apache::structuretags::problem_edit_header(); |
|
$Apache::lonxml::warnings_error_header= |
|
&mt("Editor Errors - these errors might not effect the running of the problem, but they will likely cause problems with further use of the Edit mode. Please use the EditXML mode to fix these errors.")."<br />"; |
|
my $temp=&Apache::edit::insertlist($target,$token); |
|
$result.=$temp; |
} else { |
} else { |
# page_start returned a starting result, delete it if we don't need it |
# page_start returned a starting result, delete it if we don't need it |
$result = ''; |
$result = ''; |
Line 633 sub end_Task {
|
Line 694 sub end_Task {
|
<h2>'.&mt('Submit Portfolio Files for Grading').'</h2> |
<h2>'.&mt('Submit Portfolio Files for Grading').'</h2> |
<p>'.&mt('Indicate the files from your portfolio to be evaluated in grading this task.').'</p>'). |
<p>'.&mt('Indicate the files from your portfolio to be evaluated in grading this task.').'</p>'). |
"</table>"; |
"</table>"; |
|
} |
|
if (!$previous && $status ne 'SHOW_ANSWER' && |
|
&show_task($status,$previous)) { |
$result.=&Apache::inputtags::gradestatus('0'); |
$result.=&Apache::inputtags::gradestatus('0'); |
$result.='</form>'; |
$result.='</form>'; |
$result.=<<DONEBUTTON; |
$result.=<<DONEBUTTON; |
Line 641 sub end_Task {
|
Line 705 sub end_Task {
|
<input type="submit" value="Done" /> |
<input type="submit" value="Done" /> |
</form> |
</form> |
DONEBUTTON |
DONEBUTTON |
} |
} |
if (&show_task($status,$previous) && |
if (&show_task($status,$previous) && |
$Apache::lonhomework::history{"resource.$version.status"} =~ /^(pass|fail)$/) { |
$Apache::lonhomework::history{"resource.$version.status"} =~ /^(pass|fail)$/) { |
my $bt_status=$Apache::lonhomework::history{"resource.$version.status"}; |
my $bt_status=$Apache::lonhomework::history{"resource.$version.status"}; |
Line 708 DONEBUTTON
|
Line 772 DONEBUTTON
|
$Apache::lonhomework::results{"resource.$version.0.submission"}=''; |
$Apache::lonhomework::results{"resource.$version.0.submission"}=''; |
} else { |
} else { |
delete($Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}); |
delete($Apache::lonhomework::results{"resource.$version.0.bridgetask.portfiles"}); |
|
$award = ''; |
} |
} |
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
&Apache::structuretags::finalize_storage(); |
&Apache::structuretags::finalize_storage(); |
Line 824 DONEBUTTON
|
Line 889 DONEBUTTON
|
# &mt('Save Partial Grade and Continue Grading').'" /> '; |
# &mt('Save Partial Grade and Continue Grading').'" /> '; |
$result.='</form>'.&Apache::loncommon::endbodytag().'</html>'; |
$result.='</form>'.&Apache::loncommon::endbodytag().'</html>'; |
} elsif ($target eq 'meta') { |
} elsif ($target eq 'meta') { |
$result.='<parameter part="0" package="Task"></parameter>'."\n"; |
$result.=&Apache::response::meta_package_write('Task'); |
#$result.=&Apache::response::meta_part_order(); |
$result.=&Apache::response::meta_stores_write('solved','string', |
#$result.=&Apache::response::meta_response_order(); |
'Problem Status'); |
|
$result.=&Apache::response::meta_stores_write('tries','int_zeropos', |
|
'Number of Attempts'); |
|
$result.=&Apache::response::meta_stores_write('awarded','float', |
|
'Partial Credit Factor'); |
|
$result.=&Apache::response::meta_stores_write('status','string', |
|
'Bridge Task Status'); |
} |
} |
undef($Apache::lonhomework::parsing_a_task); |
undef($Apache::lonhomework::parsing_a_task); |
return $result; |
return $result; |
Line 933 sub add_to_queue {
|
Line 1004 sub add_to_queue {
|
my $cdom=$env{'course.'.$cid.'.domain'}; |
my $cdom=$env{'course.'.$cid.'.domain'}; |
my %data; |
my %data; |
$data{"$symb\0queue\0$uname\@$udom"}=[$slot_name]; |
$data{"$symb\0queue\0$uname\@$udom"}=[$slot_name]; |
return &Apache::lonnet::put($queue,\%data,$cdom,$cnum); |
return &Apache::lonnet::newput($queue,\%data,$cdom,$cnum); |
} |
} |
|
|
sub show_queue { |
sub show_queue { |
Line 1365 sub start_Dimension {
|
Line 1436 sub start_Dimension {
|
} |
} |
|
|
sub get_instance { |
sub get_instance { |
&Apache::response::pushrandomnumber(); |
my ($dim)=@_; |
my @order=&Math::Random::random_permutation(@{$dimension{'instances'}}); |
my $rand_alg=&Apache::lonnet::get_rand_alg(); |
my $num=@order; |
if (!$rand_alg || $rand_alg eq '32bit' || $rand_alg eq '64bit' || |
my $version=&get_version(); |
$rand_alg eq '64bit2' || $rand_alg eq '64bit3' || |
my $which=($version-1)%$num; |
$rand_alg eq '64bit4' ) { |
return $order[$which]; |
&Apache::response::pushrandomnumber(); |
|
my @order=&Math::Random::random_permutation(@{$dimension{'instances'}}); |
|
my $num=@order; |
|
my $version=&get_version(); |
|
my $which=($version-1)%$num; |
|
return $order[$which]; |
|
} else { |
|
my ($version,$previous) = &get_version(); |
|
my $instance = |
|
$Apache::lonhomework::history{"resource.$version.0.$dim.instance"}; |
|
if (defined($instance)) { return $instance; } |
|
|
|
&Apache::response::pushrandomnumber(); |
|
my @instances = @{$dimension{'instances'}}; |
|
# remove disabled instances |
|
for (my $i=0; $i < $#instances; $i++) { |
|
if ($dimension{$instances[$i].'.disabled'}) { |
|
splice(@instances,$i,1); |
|
$i--; |
|
} |
|
} |
|
@instances = &Math::Random::random_permutation(@instances); |
|
$instance = $instances[($version-1)%scalar(@instances)]; |
|
$Apache::lonhomework::results{"resource.$version.0.$dim.instance"} = |
|
$instance; |
|
&Apache::response::poprandomnumber(); |
|
return $instance; |
|
} |
} |
} |
|
|
{ |
{ |
Line 1379 sub get_instance {
|
Line 1477 sub get_instance {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result=&Apache::lonxml::endredirection(); |
my $result=&Apache::lonxml::endredirection(); |
my $dim=&get_id($parstack,$safeeval); |
my $dim=&get_id($parstack,$safeeval); |
my $instance=&get_instance(); |
my $instance=&get_instance($dim); |
my $version=&get_version(); |
my $version=&get_version(); |
if ($target eq 'web') { |
if ($target eq 'web') { |
@Apache::scripttag::parser_env = @_; |
@Apache::scripttag::parser_env = @_; |
$result.=&Apache::scripttag::xmlparse($dimension{'intro'}); |
$result.=&Apache::scripttag::xmlparse($dimension{'intro'}); |
@Apache::scripttag::parser_env = @_; |
my @instances = $instance; |
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.text'}); |
if (&Apache::response::showallfoils()) { |
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'pass' || |
@instances = @{$dimension{'instances'}}; |
$Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { |
} |
|
foreach my $instance (@instances) { |
my $dim_status=$Apache::lonhomework::history{"resource.$version.$dim.status"}; |
@Apache::scripttag::parser_env = @_; |
my $mandatory='Mandatory'; |
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.text'}); |
if ($Apache::bridgetask::dimensionmandatory{$dim} eq 'N') { |
if ($Apache::lonhomework::history{"resource.$version.status"} eq 'pass' || |
$mandatory='Optional'; |
$Apache::lonhomework::history{"resource.$version.status"} eq 'fail') { |
} |
|
my $dim_info="<div class='$dim_status'>\n"; |
my $dim_status=$Apache::lonhomework::history{"resource.$version.$dim.status"}; |
if ($dim_status eq 'pass') { |
my $mandatory='Mandatory'; |
$dim_info.='<h3>Question : you passed this '.$mandatory.' question</h3>'; |
if ($Apache::bridgetask::dimensionmandatory{$dim} eq 'N') { |
} |
|
if ($dim_status eq 'fail') { |
|
$dim_info.='<h3>Question : you did not pass this '.$mandatory.' question</h3>'; |
|
} |
|
my $man_count=0; |
|
my $man_passed=0; |
|
my $opt_count=0; |
|
my $opt_passed=0; |
|
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
|
if ($dimension{$instance.'.criteria.'.$id.'.mandatory'} |
|
eq 'N') { |
|
$opt_count++; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"} eq 'pass') { |
|
$opt_passed++; |
|
} |
|
} else { |
|
$man_count++; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"} eq 'pass') { |
|
$man_passed++; |
|
} |
|
} |
|
} |
|
if ($man_passed eq $man_count) { $man_passed='all'; } |
|
my $opt_req=$dimension{$instance.'.optionalrequired'}; |
|
if ($opt_req !~ /\S/) { $opt_req='0'; } |
|
$dim_info.="\n<p>".&mt('You passed [_1] of the [_2] mandatory components and [_3] of the [_4] optional components, of which you were required to pass [_5].',$man_passed,$man_count,$opt_passed,$opt_count,$opt_req)."</p>\n</div>"; |
|
|
|
my $internal_location=&internal_location($dim); |
|
$result=~s/\Q$internal_location\E/$dim_info/; |
|
|
|
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
|
my $status=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"}; |
|
my $comment=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}; |
|
my $mandatory=($dimension{$instance.'.criteria.'.$id.'.mandatory'} ne 'N'); |
|
if ($mandatory) { |
|
$mandatory='Mandatory'; |
|
} else { |
|
$mandatory='Optional'; |
$mandatory='Optional'; |
} |
} |
if ($status eq 'fail') { |
my $dim_info="<div class='$dim_status'>\n"; |
} elsif ($status eq 'pass') { |
if ($dim_status eq 'pass') { |
} else { |
$dim_info.='<h3>Question : you passed this '.$mandatory.' question</h3>'; |
&Apache::lonxml::error("Student viewing a graded bridgetask was shown a status of $status"); |
|
} |
} |
my $status_display=$status; |
if ($dim_status eq 'fail') { |
$status_display=~s/^([a-z])/uc($1)/e; |
$dim_info.='<h3>Question : you did not pass this '.$mandatory.' question</h3>'; |
@Apache::scripttag::parser_env = @_; |
} |
$result.='<div class="'.$status.'"><h4>'.$mandatory. |
my $man_count=0; |
' Criteria</h4><p>'; |
my $man_passed=0; |
@Apache::scripttag::parser_env = @_; |
my $opt_count=0; |
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.criteria.'.$id}); |
my $opt_passed=0; |
$result.='</p><p class="grade">'.$status_display.'</p>'; |
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}) { |
if ($dimension{$instance.'.criteria.'.$id.'.mandatory'} |
$result.='<p class="comment">'.$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}.'</p>'; |
eq 'N') { |
|
$opt_count++; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"} eq 'pass') { |
|
$opt_passed++; |
|
} |
|
} else { |
|
$man_count++; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"} eq 'pass') { |
|
$man_passed++; |
|
} |
|
} |
|
} |
|
if ($man_passed eq $man_count) { $man_passed='all'; } |
|
my $opt_req=$dimension{$instance.'.optionalrequired'}; |
|
if ($opt_req !~ /\S/) { $opt_req='0'; } |
|
$dim_info.="\n<p>".&mt('You passed [_1] of the [_2] mandatory components and [_3] of the [_4] optional components, of which you were required to pass [_5].',$man_passed,$man_count,$opt_passed,$opt_count,$opt_req)."</p>\n</div>"; |
|
|
|
my $internal_location=&internal_location($dim); |
|
$result=~s/\Q$internal_location\E/$dim_info/; |
|
|
|
foreach my $id (@{$dimension{$instance.'.criterias'}}) { |
|
my $status=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.status"}; |
|
my $comment=$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}; |
|
my $mandatory=($dimension{$instance.'.criteria.'.$id.'.mandatory'} ne 'N'); |
|
if ($mandatory) { |
|
$mandatory='Mandatory'; |
|
} else { |
|
$mandatory='Optional'; |
|
} |
|
if ($status eq 'fail') { |
|
} elsif ($status eq 'pass') { |
|
} else { |
|
&Apache::lonxml::error("Student viewing a graded bridgetask was shown a status of $status"); |
|
} |
|
my $status_display=$status; |
|
$status_display=~s/^([a-z])/uc($1)/e; |
|
@Apache::scripttag::parser_env = @_; |
|
$result.='<div class="'.$status.'"><h4>'.$mandatory. |
|
' Criteria</h4><p>'; |
|
@Apache::scripttag::parser_env = @_; |
|
$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.criteria.'.$id}); |
|
$result.='</p><p class="grade">'.$status_display.'</p>'; |
|
if ($Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}) { |
|
$result.='<p class="comment">'.$Apache::lonhomework::history{"resource.$version.$dim.$instance.$id.comment"}.'</p>'; |
|
} |
|
$result.='</div>'; |
} |
} |
$result.='</div>'; |
|
} |
} |
} |
} |
} elsif ($target eq 'webgrade') { |
} elsif ($target eq 'webgrade') { |
Line 1485 sub get_instance {
|
Line 1589 sub get_instance {
|
'<td>'. |
'<td>'. |
'<a href="#'.$last_link.'">Prev</a><br />'. |
'<a href="#'.$last_link.'">Prev</a><br />'. |
'<a href="#next_'.$link.'">Next</a><br /><br /><br />'. |
'<a href="#next_'.$link.'">Next</a><br /><br /><br />'. |
'<input type="submit" name="next" value="'. |
|
&mt('Done').'" /> '. |
|
'<input type="submit" name="stop" value="'. |
|
&mt('Stop').'" /> '. |
|
'</td></tr>'; |
'</td></tr>'; |
$result.='<tr><td colspan="4">'; |
|
my (undef,undef,$udom,$uname) = &Apache::lonxml::whichuser(); |
|
my $file_url = '/uploaded/'.$udom.'/'.$uname.'/portfolio/'; |
|
foreach my $partial_file (split(',',$Apache::lonhomework::history{"resource.$version.0.bridgetask.portfiles"})) { |
|
my $file=$file_url.$partial_file; |
|
$file=~s|/+|/|g; |
|
&Apache::lonnet::allowuploaded('/adm/bridgetask',$file); |
|
$result.='<nobr><a href="'.$file.'" target="lonGRDs"><img src="'. |
|
&Apache::loncommon::icon($file).'" border=0"> '.$file. |
|
'</a></nobr> '; |
|
} |
|
$result.='</td></tr>'; |
|
$last_link=$link; |
$last_link=$link; |
} |
} |
} elsif ($target eq 'grade' && $env{'form.webgrade'}) { |
} elsif ($target eq 'grade' && $env{'form.webgrade'}) { |
Line 1576 sub start_Instance {
|
Line 1664 sub start_Instance {
|
push(@Apache::bridgetask::instancelist,$id); |
push(@Apache::bridgetask::instancelist,$id); |
$dimension{$id.'.optionalrequired'}= |
$dimension{$id.'.optionalrequired'}= |
&Apache::lonxml::get_param('OptionalRequired',$parstack,$safeeval); |
&Apache::lonxml::get_param('OptionalRequired',$parstack,$safeeval); |
|
my $disabled = &Apache::lonxml::get_param('Disabled',$parstack,$safeeval); |
|
if (lc($disabled) eq 'yes') { |
|
$dimension{$id.'.disabled'}='1'; |
|
} |
return ''; |
return ''; |
} |
} |
|
|