Diff for /loncom/homework/edit.pm between versions 1.117 and 1.124

version 1.117, 2008/11/10 14:11:16 version 1.124, 2009/10/16 17:23:51
Line 44  mode interfaces. Line 44  mode interfaces.
 This is part of the LearningOnline Network with CAPA project  This is part of the LearningOnline Network with CAPA project
 described at http://www.lon-capa.org.  described at http://www.lon-capa.org.
   
 =head1 HANDLER SUBROUTINE  =head1 SUBROUTINES
   
 There is no handler subroutine.  
   
 =head1 OTHER SUBROUTINES  
   
 =over 4  =over 4
   
 =item *  =item initialize_edit() 
   
 initialize_edit() : initialize edit (set colordepth to zero)  initialize edit (set colordepth to zero)
   
 =item *  =item tag_start($target,$token,$description)
   
 tag_start($target,$token,$description) : provide deletion and insertion lists  provide deletion and insertion lists
 for the manipulation of a start tag; return a scalar string  for the manipulation of a start tag; return a scalar string
   
 =item *  =item tag_end($target,$token,$description)
   
 tag_end($target,$token,$description) : ending syntax corresponding to  ending syntax corresponding to
 &tag_start. return a scalar string.  &tag_start. return a scalar string.
   
 =item *  =item  start_table($token)
   
 start_table($token) : start table; update colordepth; return scalar string.  start table; update colordepth; return scalar string.
   
 =item *  =item end_table()
   
 end_table() : reduce color depth; end table; return scalar string  reduce color depth; end table; return scalar string
   
 =item *  =item start_spanning_row()
   
 start_spanning_row() : start a new table row spanning the 'edit' environment.  start a new table row spanning the 'edit' environment.
   
 =item *  =item start_row()
   
 start_row() : start a new table row and element.   start a new table row and element. 
   
 =item *  =item end_row() 
   
 end_row() : end current table element and row.  end current table element and row.
   
 =item *  =item movebuttons($target,$token)
   
 movebuttons($target,$token) : move-up and move-down buttons; return scalar  move-up and move-down buttons; return scalar string
 string  
   
 =item *  =item deletelist($target,$token)
   
 deletelist($target,$token) : provide a yes option in an HTML select element;  provide a yes option in an HTML select element; return scalar string
 return scalar string  
   
 =item *  =item handle_delete($space,$target,$token,$tagstack,$parstack,$parser,$safeeval,
   $style)
   
 handle_delete($space,$target,$token,$tagstack,$parstack,$parser,$safeeval,  respond to a user delete request by passing relevant stack
 $style) : respond to a user delete request by passing relevant stack  
 and array information to various rendering functions; return a scalar string  and array information to various rendering functions; return a scalar string
   
 =item *  =item get_insert_list($token)
   
 get_insert_list($token) : provide an insertion list based on possibilities  provide an insertion list based on possibilities from lonxml; return a scalar string
 from lonxml; return a scalar string  
   
 =item *  =item insertlist($target,$token)
   
 insertlist($target,$token) : api that uses get_insert_list;  api that uses get_insert_list; return a scalar string
 return a scalar string  
   
 =item *  =item handleinsert($token)
   
 handleinsert($token) : provide an insertion list based on possibilities  provide an insertion list based on possibilities from lonxml; return a scalar string
 from lonxml; return a scalar string  
   
 =item *  =item get_insert_list($token)
   
 get_insert_list($token) : provide an insertion list based on possibilities  provide an insertion list based on possibilities from lonxml; return a scalar string
 from lonxml; return a scalar string  
   
 =item *  =item browse($elementname)
 browse($elementname) : provide a link which will open up the filesystem  
 browser (lonindexer) and, once a file is selected, place the result in  
 the form element $elementname.  
   
 =item *  provide a link which will open up the filesystem browser (lonindexer) and, once a file is selected, place the result in the form element $elementname.
 search($elementname) : provide a link which will open up the filesystem  
 searcher (lonsearchcat) and, once a file is selected, place the result in  
 the form element $elementname.  
   
 =item *  =item search($elementname)
 editline(tag,data,description,size): Provide a <input type="text" ../> for  
 single-line text entry.  This is to be used for text enclosed by tags, not  
 arguements/parameters associated with a tag.  
   
 =back  provide a link which will open up the filesystem searcher (lonsearchcat) and, once a file is selected, place the result in the form element $elementname.
   
 incomplete...  =item editline(tag,data,description,size)
   
   Provide a <input type="text" ../> for single-line text entry.  This is to be used for text enclosed by tags, not arguements/parameters associated with a tag.
   
   =back
   
 =cut  =cut
   
