--- loncom/homework/edit.pm	2007/06/19 20:24:42	1.108
+++ 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.108 2007/06/19 20:24:42 banghart 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)."<tr><td>$description</td>
-                      <td>Delete".
+                      <td>".&mt('Delete?').' '.
 		      &deletelist($target,$token)
 		      ."</td>
                        <td>".
@@ -128,7 +128,7 @@ sub end_table {
     return $result;
 }
 
-sub start_spanning_row { return '<tr><td colspan="4" bgcolor="#DDDDDD">';}
+sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#DDDDDD">';}
 sub start_row          { return '<tr><td bgcolor="#DDDDDD">';            }
 sub end_row            { return '</td></tr>';          }
 
@@ -145,7 +145,7 @@ sub deletelist {
     my ($target,$token) = @_;
     my $result = "<select name=\"delete_$Apache::lonxml::curdepth\">
 <option></option>
-<option>Yes</option>
+<option>".&mt('yes')."</option>
 </select>";
     return $result;
 }
@@ -215,7 +215,7 @@ sub innerinsertlist {
     if ($target eq 'edit') {
 	my $optionlist= &get_insert_list($tagname);
 	if ($optionlist) {
-	    $result = "Insert:
+	    $result = &mt('Insert:')."
             <select name=\"insert$after\_$Apache::lonxml::curdepth\">
                   $optionlist
             </select>"
@@ -577,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 {
@@ -597,7 +598,7 @@ sub textarea_sizes {
 sub editline {
     my ($tag,$data,$description,$size)=@_;
     $data=&HTML::Entities::encode($data,'<>&"');
-    if ($description) { $description="<br />".$description."<br />"; }
+    if ($description) { $description=$description."<br />"; }
     my $change_code = &element_change_detection();
     my $result = <<"END";
 $description
@@ -619,7 +620,7 @@ sub editfield {
     if ($cols > 80) { $cols = 80; }
     if ($cols < $minwidth ) { $cols = $minwidth; }
     if ($rows < $minheight) { $rows = $minheight; }
-    if ($description) { $description="<br />".$description."<br />"; }
+    if ($description) { $description=$description."<br />"; }
     if ($usehtmlarea) {
 	&Apache::lonhtmlcommon::add_htmlareafields('homework_edit_'.
 						   $Apache::lonxml::curdepth);
@@ -672,6 +673,10 @@ sub get_new_args {
 		$token->[2]->{$arg}=$newvalue;
 	    }
 	    $rebuild=1;
+	    # add new attributes to the of the attribute seq
+	    if (!grep { $arg eq $_ } (@{ $token->[3] })) {
+		push(@{ $token->[3] },$arg);
+	    }
 	} elsif (!defined($newvalue) && defined($value)) {
 	    delete($token->[2]->{$arg});
 	    $rebuild=1;
@@ -686,11 +691,13 @@ sub rebuild_tag {
     my $result;
     if ($token->[0] eq 'S') {
 	$result = '<'.$token->[1];
-	while (my ($key,$val)= each(%{$token->[2]})) {
-	    $val=~s:^\s+|\s+$::g;
-	    $val=~s:"::g; #"
-	    &Apache::lonxml::debug("setting :$key: to  :$val:");
-	    $result.=' '.$key.'="'.$val.'"';
+	foreach my $attribute (@{ $token->[3] }) {
+	    my $value = $token->[2]{$attribute};
+	    next if ($value eq '');
+	    $value =~s/^\s+|\s+$//g;
+	    $value =~s/\"//g;
+	    &Apache::lonxml::debug("setting :$attribute: to  :$value:");
+	    $result.=' '.$attribute.'="'.$value.'"';
 	}
 	if ($token->[4] =~ m:/>$:) {
 	    $result.=' />';
@@ -733,11 +740,11 @@ sub checked_arg {
 	    $text=$option;
 	    $value='value="'.$option.'"';
 	}
-	$result.="<nobr><label><input type='checkbox' $value name='".
-	    &html_element_name($name)."'";
+	$result.="<nobr><label><input type=\"checkbox\" $value name=\"".
+	    &html_element_name($name)."\"";
 	foreach my $selected (split(/,/,$allselected)) {
 	    if ( $selected eq $option ) {
-		$result.=" checked='checked' ";
+		$result.=" checked=\"checked\" ";
 		last;
 	    }
 	}
@@ -773,12 +780,12 @@ sub select_arg {
 	    $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';
 	}
 	if ( $selected eq $option ) {
-	    $optionlist.="<option $value selected=\"selected\">$text</option>\n";
+	    $optionlist.="<option $value selected=\"selected\">".&mt($text)."</option>\n";
 	} else {
-	    $optionlist.="<option $value >$text</option>\n";
+	    $optionlist.="<option $value >".&mt($text)."</option>\n";
 	}
     }
-    $result.='<nobr>'.$description.'&nbsp;<select name="'.
+    $result.='<nobr>'.&mt($description).'&nbsp;<select name="'.
 	&html_element_name($name).'" '.&element_change_detection().' >
        '.$optionlist.'
       </select></nobr>';
@@ -873,7 +880,7 @@ sub entercoords {
 	$data{"imagechoice.$id.formwidth"}=$width.'_'.
 	    $Apache::edit::bgimgsrccurdepth;
     }
-    &Apache::lonnet::appenv(%data);
+    &Apache::lonnet::appenv(\%data);
     my $text="Click Coordinates";
     my $result='<a href="/adm/imagechoice?token='.$id.'" target="imagechoice">'.$text.'</a>';
     return $result;
@@ -906,7 +913,7 @@ sub entercoord {
 	$data{"imagechoice.$id.formwidth"}=$width.'_'.
 	    $Apache::edit::bgimgsrccurdepth;
     }
-    &Apache::lonnet::appenv(%data);
+    &Apache::lonnet::appenv(\%data);
     my $text="Enter Coordinates";
     if ($type eq 'polygon') { $text='Create Polygon Data'; }
     my $result='<a href="/adm/imagechoice?token='.$id.'" target="imagechoice">'.$text.'</a>';