version 1.3, 2004/01/14 22:59:18
|
version 1.4, 2004/02/17 22:02:05
|
Line 33 sub deletedata {
|
Line 33 sub deletedata {
|
} |
} |
|
|
sub closewindow { |
sub closewindow { |
my ($r,$output,$filename)=@_; |
my ($r,$output,$filename,$needimage)=@_; |
|
if ($needimage) { |
|
$needimage="<img name=\"pickimg\" src=\"$filename\" />"; |
|
} |
$r->print(<<"ENDSUBM"); |
$r->print(<<"ENDSUBM"); |
<html> |
<html> |
<script> |
<script> |
Line 44 sub closewindow {
|
Line 47 sub closewindow {
|
</script> |
</script> |
<body bgcolor="#FFFFFF" onLoad="submitthis()"> |
<body bgcolor="#FFFFFF" onLoad="submitthis()"> |
<h3>Position Selected</h3> |
<h3>Position Selected</h3> |
<!--<img name="pickimg" src="$filename" />--> |
$needimage |
</body> |
</body> |
</html> |
</html> |
ENDSUBM |
ENDSUBM |
Line 55 sub storedata {
|
Line 58 sub storedata {
|
|
|
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
|
|
my $output; |
my ($output,$needimage); |
|
|
if ($ENV{"imagechoice.$id.formwidth"}) { |
if ($ENV{"imagechoice.$id.formwidth"}) { |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formwidth"}.'.value=document.pickimg.width;'; |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formwidth"}.'.value=document.pickimg.width;'; |
|
$needimage=1; |
} |
} |
if ($ENV{"imagechoice.$id.formheight"}) { |
if ($ENV{"imagechoice.$id.formheight"}) { |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formheight"}.'.value=document.pickimg.height;'; |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formheight"}.'.value=document.pickimg.height;'; |
|
$needimage=1; |
} |
} |
|
|
if ((defined($ENV{"imagechoice.$id.x"})) && (defined($ENV{"imagechoice.$id.y"})) && |
if ($type eq 'point') { |
($type ne 'pairtwo') && ($type ne 'pairthree')) { |
my (undef,$x,$y)=split(':',$ENV{"imagechoice.$id.coords"}); |
my $output=''; |
|
if ($ENV{"imagechoice.$id.formx"}) { |
if ($ENV{"imagechoice.$id.formx"}) { |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formx"}. |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formx"}.'.value='.$x.';'; |
'.value='.$ENV{"imagechoice.$id.x"}.';'; |
|
} |
} |
if ($ENV{"imagechoice.$id.formy"}) { |
if ($ENV{"imagechoice.$id.formy"}) { |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formy"}. |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formy"}.'.value='.$y.';'; |
'.value='.$ENV{"imagechoice.$id.y"}.';'; |
|
} |
} |
} elsif ($type eq 'polygon' or $type eq 'box') { |
} elsif ($type eq 'polygon' or $type eq 'box') { |
my $coordstr; |
my $coordstr; |
Line 83 sub storedata {
|
Line 85 sub storedata {
|
chop($coordstr); |
chop($coordstr); |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formcoord"}.'.value="'.$coordstr.'";'; |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formcoord"}.'.value="'.$coordstr.'";'; |
} |
} |
|
|
&deletedata($id); |
&deletedata($id); |
&closewindow($r,$output,$filename); |
&closewindow($r,$output,$filename,$needimage); |
} |
} |
|
|
sub getcoord { |
sub getcoord { |
my ($r,$type,$filename,$id)=@_; |
my ($r,$type,$filename,$id)=@_; |
my $heading='Position'; |
my $heading='Select Position on Image'; |
my $nextstage=''; |
my $nextstage=''; |
if ($type eq 'box') { |
if ($type eq 'box') { |
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
my $step=scalar(@coords)/2; |
my $step=scalar(@coords)/2; |
if ($step == 0) { |
if ($step == 0) { |
$heading='First Coordinate'; |
$heading='Select First Coordinate on Image'; |
#$nextstage='<input type="hidden" name="type" value="pairtwo" />'; |
#$nextstage='<input type="hidden" name="type" value="pairtwo" />'; |
} elsif ($step == 1) { |
} elsif ($step == 1) { |
$heading='Second Coordinate'; |
$heading='Select Second Coordinate on Image'; |
#$nextstage='<input type="hidden" name="type" value="pairthree" />'; |
#$nextstage='<input type="hidden" name="type" value="pairthree" />'; |
} else { |
} else { |
$heading='Finish or Cancel'; |
$heading='Select Finish to store selection.'; |
$nextstage='<input type="submit" name="finish" value="Finish" />'; |
$nextstage='<input type="submit" name="finish" value="Finish" />'; |
} |
} |
} elsif ($type eq 'polygon') { |
} elsif ($type eq 'polygon') { |
$heading='Enter Coordinate or click finish to close Polygon'; |
$heading='Enter Coordinate or click finish to close Polygon'; |
$nextstage='<input type="submit" name="finish" value="Finish" />'; |
$nextstage='<input type="submit" name="finish" value="Finish" />'; |
|
} elsif ($type eq 'point') { |
|
$heading='Click to select a Coordinate or click Finish to store current selection.'; |
|
$nextstage='<input type="submit" name="finish" value="Finish" />'; |
} |
} |
$r->print(<<"END"); |
$r->print(<<"END"); |
<html> |
<html> |
<body bgcolor="#FFFFFF"> |
<body bgcolor="#FFFFFF"> |
<h3>Select $heading on Image</h3> |
<h3>$heading</h3> |
<form method="POST" action="/adm/imagechoice?token=$id"> |
<form method="POST" action="/adm/imagechoice?token=$id"> |
$nextstage |
$nextstage |
<input type="submit" name="cancel" value="Cancel" /> |
<input type="submit" name="cancel" value="Cancel" /> |
Line 124 END
|
Line 130 END
|
} |
} |
|
|
sub savecoord { |
sub savecoord { |
my ($id)=@_; |
my ($id,$type)=@_; |
if (defined($ENV{"form.image.x"}) && defined($ENV{"form.image.y"})) { |
if (defined($ENV{"form.image.x"}) && defined($ENV{"form.image.y"})) { |
my $data=join(':',($ENV{"imagechoice.$id.coords"},$ENV{"form.image.x"}, |
my $data; |
$ENV{"form.image.y"})); |
if ($type eq 'point') { |
|
$data=join(':',(undef,$ENV{"form.image.x"},$ENV{"form.image.y"})); |
|
} else { |
|
$data=join(':',($ENV{"imagechoice.$id.coords"}, |
|
$ENV{"form.image.x"},$ENV{"form.image.y"})); |
|
} |
&Apache::lonnet::appenv("imagechoice.$id.coords"=>$data); |
&Apache::lonnet::appenv("imagechoice.$id.coords"=>$data); |
} |
} |
return int(scalar(split(':',$ENV{"imagechoice.$id.coords"}))/2); |
return int(scalar(split(':',$ENV{"imagechoice.$id.coords"}))/2); |
Line 219 sub handler {
|
Line 230 sub handler {
|
} |
} |
my $type=$ENV{"imagechoice.$id.type"}; |
my $type=$ENV{"imagechoice.$id.type"}; |
if (defined($ENV{'form.type'})) { $type=$ENV{'form.type'}; } |
if (defined($ENV{'form.type'})) { $type=$ENV{'form.type'}; } |
my $numcoords=&savecoord($id); |
my $numcoords=&savecoord($id,$type); |
&Apache::lonnet::logthis("num coords is $numcoords"); |
&Apache::lonnet::logthis("num coords is $numcoords"); |
my $imurl=&drawimage($r,$type,$filename,$id); |
my $imurl=&drawimage($r,$type,$filename,$id); |
if (($ENV{'form.finish'} eq 'Finish')) { |
if (($ENV{'form.finish'} eq 'Finish')) { |