--- loncom/homework/edit.pm 2007/01/29 23:51:19 1.104 +++ loncom/homework/edit.pm 2008/10/24 16:22:54 1.116 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # edit mode helpers # -# $Id: edit.pm,v 1.104 2007/01/29 23:51:19 albertel Exp $ +# $Id: edit.pm,v 1.116 2008/10/24 16:22:54 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,7 +61,7 @@ sub tag_start { if (!$description) { $description="<$tag>"; } } $result.= &start_table($token)."$description - Delete". + ".&mt('Delete?').' '. &deletelist($target,$token) ." ". @@ -112,17 +112,23 @@ sub end_table { my ($tagname,$closingtag); if (defined($Apache::edit::inserttag[-2])) { $tagname=$Apache::edit::inserttag[-2]; - } else {$tagname='problem';} + } else { + if ($Apache::lonhomework::parsing_a_task) { + $tagname='Task'; + } else { + $tagname='problem'; + } + } if (defined($Apache::edit::inserttag[-1])) { $closingtag=$Apache::edit::inserttag[-1]; } $result.=&innerinsertlist('edit',$tagname,$closingtag). ""; - pop(@Apache::edit::inserttag); + my $last = pop(@Apache::edit::inserttag); return $result; } -sub start_spanning_row { return '';} +sub start_spanning_row { return '';} sub start_row { return ''; } sub end_row { return ''; } @@ -139,7 +145,7 @@ sub deletelist { my ($target,$token) = @_; my $result = ""; return $result; } @@ -209,7 +215,7 @@ sub innerinsertlist { if ($target eq 'edit') { my $optionlist= &get_insert_list($tagname); if ($optionlist) { - $result = "Insert: + $result = &mt('Insert:')." " @@ -232,11 +238,11 @@ sub handle_insertafter { return ''; } my $tagnum =$env{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"}; - return &do_insert($tagnum); + return &do_insert($tagnum,1); } sub do_insert { - my ($tagnum) = @_; + my ($tagnum,$after) = @_; my $result; my $newtag = $Apache::lonxml::insertlist{"$tagnum.tag"}; @@ -244,7 +250,10 @@ sub do_insert { if ($func eq 'default') { my $namespace; if ($newtag =~ /::/) { ($namespace,$newtag) = split(/::/,$newtag); } - $result.="\n<$newtag>\n"; + my $depth = scalar(@Apache::lonxml::depthcounter); + $depth -- if ($after); + my $inset = "\t"x$depth; + $result.="\n$inset<$newtag>\n$inset"; } else { if (defined(&$func)) { { @@ -315,6 +324,56 @@ sub insert_customresponse_answer { '; } +sub insert_customhint { + return ' + + + + '; +} + +sub insert_customhint_answer { + return ' + + +'; +} + +sub insert_mathresponse { + return ' + + + + + + + + +'; +} + +sub insert_mathresponse_answer { + return ' + + +'; +} + +sub insert_mathhint { + return ' + + + + '; +} + +sub insert_mathhint_answer { + return ' + + +'; +} + sub insert_stringresponse { return ' @@ -518,7 +577,8 @@ sub element_change_detection { } sub submit_ask_anyway { - return ' onclick="still_ask=true;" '; + my ($extra_action) = @_; + return ' onclick="still_ask=true;'.$extra_action.'" '; } sub textarea_sizes { @@ -538,7 +598,7 @@ sub textarea_sizes { sub editline { my ($tag,$data,$description,$size)=@_; $data=&HTML::Entities::encode($data,'<>&"'); - if ($description) { $description="
".$description."
"; } + if ($description) { $description=$description."
"; } my $change_code = &element_change_detection(); my $result = <<"END"; $description @@ -560,11 +620,15 @@ sub editfield { if ($cols > 80) { $cols = 80; } if ($cols < $minwidth ) { $cols = $minwidth; } if ($rows < $minheight) { $rows = $minheight; } - if ($description) { $description="
".$description."
"; } + if ($description) { $description=$description."
"; } 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".'