--- loncom/homework/edit.pm 2010/01/31 00:47:41 1.123.4.1 +++ loncom/homework/edit.pm 2012/02/13 11:23:11 1.140 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # edit mode helpers # -# $Id: edit.pm,v 1.123.4.1 2010/01/31 00:47:41 raeburn Exp $ +# $Id: edit.pm,v 1.140 2012/02/13 11:23:11 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -204,7 +204,7 @@ sub start_table { $Apache::edit::colordepth++; push(@Apache::edit::inserttag,$token->[1]); my $result='<div align="right">'; - $result.='<table bgcolor="'.$color.'" width="97%" border="0" cellspacing="5" cellpadding="3">'; + $result.='<table bgcolor="'.$color.'" width="97%" border="0" cellspacing="3" cellpadding="2">'; return $result; } @@ -232,7 +232,7 @@ sub end_table { return $result; } -sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#DDDDDD">';} +sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#F0F0F0">';} sub start_row { return '<tr><td bgcolor="#DDDDDD">'; } sub end_row { return '</td></tr>'; } @@ -357,7 +357,7 @@ sub do_insert { my $depth = scalar(@Apache::lonxml::depthcounter); $depth -- if ($after); my $inset = "\t"x$depth; - $result.="\n$inset<$newtag>\n$inset</$newtag>"; + $result.="\n$inset<$newtag></$newtag>"; } else { if (defined(&$func)) { { @@ -397,6 +397,79 @@ sub insert_formularesponse { </formularesponse>'; } +sub insert_functionplotresponse { + return ' +<functionplotresponse> +<functionplotelements> +</functionplotelements> +<functionplotruleset> +</functionplotruleset> +</functionplotresponse>'; +} + +sub insert_spline { + return ' +<spline />'; +} + +sub insert_backgroundplot { + return ' +<backgroundplot />'; +} + +sub insert_plotobject { + return ' +<plotobject />'; +} + +sub insert_plotvector { + return ' +<plotvector />'; +} + +sub insert_functionplotrule { + return ' +<functionplotrule />'; +} + +sub insert_functionplotvectorrule { + return ' +<functionplotvectorrule />'; +} + +sub insert_functionplotvectorsumrule { + return ' +<functionplotvectorsumrule />'; +} + +sub insert_functionplotcustomrule { + return ' +<functionplotcustomrule> +<answer type="loncapa/perl"> +# &fpr_val("label"), &fpr_f($x), &fpr_dfdx($x), &fpr_d2fdx2($x) +# ($xs,$xe,$ys,$ye)=&fpr_vectorcoords("Name"), ($x,$y)=&fpr_objectcoords("Name") +# &fpr_vectorlength("Name"), &fpr_vectorangle("Name") + +# Return 0 or 1 +return 1; +</answer> +</functionplotcustomrule>'; +} + +sub insert_functionplotruleset { + return ' +<functionplotruleset> +<functionplotrule /> +</functionplotruleset>'; +} + +sub insert_functionplotelements { + return ' +<functionplotelements> +<spline /> +</functionplotelements>'; +} + sub insert_numericalresponse { return ' <numericalresponse answer=""> @@ -592,6 +665,9 @@ sub insert_matchresponse { </matchresponse>'; } +sub insert_startpartmarker { return '<startpartmarker />'; } +sub insert_endpartmarker { return '<endpartmarker />'; } + sub insert_displayduedate { return '<displayduedate />'; } sub insert_displaytitle { return '<displaytitle />'; } sub insert_hintpart { @@ -697,6 +773,12 @@ sub submit_ask_anyway { return ' onclick="still_ask=true;'.$extra_action.'" '; } +sub submit_dont_ask { + my ($extra_action) = @_; + return ' onclick="is_submit=true;'.$extra_action.'" '; +} + + sub textarea_sizes { my ($data)=@_; my $count=0; @@ -728,27 +810,27 @@ sub editfield { my ($tag,$data,$description,$minwidth,$minheight,$usehtmlarea)=@_; my ($rows,$cols)=&textarea_sizes(\$data); - if (&Apache::lonhtmlcommon::htmlareabrowser() && - !&Apache::lonhtmlcommon::htmlareablocked()) { + my $textareaclass; + + if (&Apache::lonhtmlcommon::htmlareabrowser() && $usehtmlarea) { $rows+=7; # make room for HTMLarea $minheight+=7; # make room for HTMLarea + $textareaclass = ' class="LC_richDefaultOff"'; } if ($cols > 80) { $cols = 80; } if ($cols < $minwidth ) { $cols = $minwidth; } if ($rows < $minheight) { $rows = $minheight; } if ($description) { $description=$description."<br />"; } - if ($usehtmlarea) { - &Apache::lonhtmlcommon::add_htmlareafields('homework_edit_'. - $Apache::lonxml::curdepth); - } + # remove typesetting whitespace from between data and the end tag # to make the edit look prettier $data =~ s/\n?[ \t]*$//; - return $description."\n".'<textarea style="width:100%" rows="'.$rows. + return $description."\n".'<textarea style="width:99%" rows="'.$rows. '" cols="'.$cols.'" name="homework_edit_'. $Apache::lonxml::curdepth.'" id="homework_edit_'. - $Apache::lonxml::curdepth.'" '.&element_change_detection().'>'. + $Apache::lonxml::curdepth.'" '.&element_change_detection(). + $textareaclass.'>'. &HTML::Entities::encode($data,'<>&"').'</textarea>'. ($usehtmlarea?&Apache::lonhtmlcommon::spelllink('lonhomework', 'homework_edit_'.$Apache::lonxml::curdepth):'')."\n"; @@ -870,13 +952,16 @@ sub checked_arg { } sub text_arg { - my ($description,$name,$token,$size) = @_; + my ($description,$name,$token,$size, $class) = @_; my $result; if (!defined $size) { $size=20; } my $arg=$token->[2]{$name}; $result=&mt($description).' <input name="'.&html_element_name($name). - '" type="text" value="'.$arg.'" size="'.$size.'" '. - &element_change_detection().'/>'; + '" type="text" value="'.$arg.'" size="'.$size.'" '; + if (defined $class) { + $result .= 'class="' . $class . '" '; + } + $result .= &element_change_detection().'/>'; return '<span class="LC_nobreak">'.$result.'</span>'; }