--- loncom/homework/imageresponse.pm 2011/06/07 17:27:37 1.101
+++ loncom/homework/imageresponse.pm 2012/10/12 12:45:46 1.104
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# image click response style
#
-# $Id: imageresponse.pm,v 1.101 2011/06/07 17:27:37 www Exp $
+# $Id: imageresponse.pm,v 1.104 2012/10/12 12:45:46 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -179,7 +179,8 @@ sub end_imageresponse {
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' ||
$target eq 'tex' || $target eq 'analyze') {
- &Apache::lonxml::increment_counter(&Apache::response::repetition(),
+ my $repetition = &Apache::response::repetition();
+ &Apache::lonxml::increment_counter($repetition,
"$part_id.$response_id");
if ($target eq 'analyze') {
&Apache::lonhomework::set_bubble_lines();
@@ -211,8 +212,11 @@ sub getfoilcounts {
sub whichfoils {
my ($max)=@_;
- return if (!defined(@{ $Apache::response::foilgroup{'names'} }));
- my @names = @{ $Apache::response::foilgroup{'names'} };
+ my @names;
+ if (ref($Apache::response::foilgroup{'names'}) eq 'ARRAY') {
+ @names = @{ $Apache::response::foilgroup{'names'} };
+ }
+ return if (!@names);
my @whichopt;
while ((($#whichopt+1) < $max) && ($#names > -1)) {
&Apache::lonxml::debug("Have $#whichopt max is $max");
@@ -472,9 +476,11 @@ sub gradefoils {
my ($x,$y) = split(':',$env{"form.HWVAL_$id:$temp"});
$response{$name} = $env{"form.HWVAL_$id:$temp"};
&Apache::lonxml::debug("Got a x of $x and a y of $y for $name");
- if (defined($x) && defined($y) &&
- defined(@{ $Apache::response::foilgroup{"$name.area"} })) {
- my @areas = @{ $Apache::response::foilgroup{"$name.area"} };
+ my @areas;
+ if (ref($Apache::response::foilgroup{"$name.area"}) eq 'ARRAY') {
+ @areas = @{ $Apache::response::foilgroup{"$name.area"} };
+ }
+ if (defined($x) && defined($y) && @areas) {
my $grade="INCORRECT";
foreach my $area (@areas) {
&Apache::lonxml::debug("Area is $area for $name");
@@ -631,9 +637,6 @@ sub start_foil {
&Apache::lonxml::warning(&mt('Foils without names exist. This can cause problems to malfunction.'));
$name=$Apache::lonxml::curdepth;
}
- if ($name eq "0") {
- &Apache::lonxml::error(&mt('Foil name [_1] is not supported. Please choose another name.',''.$name.''));
- }
if (defined($Apache::response::foilnames{$name})) {
&Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique."
,''.$name.''));