Line 217  sub start_table { Line 202  sub start_table {
     $Apache::edit::colordepth++;      $Apache::edit::colordepth++;
     push(@Apache::edit::inserttag,$token->[1]);      push(@Apache::edit::inserttag,$token->[1]);
     my $result='<div align="right">';      my $result='<div align="right">';
     $result.='<table bgcolor="'.$color.'" width="97%" border="0" cellspacing="5" cellpadding="3">';      $result.='<table bgcolor="'.$color.'" width="97%" border="0" cellspacing="3" cellpadding="2">';
     return $result;      return $result;
 }  }
   
Line 245  sub end_table { Line 230  sub end_table {
     return $result;      return $result;
 }  }
   
 sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#DDDDDD">';}  sub start_spanning_row { return '<tr><td colspan="5" bgcolor="#F0F0F0">';}
 sub start_row          { return '<tr><td bgcolor="#DDDDDD">';            }  sub start_row          { return '<tr><td bgcolor="#DDDDDD">';            }
 sub end_row            { return '</td></tr>';          }  sub end_row            { return '</td></tr>';          }
   
Line 627  sub insert_numericalhint { Line 612  sub insert_numericalhint {
 </numericalhint>';  </numericalhint>';
 }  }
   
   sub insert_reactionhint {
       return '
   <reactionhint>
   </reactionhint>';
   }
   
   sub insert_organichint {
       return '
   <organichint>
   </organichint>';
   }
   
 sub insert_stringhint {  sub insert_stringhint {
     return '      return '
 <stringhint>  <stringhint>
Line 857  sub checked_arg { Line 854  sub checked_arg {
     $text=$option;      $text=$option;
     $value='value="'.$option.'"';      $value='value="'.$option.'"';
  }   }
  $result.="<nobr><label><input type=\"checkbox\" $value name=\"".   $result.='<span class="LC_nobreak"><label><input type="checkbox" '.$value.' name="'.
     &html_element_name($name)."\"";      &html_element_name($name).'"';
  foreach my $selected (split(/,/,$allselected)) {   foreach my $selected (split(/,/,$allselected)) {
     if ( $selected eq $option ) {      if ( $selected eq $option ) {
  $result.=" checked=\"checked\" ";   $result.=' checked="checked" ';
  last;   last;
     }      }
  }   }
  $result.=&element_change_detection()." />$text</label></nobr>\n";   $result.=&element_change_detection().' />'.$text.'</label></span>'."\n";
     }      }
     return $result;      return $result;
 }  }
