Diff for /loncom/homework/edit.pm between versions 1.41 and 1.57

version 1.41, 2002/11/11 22:37:23 version 1.57, 2003/06/30 20:41:35
Line 40  use HTML::Entities(); Line 40  use HTML::Entities();
 # depth of nesting of edit  # depth of nesting of edit
 $Apache::edit::colordepth=0;  $Apache::edit::colordepth=0;
 @Apache::edit::inserttag=();  @Apache::edit::inserttag=();
   # image-type responses: active background image and curdepth at definition
   $Apache::edit::bgimgsrc='';
   $Apache::edit::bgimgsrccurdepth='';
   
 sub initialize_edit {  sub initialize_edit {
   $Apache::edit::colordepth=0;    $Apache::edit::colordepth=0;
Line 72  sub tag_end { Line 75  sub tag_end {
   my ($target,$token,$description) = @_;    my ($target,$token,$description) = @_;
   my $result='';    my $result='';
   if ($target eq 'edit') {    if ($target eq 'edit') {
     my $tag=$token->[1];      $result.="</td></tr>".&end_table()."\n";
     if (!defined($description)) {  
       $result.="</td></tr><tr><td>&lt;/$tag&gt;</td><td colspan=\"2\">&nbsp;</td>";  
     } else {  
       if ($description ne '') { $result.="</td></tr><tr><td>$description</td><td colspan=\"2\">&nbsp;</td>"; }  
     }  
     $result.="</tr>".&end_table()."\n";  
   }    }
   return $result;    return $result;
 }  }
Line 159  sub handle_delete { Line 156  sub handle_delete {
   }    }
   if (!$result) {    if (!$result) {
     my $endtag='/'.$token->[1];      my $endtag='/'.$token->[1];
     my $bodytext=&Apache::lonxml::get_all_text($endtag,$$parser[$#$parser]);      my $bodytext=&Apache::lonxml::get_all_text($endtag,$parser);
     $$parser['-1']->get_token();      $$parser['-1']->get_token();
     &Apache::lonxml::debug("Deleting :$bodytext: for $token->[1]");      &Apache::lonxml::debug("Deleting :$bodytext: for $token->[1]");
     &Apache::lonxml::end_tag($tagstack,$parstack,$token);      &Apache::lonxml::end_tag($tagstack,$parstack,$token);
Line 307  sub insert_essayresponse { Line 304  sub insert_essayresponse {
 </essayresponse>';  </essayresponse>';
 }  }
   
   sub insert_imageresponse {
     return '
   <imageresponse max="1">
       <foilgroup>
       </foilgroup>
       <hintgroup>
       </hintgroup>
   </imageresponse>';
   }
   
 sub insert_optionresponse {  sub insert_optionresponse {
   return '    return '
 <optionresponse max="10">  <optionresponse max="10">
Line 327  sub insert_radiobuttonresponse { Line 334  sub insert_radiobuttonresponse {
 </radiobuttonresponse>';  </radiobuttonresponse>';
 }  }
   
   sub insert_rankresponse {
     return '
   <rankresponse max="10">
       <foilgroup options="">
       </foilgroup>
       <hintgroup>
       </hintgroup>
   </rankresponse>';
   }
   
   sub insert_matchresponse {
     return '
   <matchresponse max="10">
       <foilgroup options="">
         <itemgroup>
         </itemgroup>
       </foilgroup>
       <hintgroup>
       </hintgroup>
   </matchresponse>';
   }
   
 sub insert_displayduedate { return '<displayduedate />'; }  sub insert_displayduedate { return '<displayduedate />'; }
 sub insert_displaytitle   { return '<displaytitle />'; }  sub insert_displaytitle   { return '<displaytitle />'; }
 sub insert_hintpart {  sub insert_hintpart {
Line 343  sub insert_numericalhint { Line 372  sub insert_numericalhint {
 </numericalhint>';  </numericalhint>';
 }  }
   
   sub insert_stringhint {
     return '
   <stringhint>
   </stringhint>';
   }
   
   sub insert_formulahint {
     return '
   <formulahint>
   </formulahint>';
   }
   
 sub insert_radiobuttonhint {  sub insert_radiobuttonhint {
   return '    return '
 <radiobuttonhint>  <radiobuttonhint>
 </radiobuttonhint>';  </radiobuttonhint>';
 }  }
   
   sub insert_optionhint {
     return '
   <optionhint>
   </optionhint>';
   }
   
 sub insert_startouttext {  sub insert_startouttext {
   return "<startouttext />\n<endouttext />";    return "<startouttext />\n<endouttext />";
 }  }
Line 361  sub textarea_sizes { Line 408  sub textarea_sizes {
   my ($data)=@_;    my ($data)=@_;
   my $count=0;    my $count=0;
   my $maxlength=-1;    my $maxlength=-1;
   foreach (split ("\n", $$data)) { $count++;    foreach (split ("\n", $$data)) {
  if (length($_) > $maxlength) { $maxlength = length($_); }        $count+=int(length($_)/79);
       }        $count++;
         if (length($_) > $maxlength) { $maxlength = length($_); }
     }
   my $rows = $count;    my $rows = $count;
   my $cols = $maxlength;    my $cols = $maxlength;
   return ($rows,$cols);    return ($rows,$cols);
Line 414  sub get_new_args { Line 463  sub get_new_args {
   foreach my $arg (@args) {    foreach my $arg (@args) {
     #just want the string that it was set to      #just want the string that it was set to
     my $value=$token->[2]->{$arg};      my $value=$token->[2]->{$arg};
     my $newvalue=$ENV{"form.$Apache::lonxml::curdepth.$arg"};      my $element=&html_element_name($arg);
       my $newvalue=$ENV{"form.$element"};
     &Apache::lonxml::debug(" for:$arg: cur is :$value: new is :$newvalue:");      &Apache::lonxml::debug(" for:$arg: cur is :$value: new is :$newvalue:");
     if ($value ne $newvalue) {      if (defined($newvalue) && $value ne $newvalue) {
       $token->[2]->{$arg}=$newvalue;        $token->[2]->{$arg}=$newvalue;
       $rebuild=1;        $rebuild=1;
     }      }
Line 447  sub rebuild_tag { Line 497  sub rebuild_tag {
   return $result;    return $result;
 }  }
   
   sub html_element_name {
       my ($name) = @_;
       return $name.'_'.$Apache::lonxml::curdepth;
   }
   
   sub hidden_arg {
       my ($name,$token) = @_;
       my $result;
       my $arg=$token->[2]{$name};
       $result='<input name="'.&html_element_name($name).
    '" type="hidden" value="'.$arg.'" />';
       return $result;
   }
   
 sub text_arg {  sub text_arg {
   my ($description,$name,$token,$size) = @_;    my ($description,$name,$token,$size) = @_;
   my $result;    my $result;
   if (!defined $size) { $size=20; }    if (!defined $size) { $size=20; }
   my $arg=$token->[2]{$name};    my $arg=$token->[2]{$name};
   $result=$description.'<input name="'."$Apache::lonxml::curdepth.$name".    $result=$description.'&nbsp;<input name="'.&html_element_name($name).
     '" type="text" value="'.$arg.'" size="'.$size.'" />';      '" type="text" value="'.$arg.'" size="'.$size.'" />';
   return $result;    return '<nobr>'.$result.'</nobr>';
 }  }
   
 sub select_arg {  sub select_arg {
Line 476  sub select_arg { Line 540  sub select_arg {
     $optionlist.="<option $value >$option</option>\n";      $optionlist.="<option $value >$option</option>\n";
  }   }
     }      }
     $result.=$description.'<select name="'.      $result.='<nobr>'.$description.'&nbsp;<select name="'.
  "$Apache::lonxml::curdepth.$name".'">   &html_element_name($name).'">
        '.$optionlist.'         '.$optionlist.'
       </select>';        </select></nobr>';
     return $result;      return $result;
 }  }
   
Line 506  sub select_or_text_arg { Line 570  sub select_or_text_arg {
     }      }
     $optionlist.="<option value=\"TYPEDINVALUE\">Type in value</option>\n";      $optionlist.="<option value=\"TYPEDINVALUE\">Type in value</option>\n";
     if (($found) || (!$selected)) {      if (($found) || (!$selected)) {
  $result.=$description.'<select name="'."$Apache::lonxml::curdepth.$name".'">   $result.=$description.'&nbsp;<select name="'.&html_element_name($name)
               .'">
        '.$optionlist.'         '.$optionlist.'
       </select>';        </select>';
     } else {      } else {
  $result.=&text_arg($description,$name,$token,$size);   $result.=&text_arg($description,$name,$token,$size);
     }      }
       return '<nobr>'.$result.'</nobr>';
   }
   
   #----------------------------------------------------- image coordinates
   # single image coordinates, x, y 
   sub entercoords {
       my ($idx,,$idy,$mode,$width,$height) = @_;
       unless ($Apache::edit::bgimgsrc) { return ''; }
       if ($idx) { $idx.='_'; }
       if ($idy) { $idy.='_'; }
       my $bgfile=&Apache::lonnet::escape($Apache::edit::bgimgsrc);
       my $form    = 'lonhomework';
       my $element;
       if (! defined($mode) || $mode eq 'attribute') {
           $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth");
       } elsif ($mode eq 'textnode') {  # for data between <tag> ... </tag>
           $element = &Apache::lonnet::escape('homework_edit_'.
                                              $Apache::lonxml::curdepth);
       }
       my $formheight='';
       if ($height) {
    $formheight='&formheight='.$height.'_'.$Apache::edit::bgimgsrccurdepth;
       }
       my $formwidth='';
       if ($width) {
    $formwidth='&formwidth='.$width.'_'.$Apache::edit::bgimgsrccurdepth;
       }
       my $result = <<"ENDBUTTON";
   <a href="/cgi-bin/imagechoice.pl?formname=$form&file=$bgfile&formx=$idx$element&formy=$idy$element$formheight$formwidth"
   target="imagechoice">Click Coordinates</a>
   ENDBUTTON
     return $result;      return $result;
 }  }
   
   # coordinate pair (x1,y1)-(x2,y2)
   sub entercoordpair {
       my ($id,$mode,$width,$height) = @_;
       unless ($Apache::edit::bgimgsrc) { return ''; }
       my $bgfile=&Apache::lonnet::escape($Apache::edit::bgimgsrc);
       my $form    = 'lonhomework';
       my $element;
       if (! defined($mode) || $mode eq 'attribute') {
           $element = &Apache::lonnet::escape("$id\_$Apache::lonxml::curdepth");
       } elsif ($mode eq 'textnode') {  # for data between <tag> ... </tag>
           $element = &Apache::lonnet::escape('homework_edit_'.
                                              $Apache::lonxml::curdepth);
       }
       my $formheight='';
       if ($height) {
    $formheight='&formheight='.$height.'_'.$Apache::edit::bgimgsrccurdepth;
       }
       my $formwidth='';
       if ($width) {
    $formwidth='&formwidth='.$width.'_'.$Apache::edit::bgimgsrccurdepth;
       }
       my $result = <<"ENDBUTTON";
   <a href="/cgi-bin/imagechoice.pl?mode=pair&formname=$form&file=$bgfile$formheight$formwidth&formcoord=$element"
   target="imagechoice">Click Coordinate Pair</a>
   ENDBUTTON
       return $result;
   }
 #----------------------------------------------------- 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)
     $_ = shift;      my ($id, $mode) = @_;
     my $form    = 'lonhomework';      my $form    = 'lonhomework';
     my $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth.$_");      my $element;
       if (! defined($mode) || $mode eq 'attribute') {
           $element = &Apache::lonnet::escape("$id\_$Apache::lonxml::curdepth");
       } elsif ($mode eq 'textnode') {  # for data between <tag> ... </tag>
           $element = &Apache::lonnet::escape('homework_edit_'.
                                              $Apache::lonxml::curdepth);
       }
     my $result = <<"ENDBUTTON";      my $result = <<"ENDBUTTON";
 <a href=\"javascript:openbrowser('$form','$element')\"\>Browse</a>  <a href=\"javascript:openbrowser('$form','$element')\"\>Select</a>
 ENDBUTTON  ENDBUTTON
     return $result;      return $result;
 }  }
Line 530  ENDBUTTON Line 659  ENDBUTTON
 #----------------------------------------------------- browse  #----------------------------------------------------- browse
 sub search {  sub search {
     # insert a link to call up the filesystem browser (lonindexer)      # insert a link to call up the filesystem browser (lonindexer)
     $_ = shift;      my ($id, $mode) = @_;
     my $form    = 'lonhomework';      my $form    = 'lonhomework';
     my $element = &Apache::lonnet::escape("$Apache::lonxml::curdepth.$_");      my $element;
       if (! defined($mode) || $mode eq 'attribute') {
           $element = &Apache::lonnet::escape("$id\_$Apache::lonxml::curdepth");
       } elsif ($mode eq 'textnode') {  # for data between <tag> ... </tag>
           $element = &Apache::lonnet::escape('homework_edit_'.
                                              $Apache::lonxml::curdepth);
       }
     my $result = <<"ENDBUTTON";      my $result = <<"ENDBUTTON";
 <a href=\"javascript:opensearcher('$form','$element')\"\>Search</a>  <a href=\"javascript:opensearcher('$form','$element')\"\>Search</a>
 ENDBUTTON  ENDBUTTON

Removed from v.1.41  
changed lines
  Added in v.1.57


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.