Diff for /loncom/homework/edit.pm between versions 1.97 and 1.98

version 1.97, 2005/12/01 18:46:31 version 1.98, 2005/12/15 23:20:55
Line 498  sub insert_script { Line 498  sub insert_script {
     return "\n<script type=\"loncapa/perl\"></script>";      return "\n<script type=\"loncapa/perl\"></script>";
 }  }
   
   sub js_change_detection {
       my $unsaved=&mt("There are unsaved changes");
       return (<<SCRIPT);
   <script type="text/javascript">
   var clean = true;
   var is_submit = false;
   function compareForm(event_) {
           if (!event_ && window.event) {
             event_ = window.event;
           }
    if (!is_submit && !clean) {
               event_.returnValue = "$unsaved";
               return "$unsaved";
           }
   }
   function unClean() {
        clean=false;
   }
   window.onbeforeunload = compareForm;
   </script>
   SCRIPT
   }
   
   sub form_change_detection {
       return ' onsubmit="is_submit=true;" ';
   }
   
   sub element_change_detection {
       return ' onchange="unClean();" ';
   }
   
 sub textarea_sizes {  sub textarea_sizes {
     my ($data)=@_;      my ($data)=@_;
     my $count=0;      my $count=0;
Line 516  sub editline { Line 547  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="<br />".$description."<br />"; }
       my $change_code = &element_change_detection();
     my $result = <<"END";      my $result = <<"END";
 $description  $description
 <input type="text" name="homework_edit_$Apache::lonxml::curdepth"   <input type="text" name="homework_edit_$Apache::lonxml::curdepth" 
        value="$data" size="$size" />         value="$data" size="$size" $change_code />
 END  END
     return $result;      return $result;
 }  }
Line 544  sub editfield { Line 576  sub editfield {
     return $description."\n".'&nbsp;&nbsp;&nbsp;<textarea style="width:100%" rows="'.$rows.      return $description."\n".'&nbsp;&nbsp;&nbsp;<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_'.
  $Apache::lonxml::curdepth.'">'.   $Apache::lonxml::curdepth.'" '.&element_change_detection().'>'.
  &HTML::Entities::encode($data,'<>&"').'</textarea>'.   &HTML::Entities::encode($data,'<>&"').'</textarea>'.
  ($usehtmlarea?&Apache::lonhtmlcommon::spelllink('lonhomework',   ($usehtmlarea?&Apache::lonhtmlcommon::spelllink('lonhomework',
  'homework_edit_'.$Apache::lonxml::curdepth):'')."\n";   'homework_edit_'.$Apache::lonxml::curdepth):'')."\n";
Line 652  sub checked_arg { Line 684  sub checked_arg {
  last;   last;
     }      }
  }   }
  $result.=" />$text</nobr>\n";   $result.=&element_change_detection()." />$text</nobr>\n";
     }      }
     return $result;      return $result;
 }  }
Line 663  sub text_arg { Line 695  sub text_arg {
     if (!defined $size) { $size=20; }      if (!defined $size) { $size=20; }
     my $arg=$token->[2]{$name};      my $arg=$token->[2]{$name};
     $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().'/>';
     return '<nobr>'.$result.'</nobr>';      return '<nobr>'.$result.'</nobr>';
 }  }
   
Line 689  sub select_arg { Line 722  sub select_arg {
  }   }
     }      }
     $result.='<nobr>'.$description.'&nbsp;<select name="'.      $result.='<nobr>'.$description.'&nbsp;<select name="'.
  &html_element_name($name).'">   &html_element_name($name).'" '.&element_change_detection().' >
        '.$optionlist.'         '.$optionlist.'
       </select></nobr>';        </select></nobr>';
     return $result;      return $result;
Line 722  sub select_or_text_arg { Line 755  sub select_or_text_arg {
   ((!$found)?' selected="selected"':'').    ((!$found)?' selected="selected"':'').
   ">".&mt('Type-in value')."</option>\n";    ">".&mt('Type-in value')."</option>\n";
 #  #
       my $change_code=&element_change_detection();
     my $element=&html_element_name($name);      my $element=&html_element_name($name);
     my $selectelement='select_list_'.$element;      my $selectelement='select_list_'.$element;
     my $typeinelement='type_in_'.$element;      my $typeinelement='type_in_'.$element;
Line 746  $optionlist Line 780  $optionlist
        value="$typeinvalue"          value="$typeinvalue" 
 onChange="$hiddenvalue=$typedinvalue;"  onChange="$hiddenvalue=$typedinvalue;"
 onFocus="$selectedindex=$selecttypeinindex-1;" />  onFocus="$selectedindex=$selecttypeinindex-1;" />
 <input type="hidden" name="$element" value="$selected" />  <input type="hidden" name="$element" value="$selected" $change_code />
 </nobr>  </nobr>
 ENDSELECTORTYPE  ENDSELECTORTYPE
 }  }

Removed from v.1.97  
changed lines
  Added in v.1.98


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