version 1.206, 2006/11/14 22:55:19
|
version 1.211, 2006/11/28 16:36:04
|
Line 380 sub nest {
|
Line 380 sub nest {
|
} |
} |
} |
} |
|
|
|
sub start_delay { |
|
push(@delay,1); |
|
} |
|
sub end_delay { |
|
pop(@delay); |
|
} |
|
|
sub nested_parse { |
sub nested_parse { |
my ($str,$env,$args) = @_; |
my ($str,$env,$args) = @_; |
my @old_env = @Apache::scripttag::parser_env; |
my @old_env = @Apache::scripttag::parser_env; |
Line 791 sub start_Task {
|
Line 798 sub start_Task {
|
if ($target eq 'webgrade') { |
if ($target eq 'webgrade') { |
$result.="\n".'<div id="LC_GRADING_criterialist">'; |
$result.="\n".'<div id="LC_GRADING_criterialist">'; |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
|
&start_delay(); |
|
$dimension{$top}{'result'}=$result; |
|
undef($result); |
} |
} |
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
$result.=$form_tag_start. |
$result.=$form_tag_start. |
Line 1257 DONEBUTTON
|
Line 1267 DONEBUTTON
|
&Apache::structuretags::finalize_storage(); |
&Apache::structuretags::finalize_storage(); |
} |
} |
} elsif ($target eq 'webgrade') { |
} elsif ($target eq 'webgrade') { |
$result.=&Apache::lonxml::endredirection(); |
if (&nest()) { |
|
&Apache::lonxml::endredirection(); |
|
&end_delay(); |
|
$result.=$dimension{$top}{'result'}; |
|
} else { |
|
$result.=&Apache::lonxml::endredirection(); |
|
} |
my $dim = $top; |
my $dim = $top; |
foreach my $id (@{$dimension{$dim}{'criterias'}} ) { |
foreach my $id (@{$dimension{$dim}{'criterias'}} ) { |
my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; |
my $type = $dimension{$dim}{'criteria.'.$id.'.type'}; |
Line 1269 DONEBUTTON
|
Line 1285 DONEBUTTON
|
[@_]); |
[@_]); |
$criteria = &layout_webgrade_Criteria($dim,$id,$criteria); |
$criteria = &layout_webgrade_Criteria($dim,$id,$criteria); |
my $internal_location=&internal_location($id); |
my $internal_location=&internal_location($id); |
$result=~s/\Q$internal_location\E/$criteria/; |
if ($result =~ m/\Q$internal_location\E/) { |
|
$result=~s/\Q$internal_location\E/$criteria/; |
|
} else { |
|
$result.=$criteria; |
|
} |
|
|
} |
} |
} |
} |
$result.="</div>"; |
$result.="</div>"; |
Line 2049 sub start_Setup {
|
Line 2070 sub start_Setup {
|
my $dim = &get_id($parstack,$safeeval); |
my $dim = &get_id($parstack,$safeeval); |
push(@Apache::bridgetask::dimension,$dim); |
push(@Apache::bridgetask::dimension,$dim); |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
return &internal_location($dim); |
return;# &internal_location($dim); |
} |
} |
|
|
{ |
{ |
Line 2101 sub start_Dimension {
|
Line 2122 sub start_Dimension {
|
$dimension{$top}{'criteria.'.$dim.'.mandatory'}= |
$dimension{$top}{'criteria.'.$dim.'.mandatory'}= |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
&Apache::lonxml::get_param('Mandatory',$parstack,$safeeval); |
push(@{$dimension{$top}{'criterias'}},$dim); |
push(@{$dimension{$top}{'criterias'}},$dim); |
|
$dimension{$dim}{'nested'}=$top; |
} |
} |
push(@Apache::bridgetask::dimension,$dim); |
push(@Apache::bridgetask::dimension,$dim); |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
if (!&skip_dimension_parsing($dim)) { |
if (!&skip_dimension_parsing($dim)) { |
&enable_dimension_parsing($dim); |
&enable_dimension_parsing($dim); |
} |
} |
# return &internal_location($dim); |
return;# &internal_location($dim); |
} |
} |
|
|
sub start_QuestionText { |
sub start_QuestionText { |
Line 2272 sub end_Dimension {
|
Line 2294 sub end_Dimension {
|
} |
} |
} |
} |
if ($result !~ /^\s*$/s) { |
if ($result !~ /^\s*$/s) { |
$result = "\n".'<div class="LC_question">'. |
# FIXME? this maybe unneccssary in the future, (CSE101 BT |
"\n".$result."\n</div>\n"; |
# from Fall 2006 geenrate a div that attempts to hide some |
|
# of the output in an odd way, this is a workaround so |
|
# those old ones will continue to work. # It puts the |
|
# LC_question div to come after any starting closie div |
|
# that the dimension produces |
|
if ($result =~ m{^\s*</div>}) { |
|
$result =~ s{^(\s*</div>)} |
|
{$1\n<div id="$dim" class="LC_question">}; |
|
} else { |
|
$result = "\n".'<div id="'.$dim.'" class="LC_question">'. |
|
"\n".$result; |
|
} |
|
$result .= "\n</div>\n"; |
} |
} |
} elsif ($target eq 'webgrade') { |
} elsif ($target eq 'webgrade') { |
# in case of any side effects that we need |
# in case of any side effects that we need |
Line 2297 sub end_Dimension {
|
Line 2331 sub end_Dimension {
|
[@_]); |
[@_]); |
$criteria = &layout_webgrade_Criteria($dim,$id,$criteria); |
$criteria = &layout_webgrade_Criteria($dim,$id,$criteria); |
my $internal_location=&internal_location($id); |
my $internal_location=&internal_location($id); |
$result=~s/\Q$internal_location\E/$criteria/; |
if ($result =~ m/\Q$internal_location\E/) { |
|
$result =~ s/\Q$internal_location\E/$criteria/; |
|
} else { |
|
$result.=$criteria ; |
|
} |
} |
} |
} |
} |
if (&nest()) { |
if (&nest()) { |
Line 2606 sub start_Criteria {
|
Line 2644 sub start_Criteria {
|
my $dim = &get_dim_id(); |
my $dim = &get_dim_id(); |
my $id=&get_id($parstack,$safeeval); |
my $id=&get_id($parstack,$safeeval); |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'webgrade' && $dim ne 'top') { |
if ($target eq 'webgrade') { |
&Apache::lonxml::debug(" for $dim $id stashing results into $dim "); |
&Apache::lonxml::debug(" for $dim $id stashing results into $dim "); |
$dimension{$dim}{'result'} .= &internal_location($id); |
$dimension{$dim}{'result'} .= &internal_location($id); |
} else { |
} else { |