version 1.78, 2004/01/15 03:24:52
|
version 1.91, 2005/03/17 13:56:32
|
Line 25
|
Line 25
|
# |
# |
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
# 3/20 Guy |
|
# 01/10/02 Matthew |
|
# 03/06/02 Matthew |
|
package Apache::edit; |
package Apache::edit; |
|
|
use strict; |
use strict; |
Line 70 sub tag_start {
|
Line 68 sub tag_start {
|
# "</tr><tr><td colspan=\"3\">\n"; |
# "</tr><tr><td colspan=\"3\">\n"; |
my @help = Apache::lonxml::helpinfo($token); |
my @help = Apache::lonxml::helpinfo($token); |
if ($help[0]) { |
if ($help[0]) { |
$result .= '<td align="right" valign="top">' . |
$result .= '</td><td align="right" valign="top">' . |
Apache::loncommon::help_open_topic(@help) . |
Apache::loncommon::help_open_topic(@help); |
'</td>'; |
} else { $result .= "</td><td> "; } |
} else { $result .= "<td> </td>"; } |
|
$result .= &end_row().&start_spanning_row(); |
$result .= &end_row().&start_spanning_row(); |
} |
} |
return $result; |
return $result; |
Line 193 sub get_insert_list {
|
Line 190 sub get_insert_list {
|
$descrip."</option>\n"; |
$descrip."</option>\n"; |
} |
} |
foreach my $option (sort(keys(%options))) {$result.=$options{$option};} |
foreach my $option (sort(keys(%options))) {$result.=$options{$option};} |
if ($result) { $result='<option selected="on"></option>'.$result; } |
if ($result) { $result='<option selected="selected"></option>'.$result; } |
} |
} |
return $result; |
return $result; |
} |
} |
Line 242 sub handle_insert {
|
Line 239 sub handle_insert {
|
} |
} |
} else { |
} else { |
my $newtag=$Apache::lonxml::insertlist{"$tagnum.tag"}; |
my $newtag=$Apache::lonxml::insertlist{"$tagnum.tag"}; |
&Apache::lonxml::error("Unable to insert tag $newtag, $func was not defined."); |
&Apache::lonxml::error("Unable to insert tag ".$Apache::lonxml::curdepth." ($tagnum) $newtag, func was not defined."); |
} |
} |
} |
} |
return $result; |
return $result; |
Line 284 sub insert_responseparam {
|
Line 281 sub insert_responseparam {
|
<responseparam />'; |
<responseparam />'; |
} |
} |
|
|
|
sub insert_parameter { |
|
return ' |
|
<parameter />'; |
|
} |
|
|
sub insert_formularesponse { |
sub insert_formularesponse { |
return ' |
return ' |
<formularesponse answer="" samples=""> |
<formularesponse answer="" samples=""> |
<textline /> |
<responseparam description="Numerical Tolerance" type="tolerance" default="0.00001" name="tol" /> |
|
<textline size="25"/> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
</hintgroup> |
</hintgroup> |
Line 297 sub insert_formularesponse {
|
Line 300 sub insert_formularesponse {
|
sub insert_numericalresponse { |
sub insert_numericalresponse { |
return ' |
return ' |
<numericalresponse answer=""> |
<numericalresponse answer=""> |
|
<responseparam type="tolerance" default="5%" name="tol" description="Numerical Tolerance" /> |
|
<responseparam name="sig" type="int_range,0-16" default="0,15" description="Significant Figures" /> |
<textline /> |
<textline /> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
Line 325 sub insert_imageresponse {
|
Line 330 sub insert_imageresponse {
|
return ' |
return ' |
<imageresponse max="1"> |
<imageresponse max="1"> |
<foilgroup> |
<foilgroup> |
|
<foil> |
|
</foil> |
</foilgroup> |
</foilgroup> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
Line 336 sub insert_optionresponse {
|
Line 343 sub insert_optionresponse {
|
return ' |
return ' |
<optionresponse max="10"> |
<optionresponse max="10"> |
<foilgroup options=""> |
<foilgroup options=""> |
|
<foil> |
|
<startouttext /><endouttext /> |
|
</foil> |
</foilgroup> |
</foilgroup> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
Line 363 sub insert_radiobuttonresponse {
|
Line 373 sub insert_radiobuttonresponse {
|
return ' |
return ' |
<radiobuttonresponse max="10"> |
<radiobuttonresponse max="10"> |
<foilgroup> |
<foilgroup> |
|
<foil> |
|
<startouttext /><endouttext /> |
|
</foil> |
</foilgroup> |
</foilgroup> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
Line 384 sub insert_rankresponse {
|
Line 397 sub insert_rankresponse {
|
return ' |
return ' |
<rankresponse max="10"> |
<rankresponse max="10"> |
<foilgroup options=""> |
<foilgroup options=""> |
|
<foil> |
|
<startouttext /><endouttext /> |
|
</foil> |
</foilgroup> |
</foilgroup> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
Line 397 sub insert_matchresponse {
|
Line 413 sub insert_matchresponse {
|
<foilgroup options=""> |
<foilgroup options=""> |
<itemgroup> |
<itemgroup> |
</itemgroup> |
</itemgroup> |
|
<foil> |
|
<startouttext /><endouttext /> |
|
</foil> |
</foilgroup> |
</foilgroup> |
<hintgroup> |
<hintgroup> |
<startouttext /><endouttext /> |
<startouttext /><endouttext /> |
Line 409 sub insert_displaytitle { return '<dis
|
Line 428 sub insert_displaytitle { return '<dis
|
sub insert_hintpart { |
sub insert_hintpart { |
return ' |
return ' |
<hintpart on="default"> |
<hintpart on="default"> |
<startouttext/> |
<startouttext/><endouttext /> |
<endouttext /> |
|
</hintpart>'; |
</hintpart>'; |
} |
} |
|
|
Line 475 sub textarea_sizes {
|
Line 493 sub textarea_sizes {
|
|
|
sub editline { |
sub editline { |
my ($tag,$data,$description,$size)=@_; |
my ($tag,$data,$description,$size)=@_; |
$data=&HTML::Entities::encode($data); |
$data=&HTML::Entities::encode($data,'<>&"'); |
if ($description) { $description="<br />".$description."<br />"; } |
if ($description) { $description="<br />".$description."<br />"; } |
my $result = <<"END"; |
my $result = <<"END"; |
$description |
$description |
Line 486 END
|
Line 504 END
|
} |
} |
|
|
sub editfield { |
sub editfield { |
my ($tag,$data,$description,$minwidth,$minheight)=@_; |
my ($tag,$data,$description,$minwidth,$minheight,$usehtmlarea)=@_; |
|
|
my ($rows,$cols)=&textarea_sizes(\$data); |
my ($rows,$cols)=&textarea_sizes(\$data); |
|
if (&Apache::lonhtmlcommon::htmlareabrowser() && |
|
!&Apache::lonhtmlcommon::htmlareablocked()) { |
|
$rows+=7; # make room for HTMLarea |
|
$minheight+=7; # make room for HTMLarea |
|
} |
if ($cols > 80) { $cols = 80; } |
if ($cols > 80) { $cols = 80; } |
if ($cols < $minwidth ) { $cols = $minwidth; } |
if ($cols < $minwidth ) { $cols = $minwidth; } |
if ($rows < $minheight) { $rows = $minheight; } |
if ($rows < $minheight) { $rows = $minheight; } |
if ($description) { $description="<br />".$description."<br />"; } |
if ($description) { $description="<br />".$description."<br />"; } |
return $description."\n".' <textarea rows="'.$rows. |
if ($usehtmlarea) { |
|
push @Apache::lonxml::htmlareafields,'homework_edit_'. |
|
$Apache::lonxml::curdepth; |
|
} |
|
return $description."\n".' <textarea style="width:100%" rows="'.$rows. |
'" cols="'.$cols.'" name="homework_edit_'. |
'" cols="'.$cols.'" name="homework_edit_'. |
|
$Apache::lonxml::curdepth.'" id="homework_edit_'. |
$Apache::lonxml::curdepth.'">'. |
$Apache::lonxml::curdepth.'">'. |
&HTML::Entities::encode($data).'</textarea>'."\n"; |
&HTML::Entities::encode($data,'<>&"').'</textarea>'. |
|
($usehtmlarea?&Apache::lonhtmlcommon::spelllink('lonhomework', |
|
'homework_edit_'.$Apache::lonxml::curdepth):'')."\n"; |
} |
} |
|
|
sub modifiedfield { |
sub modifiedfield { |
Line 532 sub get_new_args {
|
Line 562 sub get_new_args {
|
$token->[2]->{$arg}=$newvalue; |
$token->[2]->{$arg}=$newvalue; |
} |
} |
$rebuild=1; |
$rebuild=1; |
|
} elsif (!defined($newvalue) && defined($value)) { |
|
delete($token->[2]->{$arg}); |
|
$rebuild=1; |
} |
} |
} |
} |
return $rebuild; |
return $rebuild; |
Line 594 sub checked_arg {
|
Line 627 sub checked_arg {
|
&html_element_name($name)."'"; |
&html_element_name($name)."'"; |
foreach my $selected (split(/,/,$allselected)) { |
foreach my $selected (split(/,/,$allselected)) { |
if ( $selected eq $option ) { |
if ( $selected eq $option ) { |
$result.=" checked='on' "; |
$result.=" checked='checked' "; |
last; |
last; |
} |
} |
} |
} |
Line 629 sub select_arg {
|
Line 662 sub select_arg {
|
$value='value="'.$option.'"'; |
$value='value="'.$option.'"'; |
} |
} |
if ( $selected eq $option ) { |
if ( $selected eq $option ) { |
$optionlist.="<option $value selected=\"on\">$text</option>\n"; |
$optionlist.="<option $value selected=\"selected\">$text</option>\n"; |
} else { |
} else { |
$optionlist.="<option $value >$text</option>\n"; |
$optionlist.="<option $value >$text</option>\n"; |
} |
} |
Line 658 sub select_or_text_arg {
|
Line 691 sub select_or_text_arg {
|
$value='value="'.$option.'"'; |
$value='value="'.$option.'"'; |
} |
} |
if ( $selected eq $option ) { |
if ( $selected eq $option ) { |
$optionlist.="<option $value selected=\"on\">$text</option>\n"; |
$optionlist.="<option $value selected=\"selected\">$text</option>\n"; |
$found=1; |
$found=1; |
} else { |
} else { |
$optionlist.="<option $value>$text</option>\n"; |
$optionlist.="<option $value>$text</option>\n"; |
} |
} |
} |
} |
$optionlist.="<option value=\"TYPEDINVALUE\"". |
$optionlist.="<option value=\"TYPEDINVALUE\"". |
((!$found)?' selected="on"':''). |
((!$found)?' selected="selected"':''). |
">".&mt('Type-in value')."</option>\n"; |
">".&mt('Type-in value')."</option>\n"; |
# |
# |
my $element=&html_element_name($name); |
my $element=&html_element_name($name); |
Line 700 ENDSELECTORTYPE
|
Line 733 ENDSELECTORTYPE
|
#----------------------------------------------------- image coordinates |
#----------------------------------------------------- image coordinates |
# single image coordinates, x, y |
# single image coordinates, x, y |
sub entercoords { |
sub entercoords { |
my ($idx,,$idy,$mode,$width,$height) = @_; |
my ($idx,$idy,$mode,$width,$height) = @_; |
unless ($Apache::edit::bgimgsrc) { return ''; } |
unless ($Apache::edit::bgimgsrc) { return ''; } |
if ($idx) { $idx.='_'; } |
if ($idx) { $idx.='_'; } |
if ($idy) { $idy.='_'; } |
if ($idy) { $idy.='_'; } |
my $bgfile=&Apache::lonnet::escape($Apache::edit::bgimgsrc); |
my $bgfile=&Apache::lonnet::escape(&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$Apache::edit::bgimgsrc)); |
my $form = 'lonhomework'; |
my $form = 'lonhomework'; |
my $element; |
my $element; |
if (! defined($mode) || $mode eq 'attribute') { |
if (! defined($mode) || $mode eq 'attribute') { |
Line 713 sub entercoords {
|
Line 746 sub entercoords {
|
$element = &Apache::lonnet::escape('homework_edit_'. |
$element = &Apache::lonnet::escape('homework_edit_'. |
$Apache::lonxml::curdepth); |
$Apache::lonxml::curdepth); |
} |
} |
my $formheight=''; |
my $id=$Apache::lonxml::curdepth; |
|
my %data=("imagechoice.$id.type" =>'point', |
|
"imagechoice.$id.formname" =>$form, |
|
"imagechoice.$id.formx" =>"$idx$element", |
|
"imagechoice.$id.formy" =>"$idy$element", |
|
"imagechoice.$id.file" =>$bgfile, |
|
"imagechoice.$id.formcoord" =>$element); |
if ($height) { |
if ($height) { |
$formheight='&formheight='.$height.'_'.$Apache::edit::bgimgsrccurdepth; |
$data{"imagechoice.$id.formheight"}=$height.'_'. |
|
$Apache::edit::bgimgsrccurdepth; |
} |
} |
my $formwidth=''; |
|
if ($width) { |
if ($width) { |
$formwidth='&formwidth='.$width.'_'.$Apache::edit::bgimgsrccurdepth; |
$data{"imagechoice.$id.formwidth"}=$width.'_'. |
|
$Apache::edit::bgimgsrccurdepth; |
} |
} |
my $result = <<"ENDBUTTON"; |
&Apache::lonnet::appenv(%data); |
<a href="/cgi-bin/imagechoice.pl?formname=$form&file=$bgfile&formx=$idx$element&formy=$idy$element$formheight$formwidth" |
my $text="Click Coordinates"; |
target="imagechoice">Click Coordinates</a> |
my $result='<a href="/adm/imagechoice?token='.$id.'" target="imagechoice">'.$text.'</a>'; |
ENDBUTTON |
|
return $result; |
return $result; |
} |
} |
|
|
Line 734 sub entercoord {
|
Line 773 sub entercoord {
|
my ($idx,$mode,$width,$height,$type) = @_; |
my ($idx,$mode,$width,$height,$type) = @_; |
unless ($Apache::edit::bgimgsrc) { return ''; } |
unless ($Apache::edit::bgimgsrc) { return ''; } |
my $bgfile=&Apache::lonnet::escape(&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$Apache::edit::bgimgsrc)); |
my $bgfile=&Apache::lonnet::escape(&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$Apache::edit::bgimgsrc)); |
&Apache::lonnet::logthis($Apache::edit::bgfile); |
|
my $form = 'lonhomework'; |
my $form = 'lonhomework'; |
my $element; |
my $element; |
if (! defined($mode) || $mode eq 'attribute') { |
if (! defined($mode) || $mode eq 'attribute') { |