Diff for /loncom/homework/edit.pm between versions 1.104 and 1.112

version 1.104, 2007/01/29 23:51:19 version 1.112, 2007/10/03 00:24:48
Line 112  sub end_table { Line 112  sub end_table {
     my ($tagname,$closingtag);      my ($tagname,$closingtag);
     if (defined($Apache::edit::inserttag[-2])) {      if (defined($Apache::edit::inserttag[-2])) {
  $tagname=$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])) {      if (defined($Apache::edit::inserttag[-1])) {
  $closingtag=$Apache::edit::inserttag[-1];   $closingtag=$Apache::edit::inserttag[-1];
     }      }
     $result.=&innerinsertlist('edit',$tagname,$closingtag).      $result.=&innerinsertlist('edit',$tagname,$closingtag).
  "</td></tr></table></div>";   "</td></tr></table></div>";
     pop(@Apache::edit::inserttag);      my $last = pop(@Apache::edit::inserttag);
     return $result;      return $result;
 }  }
   
Line 232  sub handle_insertafter { Line 238  sub handle_insertafter {
  return '';   return '';
     }      }
     my $tagnum =$env{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"};      my $tagnum =$env{"form.insert_after_$tagname\_$Apache::lonxml::curdepth"};
     return &do_insert($tagnum);      return &do_insert($tagnum,1);
 }  }
   
 sub do_insert {  sub do_insert {
     my ($tagnum) = @_;      my ($tagnum,$after) = @_;
     my $result;      my $result;
   
     my $newtag = $Apache::lonxml::insertlist{"$tagnum.tag"};      my $newtag = $Apache::lonxml::insertlist{"$tagnum.tag"};
Line 244  sub do_insert { Line 250  sub do_insert {
     if ($func eq 'default') {      if ($func eq 'default') {
  my $namespace;   my $namespace;
  if ($newtag =~ /::/) { ($namespace,$newtag) = split(/::/,$newtag); }   if ($newtag =~ /::/) { ($namespace,$newtag) = split(/::/,$newtag); }
  $result.="\n<$newtag>\n</$newtag>";   my $depth = scalar(@Apache::lonxml::depthcounter);
    $depth -- if ($after);
    my $inset = "\t"x$depth;
    $result.="\n$inset<$newtag>\n$inset</$newtag>";
     } else {      } else {
  if (defined(&$func)) {   if (defined(&$func)) {
     {      {
Line 315  sub insert_customresponse_answer { Line 324  sub insert_customresponse_answer {
 ';  ';
 }  }
   
   sub insert_customhint {
       return '
           <customhint>
               <answer type="loncapa/perl">
               </answer>
           </customhint>';
   }
   
   sub insert_customhint_answer {
       return '
               <answer type="loncapa/perl">
               </answer>
   ';
   }
   
   sub insert_mathresponse {
       return '
   <mathresponse>
       <answer>
       </answer>
       <textline />
       <hintgroup>
           <startouttext />
           <endouttext />
       </hintgroup>
   </mathresponse>';
   }
   
   sub insert_mathresponse_answer {
       return '
       <answer>
       </answer>
   ';
   }
   
   sub insert_mathhint {
       return '
           <mathhint>
               <answer>
               </answer>
           </mathhint>';
   }
   
   sub insert_mathhint_answer {
       return '
               <answer>
               </answer>
   ';
   }
   
 sub insert_stringresponse {  sub insert_stringresponse {
     return '      return '
 <stringresponse answer="" type="">  <stringresponse answer="" type="">
Line 538  sub textarea_sizes { Line 597  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=$description."<br />"; }
     my $change_code = &element_change_detection();      my $change_code = &element_change_detection();
     my $result = <<"END";      my $result = <<"END";
 $description  $description
Line 560  sub editfield { Line 619  sub editfield {
     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=$description."<br />"; }
     if ($usehtmlarea) {      if ($usehtmlarea) {
  &Apache::lonhtmlcommon::add_htmlareafields('homework_edit_'.   &Apache::lonhtmlcommon::add_htmlareafields('homework_edit_'.
    $Apache::lonxml::curdepth);     $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:100%" rows="'.$rows.
  '" cols="'.$cols.'" name="homework_edit_'.   '" cols="'.$cols.'" name="homework_edit_'.
  $Apache::lonxml::curdepth.'" id="homework_edit_'.   $Apache::lonxml::curdepth.'" id="homework_edit_'.
Line 577  sub editfield { Line 640  sub editfield {
 sub modifiedfield {  sub modifiedfield {
     my ($endtag,$parser) = @_;      my ($endtag,$parser) = @_;
     my $result;      my $result;
 #  foreach my $envkey (sort keys %env) {  
 #    &Apache::lonxml::debug("$envkey ---- $env{$envkey}");  
 #  }  
 #  &Apache::lonxml::debug("I want homework_edit_$Apache::lonxml::curdepth");  
 #  &Apache::lonxml::debug($env{"form.homework_edit_$Apache::lonxml::curdepth"});  
     $result=$env{"form.homework_edit_$Apache::lonxml::curdepth"};      $result=$env{"form.homework_edit_$Apache::lonxml::curdepth"};
     my $bodytext=&Apache::lonxml::get_all_text($endtag,$parser);      my $bodytext=&Apache::lonxml::get_all_text($endtag,$parser);
     # textareas throw away intial \n       # textareas throw away intial \n 
     if ($bodytext=~/^\n/) { $result="\n".$result; }      if ($bodytext=~/^\n/) {
    $result="\n".$result;
       }
       # if there is typesetting whitespace from between the data and the end tag
       # restore to keep the source looking pretty
       if ($bodytext =~ /(\n?[ \t]*)$/) {
    $result .= $1;
       }
     return $result;      return $result;
 }  }
   
Line 607  sub get_new_args { Line 672  sub get_new_args {
  $token->[2]->{$arg}=$newvalue;   $token->[2]->{$arg}=$newvalue;
     }      }
     $rebuild=1;      $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)) {   } elsif (!defined($newvalue) && defined($value)) {
     delete($token->[2]->{$arg});      delete($token->[2]->{$arg});
     $rebuild=1;      $rebuild=1;
Line 621  sub rebuild_tag { Line 690  sub rebuild_tag {
     my $result;      my $result;
     if ($token->[0] eq 'S') {      if ($token->[0] eq 'S') {
  $result = '<'.$token->[1];   $result = '<'.$token->[1];
  while (my ($key,$val)= each(%{$token->[2]})) {   foreach my $attribute (@{ $token->[3] }) {
     $val=~s:^\s+|\s+$::g;      my $value = $token->[2]{$attribute};
     $val=~s:"::g; #"      next if ($value eq '');
     &Apache::lonxml::debug("setting :$key: to  :$val:");      $value =~s/^\s+|\s+$//g;
     $result.=' '.$key.'="'.$val.'"';      $value =~s/\"//g;
       &Apache::lonxml::debug("setting :$attribute: to  :$value:");
       $result.=' '.$attribute.'="'.$value.'"';
  }   }
  if ($token->[4] =~ m:/>$:) {   if ($token->[4] =~ m:/>$:) {
     $result.=' />';      $result.=' />';
Line 855  sub deletecoorddata { Line 926  sub deletecoorddata {
 #----------------------------------------------------- browse  #----------------------------------------------------- browse
 sub browse {  sub browse {
     # insert a link to call up the filesystem browser (lonindexer)      # insert a link to call up the filesystem browser (lonindexer)
     my ($id, $mode, $titleid) = @_;      my ($id, $mode, $titleid, $only) = @_;
     my $form    = 'lonhomework';      my $form    = 'lonhomework';
     my $element;      my $element;
     if (! defined($mode) || $mode eq 'attribute') {      if (! defined($mode) || $mode eq 'attribute') {
Line 866  sub browse { Line 937  sub browse {
     }      }
     my $titleelement;      my $titleelement;
     if ($titleid) {      if ($titleid) {
  $titleelement=",'','','".&escape("$titleid\_$Apache::lonxml::curdepth")."'";   $titleelement=",'$only','','".&escape("$titleid\_$Apache::lonxml::curdepth")."'";
       } else {
           $titleelement=",'$only'";
     }      }
     my $result = <<"ENDBUTTON";      my $result = <<"ENDBUTTON";
 <a href=\"javascript:openbrowser('$form','$element'$titleelement)\"\>Select</a>  <a href=\"javascript:openbrowser('$form','$element'$titleelement)\"\>Select</a>

Removed from v.1.104  
changed lines
  Added in v.1.112


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>