Diff for /loncom/homework/edit.pm between versions 1.59 and 1.61

version 1.59, 2003/08/04 22:07:29 version 1.61, 2003/09/08 21:10:53
Line 465  sub modifiedfield { Line 465  sub modifiedfield {
 # Returns a 1 if the token has been modified and you should rebuild the tag  # Returns a 1 if the token has been modified and you should rebuild the tag
 # side-effects, will modify the $token if new values are found  # side-effects, will modify the $token if new values are found
 sub get_new_args {  sub get_new_args {
   my ($token,$parstack,$safeeval,@args)=@_;      my ($token,$parstack,$safeeval,@args)=@_;
   my $rebuild=0;      my $rebuild=0;
   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 $element=&html_element_name($arg);      my $element=&html_element_name($arg);
     my $newvalue=$ENV{"form.$element"};      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 (defined($newvalue) && $value ne $newvalue) {      if (defined($newvalue) && $value ne $newvalue) {
       $token->[2]->{$arg}=$newvalue;   if (ref($newvalue) eq 'ARRAY') {
       $rebuild=1;      $token->[2]->{$arg}=join(',',@$newvalue);
    } else {
       $token->[2]->{$arg}=$newvalue;
    }
    $rebuild=1;
     }      }
   }    }
   return $rebuild;    return $rebuild;
Line 518  sub hidden_arg { Line 522  sub hidden_arg {
     return $result;      return $result;
 }  }
   
   sub checked_arg {
       my ($description,$name,$list,$token) = @_;
       my $result;
       my $optionlist="";
       my $allselected=$token->[2]{$name};
       $result=$description;
       foreach my $option (@$list) {
    my ($value,$text);
    if ( ref($option) eq 'ARRAY') {
       $value='value="'.$$option[0].'"';
       $text=$$option[1];
       $option=$$option[0];
    } else {
       $text=$option;
       $value='value="'.$option.'"';
    }
    $result.="<nobr><input type='checkbox' $value name='".
       &html_element_name($name)."'";
    foreach my $selected (split(/,/,$allselected)) {
       &Apache::lonxml::error("wha $selected $option<br />");
       if ( $selected eq $option ) {
    $result.=" checked='on' ";
    last;
       }
    }
    $result.=" />$text</nobr>\n";
       }
       return $result;
   }
   
 sub text_arg {  sub text_arg {
   my ($description,$name,$token,$size) = @_;    my ($description,$name,$token,$size) = @_;
   my $result;    my $result;
Line 575  sub select_or_text_arg { Line 609  sub select_or_text_arg {
     $optionlist.="<option $value>$option</option>\n";      $optionlist.="<option $value>$option</option>\n";
  }   }
     }      }
     $optionlist.="<option value=\"TYPEDINVALUE\">Type in value</option>\n";      $optionlist.="<option value=\"TYPEDINVALUE\"".
     if (($found) || (!$selected)) {    ((!$found)?' selected="on"':'').
  $result.=$description.'&nbsp;<select name="'.&html_element_name($name)    ">Type in value</option>\n";
             .'">  #
        '.$optionlist.'      my $element=&html_element_name($name);
       </select>';      my $selectelement='select_list_'.$element;
     } else {      my $typeinelement='type_in_'.$element;
  $result.=&text_arg($description,$name,$token,$size);      my $typeinvalue=($found?'':$selected);
     }  #
     return '<nobr>'.$result.'</nobr>';      my $hiddenvalue='this.form.'.$element.'.value';
       my $selectedindex='this.form.'.$selectelement.'.selectedIndex';
       my $selectedvalue='this.form.'.$selectelement.
        '.options['.$selectedindex.'].value';
       my $typedinvalue='this.form.'.$typeinelement.'.value';
       my $selecttypeinindex='this.form.'.$selectelement.'.options.length';
   #
       return (<<ENDSELECTORTYPE);
   <nobr>
   $description
   &nbsp;<select name="$selectelement"
   onChange="if ($selectedvalue!='TYPEDINVALUE') { $hiddenvalue=$selectedvalue; $typedinvalue=''; }"
   $optionlist
   </select>
   <input type="text" size="$size" name="$typeinelement"
          value="$typeinvalue" 
   onChange="$hiddenvalue=$typedinvalue;"
   onFocus="$selectedindex=$selecttypeinindex-1;" />
   <input type="hidden" name="$element" value="$selected" />
   </nobr>
   ENDSELECTORTYPE
 }  }
   
 #----------------------------------------------------- image coordinates  #----------------------------------------------------- image coordinates

Removed from v.1.59  
changed lines
  Added in v.1.61


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