version 1.80, 2006/11/06 23:44:42
|
version 1.83, 2007/06/19 20:23:56
|
Line 132 sub prep_image {
|
Line 132 sub prep_image {
|
my ($image,$mode,$name)=@_; |
my ($image,$mode,$name)=@_; |
my $part=$Apache::inputtags::part; |
my $part=$Apache::inputtags::part; |
my $respid=$Apache::inputtags::response['-1']; |
my $respid=$Apache::inputtags::response['-1']; |
|
my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"}); |
|
&draw_image($mode,$image,$x,$y,$Apache::response::foilgroup{"$name.area"}); |
|
} |
|
|
|
sub draw_image { |
|
my ($mode,$image,$x,$y,$areas) = @_; |
|
|
my $id=&Apache::loncommon::get_cgi_id(); |
my $id=&Apache::loncommon::get_cgi_id(); |
|
|
my (%x,$i); |
my (%x,$i); |
$x{"cgi.$id.BGIMG"}=&escape($image); |
$x{"cgi.$id.BGIMG"}=&escape($image); |
my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"}); |
|
#draws 2 xs on the image at the clicked location |
#draws 2 xs on the image at the clicked location |
#one in white and then one in red on top of the one in white |
#one in white and then one in red on top of the one in white |
|
|
if (defined($x) && $x =~/\S/ |
if (defined($x) && $x =~/\S/ |
&& defined($y) && $y =~/\S/ |
&& defined($y) && $y =~/\S/ |
&& !&Apache::response::show_answer() |
&& ($mode eq 'submission' || !&Apache::response::show_answer()) |
&& $mode ne 'answeronly') { |
&& $mode ne 'answeronly') { |
my $length = 6; |
my $length = 6; |
my $width = 1; |
my $width = 1; |
Line 170 sub prep_image {
|
Line 179 sub prep_image {
|
if ($mode eq 'answer' || $mode eq 'answeronly') { |
if ($mode eq 'answer' || $mode eq 'answeronly') { |
my $width = 1; |
my $width = 1; |
my $extrawidth = 2; |
my $extrawidth = 2; |
my @areas = @{ $Apache::response::foilgroup{"$name.area"} }; |
foreach my $area (@{ $areas }) { |
foreach my $area (@areas) { |
|
if ($area=~/^rectangle:/) { |
if ($area=~/^rectangle:/) { |
$x{"cgi.$id.OBJTYPE"}.='RECTANGLE:'; |
$x{"cgi.$id.OBJTYPE"}.='RECTANGLE:'; |
$i=$x{"cgi.$id.OBJCOUNT"}++; |
$i=$x{"cgi.$id.OBJCOUNT"}++; |
Line 203 sub displayfoils {
|
Line 211 sub displayfoils {
|
my $result =''; |
my $result =''; |
my $name; |
my $name; |
my $temp=1; |
my $temp=1; |
|
my @images; |
foreach $name (@whichopt) { |
foreach $name (@whichopt) { |
$result.=$Apache::response::foilgroup{"$name.text"}; |
$result.=$Apache::response::foilgroup{"$name.text"}; |
&Apache::lonxml::debug("Text is $result"); |
&Apache::lonxml::debug("Text is $result"); |
Line 211 sub displayfoils {
|
Line 220 sub displayfoils {
|
&Apache::lonxml::debug("image is $image"); |
&Apache::lonxml::debug("image is $image"); |
if ( $target eq 'web' && $image !~ /^http:/ ) { |
if ( $target eq 'web' && $image !~ /^http:/ ) { |
$image=&clean_up_image($image); |
$image=&clean_up_image($image); |
} |
} |
|
push(@images,$image); |
&Apache::lonxml::debug("image is $image"); |
&Apache::lonxml::debug("image is $image"); |
if ( &Apache::response::show_answer() ) { |
if ( &Apache::response::show_answer() ) { |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
Line 233 sub displayfoils {
|
Line 243 sub displayfoils {
|
} |
} |
$temp++; |
$temp++; |
} |
} |
|
if ($target eq 'web') { |
|
&Apache::response::setup_prior_tries_hash(\&format_prior_response, |
|
[\@images]); |
|
} |
return $result; |
return $result; |
} |
} |
|
|
|
sub format_prior_response { |
|
my ($mode,$answer,$other_data) = @_; |
|
my ($x,$y)=split(/:/,$answer); |
|
my $images = $other_data->[0]; |
|
|
|
my $token = &draw_image('submission',$images->[0],$x,$y); |
|
|
|
return "<img class=\"LC_prior_image\" src=\"/adm/randomlabel.png?token=$token\" />"; |
|
|
|
} |
|
|
sub display_answers { |
sub display_answers { |
my ($target,$whichopt)=@_; |
my ($target,$whichopt)=@_; |
|
|
Line 346 sub end_foilgroup {
|
Line 371 sub end_foilgroup {
|
|
|
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$result=&displayfoils($target,@whichopt); |
$result=&displayfoils($target,@whichopt); |
|
$Apache::lonxml::post_evaluate=0; |
} elsif ($target eq 'grade') { |
} elsif ($target eq 'grade') { |
if ( defined $env{'form.submitted'}) { &gradefoils(@whichopt); } |
if ( defined $env{'form.submitted'}) { &gradefoils(@whichopt); } |
} elsif ( $target eq 'analyze') { |
} elsif ( $target eq 'analyze') { |
Line 479 sub end_text {
|
Line 505 sub end_text {
|
sub start_image { |
sub start_image { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $result=''; |
my $result=''; |
|
my $only = join(',',&Apache::loncommon::filecategorytypes('Pictures')); |
if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze' |
if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze' |
|| $target eq 'answer') { |
|| $target eq 'answer') { |
&Apache::lonxml::startredirection; |
&Apache::lonxml::startredirection; |
Line 489 sub start_image {
|
Line 516 sub start_image {
|
|
|
$result=&Apache::edit::tag_start($target,$token,'Clickable Image'). |
$result=&Apache::edit::tag_start($target,$token,'Clickable Image'). |
&Apache::edit::editline($token->[1],$bgimg,'Image Source File',40); |
&Apache::edit::editline($token->[1],$bgimg,'Image Source File',40); |
$result.=&Apache::edit::browse(undef,'textnode').' '; |
$result.=&Apache::edit::browse(undef,'textnode',undef,$only).' '; |
$result.=&Apache::edit::search(undef,'textnode'). |
$result.=&Apache::edit::search(undef,'textnode'). |
&Apache::edit::end_row(); |
&Apache::edit::end_row(); |
} elsif ($target eq "modified") { |
} elsif ($target eq "modified") { |