--- loncom/homework/edit.pm 2001/06/29 18:53:50 1.16 +++ loncom/homework/edit.pm 2001/07/23 22:40:59 1.20 @@ -183,6 +183,15 @@ sub insert_numericalresponse { '; } +sub insert_stringresponse { + return ' + + + + +'; +} + sub insert_optionresponse { return ' @@ -244,7 +253,8 @@ sub get_new_args { my ($token,$parstack,$safeeval,@args)=@_; my $rebuild=0; foreach my $arg (@args) { - my $value=&Apache::lonxml::get_param($arg,$parstack,$safeeval); + #just want the string that it was set to + my $value=$token->[2]->{$arg}; my $newvalue=$ENV{"form.$Apache::lonxml::curdepth.$arg"}; &Apache::lonxml::debug(" for:$arg: cur is :$value: new is :$newvalue:"); if ($value ne $newvalue) { @@ -262,6 +272,8 @@ sub rebuild_tag { if ($token->[0] eq 'S') { $result = '<'.$token->[1]; while (my ($key,$val)= each(%{$token->[2]})) { + $val=~s:^\s+|\s+$::g; + $val=~s:"::g; #" &Apache::lonxml::debug("setting :$key: to :$val:"); $result.=' '.$key.'="'.$val.'"'; } @@ -304,5 +316,29 @@ sub select_arg { return $result; } +sub select_or_text_arg { + my ($description,$name,$list,$token,$size) = @_; + my $result; + my $optionlist=""; + my $found=0; + my $selected=$token->[2]{$name}; + foreach my $option (@$list) { + if ( $selected eq $option ) { + $optionlist.="\n"; + $found=1; + } else { + $optionlist.="\n"; + } + } + $optionlist.="\n"; + if ($found) { + $result.=$description.''; + } else { + $result.=&text_arg($description,$name,$token,$size); + } + return $result; +} 1; __END__