Diff for /loncom/homework/response.pm between versions 1.81 and 1.83

version 1.81, 2003/07/14 18:41:40 version 1.83, 2003/08/11 19:56:45
Line 93  sub setrandomnumber { Line 93  sub setrandomnumber {
        $rndmod+=&Apache::lonnet::numval($Apache::inputtags::response[-1]);         $rndmod+=&Apache::lonnet::numval($Apache::inputtags::response[-1]);
     }      }
     if ($rndseed =~/,/) {      if ($rndseed =~/,/) {
  my ($num1,$num2)=split(/,/,$rndseed);   {
  $num1+=$rndmod;      use integer;
  $num2+=$rndmod;      my ($num1,$num2)=split(/,/,$rndseed);
  $rndseed="$num1,$num2";      $num1+=$rndmod;
       $num2+=$rndmod;
       $rndseed="$num1,$num2";
    }
     } else {      } else {
  $rndseed+=$rndmod;   $rndseed+=$rndmod;
     }      }
Line 275  sub end_dataresponse { Line 278  sub end_dataresponse {
     return $result;      return $result;
 }  }
   
   sub decide_package {
       my ($tagstack)=@_;
       my $package;
       if ($$tagstack[-1] eq 'parameter') {
    $package='part';
       } else {
    my $i=-1;
    while (defined($$tagstack[$i])) {
       if ($$tagstack[$i] =~ /(response|hint)$/) {
    $package=$$tagstack[$i];
    last;
       }
       $i--;
    }
       }
       return $package;
   }
   
 sub start_responseparam {  sub start_responseparam {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result='';      my $result='';
Line 285  sub start_responseparam { Line 306  sub start_responseparam {
  $token->[2]->{'description'});   $token->[2]->{'description'});
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result.=&Apache::edit::tag_start($target,$token);   $result.=&Apache::edit::tag_start($target,$token);
    my $optionlist;
    my $package=&decide_package($tagstack);
    foreach my $key (sort(keys(%Apache::lonnet::packagetab))) {
       if ($key =~ /^\Q$package\E&(.*)&display$/) {
    $optionlist.='<option value="'.$1.'">'.
       $Apache::lonnet::packagetab{$key}.'</option>';
       }
    }
    if (defined($optionlist)) {
       $result.='Use template: <select name="'.
    &Apache::edit::html_element_name('parameter_package').'">'.
       '<option value=""></option>'.$optionlist.'</select><br />';
    }
  $result.=&Apache::edit::text_arg('Name:','name',$token).   $result.=&Apache::edit::text_arg('Name:','name',$token).
     &Apache::edit::text_arg('Type:','type',$token).      &Apache::edit::text_arg('Type:','type',$token).
  &Apache::edit::text_arg('Description:','description',$token).   &Apache::edit::text_arg('Description:','description',$token).
Line 292  sub start_responseparam { Line 326  sub start_responseparam {
  "</td></tr>";   "</td></tr>";
  $result.=&Apache::edit::end_table;   $result.=&Apache::edit::end_table;
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  my $constructtag=&Apache::edit::get_new_args($token,$parstack,$safeeval,   my $constructtag=&Apache::edit::get_new_args($token,$parstack,
      'name','type','description',       $safeeval,'name','type',
      'default');       'description','default');
    my $element=&Apache::edit::html_element_name('parameter_package');
    if (defined($ENV{"form.$element"}) && $ENV{"form.$element"} ne '') {
       my $name=$ENV{"form.$element"};
       my $tag=&decide_package($tagstack);
       $token->[2]->{'name'}=$name;
       $token->[2]->{'type'}=
    $Apache::lonnet::packagetab{"$tag&$name&type"};
       $token->[2]->{'description'}=
    $Apache::lonnet::packagetab{"$tag&$name&display"};
       $token->[2]->{'default'}=
    $Apache::lonnet::packagetab{"$tag&$name&default"};
       $constructtag=1;
    }
  if ($constructtag) {   if ($constructtag) {
     $result = &Apache::edit::rebuild_tag($token);      $result = &Apache::edit::rebuild_tag($token);
     $result.=&Apache::edit::handle_insert();      $result.=&Apache::edit::handle_insert();

Removed from v.1.81  
changed lines
  Added in v.1.83


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