--- loncom/homework/edit.pm 2003/10/06 20:11:38 1.57.2.2 +++ loncom/homework/edit.pm 2003/09/08 21:10:53 1.61 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # edit mode helpers # -# $Id: edit.pm,v 1.57.2.2 2003/10/06 20:11:38 albertel Exp $ +# $Id: edit.pm,v 1.61 2003/09/08 21:10:53 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -63,10 +63,17 @@ sub tag_start { &deletelist($target,$token) ." ". - &insertlist($target,$token).&end_row().&start_spanning_row(); + &insertlist($target,$token); #". # &movebuttons($target,$token). # "\n"; + my @help;# = Apache::lonxml::helpinfo($token); + if ($help[0]) { + $result .= '' . + Apache::loncommon::help_open_topic(@help) . + ''; + } else { $result .= " "; } + $result .= &end_row().&start_spanning_row(); } return $result; } @@ -119,7 +126,7 @@ sub end_table { return $result; } -sub start_spanning_row { return '';} +sub start_spanning_row { return '';} sub start_row { return ''; } sub end_row { return ''; } @@ -458,17 +465,21 @@ sub modifiedfield { # Returns a 1 if the token has been modified and you should rebuild the tag # side-effects, will modify the $token if new values are found sub get_new_args { - my ($token,$parstack,$safeeval,@args)=@_; - my $rebuild=0; - foreach my $arg (@args) { + my ($token,$parstack,$safeeval,@args)=@_; + my $rebuild=0; + foreach my $arg (@args) { #just want the string that it was set to my $value=$token->[2]->{$arg}; my $element=&html_element_name($arg); my $newvalue=$ENV{"form.$element"}; &Apache::lonxml::debug(" for:$arg: cur is :$value: new is :$newvalue:"); if (defined($newvalue) && $value ne $newvalue) { - $token->[2]->{$arg}=$newvalue; - $rebuild=1; + if (ref($newvalue) eq 'ARRAY') { + $token->[2]->{$arg}=join(',',@$newvalue); + } else { + $token->[2]->{$arg}=$newvalue; + } + $rebuild=1; } } return $rebuild; @@ -511,6 +522,36 @@ sub hidden_arg { return $result; } +sub checked_arg { + my ($description,$name,$list,$token) = @_; + my $result; + my $optionlist=""; + my $allselected=$token->[2]{$name}; + $result=$description; + foreach my $option (@$list) { + my ($value,$text); + if ( ref($option) eq 'ARRAY') { + $value='value="'.$$option[0].'"'; + $text=$$option[1]; + $option=$$option[0]; + } else { + $text=$option; + $value='value="'.$option.'"'; + } + $result.=""); + if ( $selected eq $option ) { + $result.=" checked='on' "; + last; + } + } + $result.=" />$text\n"; + } + return $result; +} + sub text_arg { my ($description,$name,$token,$size) = @_; my $result; @@ -527,19 +568,17 @@ sub select_arg { my $optionlist=""; my $selected=$token->[2]{$name}; foreach my $option (@$list) { - my ($text,$value); + my $value; if ( ref($option) eq 'ARRAY') { $value='value="'.$$option[0].'"'; - $text=$$option[1]; - $option=$$option[0]; + $option=$$option[1]; } else { - $text=$option; $value='value="'.$option.'"'; } if ( $selected eq $option ) { - $optionlist.="\n"; + $optionlist.="\n"; } else { - $optionlist.="\n"; + $optionlist.="\n"; } } $result.=''.$description.'  - '.$optionlist.' - '; - } else { - $result.=&text_arg($description,$name,$token,$size); - } - return ''.$result.''; + $optionlist.="\n"; +# + my $element=&html_element_name($name); + my $selectelement='select_list_'.$element; + my $typeinelement='type_in_'.$element; + my $typeinvalue=($found?'':$selected); +# + my $hiddenvalue='this.form.'.$element.'.value'; + my $selectedindex='this.form.'.$selectelement.'.selectedIndex'; + my $selectedvalue='this.form.'.$selectelement. + '.options['.$selectedindex.'].value'; + my $typedinvalue='this.form.'.$typeinelement.'.value'; + my $selecttypeinindex='this.form.'.$selectelement.'.options.length'; +# + return (< +$description +  + + +ENDSELECTORTYPE } #----------------------------------------------------- image coordinates