--- loncom/homework/edit.pm 2003/10/15 21:19:46 1.57.2.3 +++ 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.3 2003/10/15 21:19:46 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) ."</td> <td>". - &insertlist($target,$token).&end_row().&start_spanning_row(); + &insertlist($target,$token); #<td>". # &movebuttons($target,$token). # "</tr><tr><td colspan=\"3\">\n"; + my @help;# = Apache::lonxml::helpinfo($token); + if ($help[0]) { + $result .= '<td align="right" valign="top">' . + Apache::loncommon::help_open_topic(@help) . + '</td>'; + } else { $result .= "<td> </td>"; } + $result .= &end_row().&start_spanning_row(); } return $result; } @@ -119,7 +126,7 @@ sub end_table { return $result; } -sub start_spanning_row { return '<tr><td colspan="3" bgcolor="#DDDDDD">';} +sub start_spanning_row { return '<tr><td colspan="4" bgcolor="#DDDDDD">';} sub start_row { return '<tr><td bgcolor="#DDDDDD">'; } sub end_row { return '</td></tr>'; } @@ -561,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.="<option $value selected=\"on\">$text</option>\n"; + $optionlist.="<option $value selected=\"on\">$option</option>\n"; } else { - $optionlist.="<option $value >$text</option>\n"; + $optionlist.="<option $value >$option</option>\n"; } } $result.='<nobr>'.$description.' <select name="'. @@ -590,32 +595,50 @@ sub select_or_text_arg { my $found=0; 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.="<option $value selected=\"on\">$text</option>\n"; + $optionlist.="<option $value selected=\"on\">$option</option>\n"; $found=1; } else { - $optionlist.="<option $value>$text</option>\n"; + $optionlist.="<option $value>$option</option>\n"; } } - $optionlist.="<option value=\"TYPEDINVALUE\">Type in value</option>\n"; - if (($found) || (!$selected)) { - $result.=$description.' <select name="'.&html_element_name($name) - .'"> - '.$optionlist.' - </select>'; - } else { - $result.=&text_arg($description,$name,$token,$size); - } - return '<nobr>'.$result.'</nobr>'; + $optionlist.="<option value=\"TYPEDINVALUE\"". + ((!$found)?' selected="on"':''). + ">Type in value</option>\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 (<<ENDSELECTORTYPE); +<nobr> +$description + <select name="$selectelement" +onChange="if ($selectedvalue!='TYPEDINVALUE') { $hiddenvalue=$selectedvalue; $typedinvalue=''; }" +$optionlist +</select> +<input type="text" size="$size" name="$typeinelement" + value="$typeinvalue" +onChange="$hiddenvalue=$typedinvalue;" +onFocus="$selectedindex=$selecttypeinindex-1;" /> +<input type="hidden" name="$element" value="$selected" /> +</nobr> +ENDSELECTORTYPE } #----------------------------------------------------- image coordinates