--- loncom/homework/response.pm 2001/08/07 23:17:36 1.41 +++ loncom/homework/response.pm 2001/08/09 15:35:47 1.42 @@ -211,41 +211,22 @@ sub start_essayresponse { sub start_responseparam { my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; - if ($target eq 'grade' || $target eq 'web') { - my $default= &Apache::lonxml::get_param('default',$parstack,$safeeval); - my $name= &Apache::lonxml::get_param('name',$parstack,$safeeval); - my $entry= 'resource.'.$Apache::inputtags::part; - if (defined($Apache::inputtags::response[-1])) { - $entry.='_'.$Apache::inputtags::response[-1]; - } - $entry.='.'.$name; - &Apache::lonxml::debug("looking for $entry"); - my $value = &Apache::lonnet::EXT("$entry"); - &Apache::lonxml::debug("$name has value :$value: and default :$default:"); - if ($value eq '' || $value eq 'con_lost' || $value =~ /^error:/) { - &Apache::lonxml::debug("defaulting"); - $Apache::inputtags::params{$name}=$default; - } else { - &Apache::lonxml::debug("using value"); - $Apache::inputtags::params{$name}=$value; - } - return ''; - } elsif ($target eq 'meta') { - return &meta_parameter_write($token->[2]->{'name'}, - $token->[2]->{'type'}, - $token->[2]->{'default'}, - $token->[2]->{'description'}); + my $result='' + if ($target eq 'meta') { + $result = &meta_parameter_write($token->[2]->{'name'}, + $token->[2]->{'type'}, + $token->[2]->{'default'}, + $token->[2]->{'description'}); } elsif ($target eq 'edit') { - my $result.=&Apache::edit::tag_start($target,$token,&Apache::lonxml::description($token)); + $result.=&Apache::edit::tag_start($target,$token, + &Apache::lonxml::description($token)); $result.=&Apache::edit::text_arg('Name:','name',$token). &Apache::edit::text_arg('Type:','type',$token). &Apache::edit::text_arg('Description:','description',$token). &Apache::edit::text_arg('Default:','default',$token). ""; $result.=&Apache::edit::end_table; - return $result; } elsif ($target eq 'modified') { - my $result; my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval, 'name','type','description', 'default'); @@ -253,11 +234,8 @@ sub start_responseparam { $result = &Apache::edit::rebuild_tag($token); $result.=&Apache::edit::handle_insert(); } - return $result; - - } else { - return ''; } + return $result; } sub end_responseparam { @@ -266,6 +244,36 @@ sub end_responseparam { return ''; } +sub setup_params { + my ($tag) = @_; + + @Apache::inputtags::params=(); + my @paramlist=(); + foreach my $key (keys(%Apache::lonnet::packagetab)) { + if ($key =~ /^$tag/) { + my ($package,$name) = split(/&/,$key); + push(@paramlist,$name); + } + } + foreach my $key (@paramlist) { + my $entry= 'resource.'.$Apache::inputtags::part; + if (defined($Apache::inputtags::response[-1])) { + $entry.='_'.$Apache::inputtags::response[-1]; + } + $entry.='.'.$key; + &Apache::lonxml::debug("looking for $entry"); + my $value = &Apache::lonnet::EXT("$entry"); + &Apache::lonxml::debug("$key has value :$value:"); + if ($value eq 'con_lost' || $value =~ /^error:/) { + &Apache::lonxml::debug("using nothing"); + $Apache::inputtags::params{$key}=''; + } else { + &Apache::lonxml::debug("using value"); + $Apache::inputtags::params{$key}=$value; + } + } +} + 1; __END__