Line 878  sub text_arg { Line 875  sub text_arg {
     $result=&mt($description).'&nbsp;<input name="'.&html_element_name($name).      $result=&mt($description).'&nbsp;<input name="'.&html_element_name($name).
  '" type="text" value="'.$arg.'" size="'.$size.'" '.   '" type="text" value="'.$arg.'" size="'.$size.'" '.
  &element_change_detection().'/>';   &element_change_detection().'/>';
     return '<nobr>'.$result.'</nobr>';      return '<span class="LC_nobreak">'.$result.'</span>';
 }  }
   
 sub select_arg {  sub select_arg {
Line 886  sub select_arg { Line 883  sub select_arg {
     my $result;      my $result;
     my $optionlist="";      my $optionlist="";
     my $selected=$token->[2]{$name};      my $selected=$token->[2]{$name};
     foreach my $option (@$list) {      if (ref($list) eq 'ARRAY') {
  my ($text,$value);          foreach my $option (@{$list}) {
  if ( ref($option) eq 'ARRAY') {      my ($text,$value);
     $value='value="'.&HTML::Entities::encode($$option[0]).'"';      if (ref($option) eq 'ARRAY') {
     $text=$$option[1];          $value='value="'.&HTML::Entities::encode($option->[0]).'"';
     $option=$$option[0];          $text=$option->[1];
  } else {          $option=$option->[0];
     $text=$option;      } else {
     $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';          $text=$option;
  }          $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';
  if ( $selected eq $option ) {      }
     $optionlist.="<option $value selected=\"selected\">".&mt($text)."</option>\n";      if ( $selected eq $option ) {
  } else {          $optionlist.="<option $value selected=\"selected\">".&mt($text)."</option>\n";
     $optionlist.="<option $value >".&mt($text)."</option>\n";      } else {
  }          $optionlist.="<option $value >".&mt($text)."</option>\n";
       }
           }
     }      }
     $result.='<nobr>'.&mt($description).'&nbsp;<select name="'.      $result.='<span class="LC_nobreak">'.&mt($description).'&nbsp;<select name="'.
  &html_element_name($name).'" '.&element_change_detection().' >   &html_element_name($name).'" '.&element_change_detection().' >
        '.$optionlist.'         '.$optionlist.'
       </select></nobr>';        </select></span>';
     return $result;      return $result;
 }  }
   
Line 915  sub select_or_text_arg { Line 914  sub select_or_text_arg {
     my $optionlist="";      my $optionlist="";
     my $found=0;      my $found=0;
     my $selected=$token->[2]{$name};      my $selected=$token->[2]{$name};
     foreach my $option (@$list) {      if (ref($list) eq 'ARRAY') {
  my ($text,$value);          foreach my $option (@{$list}) {
  if ( ref($option) eq 'ARRAY') {      my ($text,$value);
     $value='value="'.&HTML::Entities::encode($$option[0]).'"';      if (ref($option) eq 'ARRAY') {
     $text=$$option[1];          $value='value="'.&HTML::Entities::encode($option->[0]).'"';
     $option=$$option[0];          $text=$option->[1];
  } else {          $option=$option->[0];
     $text=$option;      } else {
     $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';          $text=$option;
  }          $value='value="'.&HTML::Entities::encode($option,'\'"&<>').'"';
  if ( $selected eq $option ) {      }
     $optionlist.="<option $value selected=\"selected\">$text</option>\n";      if ( $selected eq $option ) {
     $found=1;          $optionlist.="<option $value selected=\"selected\">$text</option>\n";
  } else {          $found=1;
     $optionlist.="<option $value>$text</option>\n";      } else {
  }          $optionlist.="<option $value>$text</option>\n";
       }
           }
     }      }
     $optionlist.="<option value=\"TYPEDINVALUE\"".      $optionlist.="<option value=\"TYPEDINVALUE\"".
   ((!$found)?' selected="selected"':'').    ((!$found)?' selected="selected"':'').
Line 951  sub select_or_text_arg { Line 952  sub select_or_text_arg {
     $description=&mt($description);      $description=&mt($description);
 #  #
     return (<<ENDSELECTORTYPE);      return (<<ENDSELECTORTYPE);
 <nobr>  <span class="LC_nobreak">
 $description  $description
 &nbsp;<select name="$selectelement"  &nbsp;<select name="$selectelement"
 onChange="if ($selectedvalue!='TYPEDINVALUE') { $hiddenvalue=$selectedvalue; $typedinvalue=''; }" >  onChange="if ($selectedvalue!='TYPEDINVALUE') { $hiddenvalue=$selectedvalue; $typedinvalue=''; }" >
Line 962  $optionlist Line 963  $optionlist
 onChange="$hiddenvalue=$typedinvalue;"  onChange="$hiddenvalue=$typedinvalue;"
 onFocus="$selectedindex=$selecttypeinindex-1;" />  onFocus="$selectedindex=$selecttypeinindex-1;" />
 <input type="hidden" name="$element" value="$selected" $change_code />  <input type="hidden" name="$element" value="$selected" $change_code />
 </nobr>  </span>
 ENDSELECTORTYPE  ENDSELECTORTYPE
 }  }
   
Line 1038  sub entercoord { Line 1039  sub entercoord {
 }  }
   
 sub deletecoorddata {  sub deletecoorddata {
     &Apache::lonnet::delenv("imagechoice\\.");      &Apache::lonnet::delenv('imagechoice.');
 }  }
   
 #----------------------------------------------------- browse  #----------------------------------------------------- browse

Removed from v.1.117  
changed lines
  Added in v.1.124


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