Diff for /loncom/homework/lonhomework.pm between versions 1.288 and 1.289

version 1.288, 2008/01/14 14:32:14 version 1.289, 2008/01/15 03:09:09
Line 137  sub get_target { Line 137  sub get_target {
     if ($env{'form.problemstate'} eq 'WEB_GRADE') {      if ($env{'form.problemstate'} eq 'WEB_GRADE') {
  #$env{'form.webgrade'} = 'yes';   #$env{'form.webgrade'} = 'yes';
  return ('grade','webgrade','answer');   return ('grade','webgrade','answer');
     } elsif ( $env{'form.problemmode'} eq &mt('View') ||      } elsif (($env{'form.problemmode'} eq 'view') ||
  $env{'form.problemmode'} eq &mt('Discard Edits and View')) {       ($env{'form.problemmode'} eq 'discard')) {
  if ( defined($env{'form.submitted'}) &&   if ( defined($env{'form.submitted'}) &&
      (!defined($env{'form.resetdata'})) &&       (!defined($env{'form.resetdata'})) &&
      (!defined($env{'form.newrandomization'}))) {       (!defined($env{'form.newrandomization'}))) {
Line 146  sub get_target { Line 146  sub get_target {
  } else {   } else {
     return ('web','answer');      return ('web','answer');
  }   }
     } elsif ( $env{'form.problemmode'} eq &mt('Edit') ||      } elsif ($env{'form.problemmode'} eq 'edit') {
       $env{'form.problemmode'} eq 'Edit') {  
  if ( $env{'form.submitted'} eq 'edit' ) {   if ( $env{'form.submitted'} eq 'edit' ) {
     if ( $env{'form.submit'} eq &mt('Save and View') ) {      if ( $env{'form.submitbutton'} eq &mt('Save and View') ) {
  return ('modified','web','answer');   return ('modified','web','answer');
     } else {      } else {
  return ('modified','no_output_web','edit');   return ('modified','no_output_web','edit');
Line 744  sub handle_save_or_undo { Line 743  sub handle_save_or_undo {
   
 sub analyze_header {  sub analyze_header {
     my ($request) = @_;      my ($request) = @_;
       my $js = &Apache::structuretags::setmode_javascript();
     my $result =      my $result =
  &Apache::loncommon::start_page('Analyzing a problem',undef);   &Apache::loncommon::start_page('Analyzing a problem',$js);
   
     $result .=       $result .= 
  &Apache::lonxml::message_location().'   &Apache::lonxml::message_location().'
             <form name="lonhomework" method="POST" action="'.              <form name="lonhomework" method="POST" action="'.
     &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.      &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.
               '<input type="hidden" name="problemmode" value="'.
               $env{'form.problemmode'}.'" />'.
     &Apache::structuretags::remember_problem_state().'      &Apache::structuretags::remember_problem_state().'
             <div class="LC_edit_problem_analyze_header">              <div class="LC_edit_problem_analyze_header">
             <input type="submit" name="problemmode" value="'.&mt("EditXML").'" />              <input type="button" name="submitmode" value="'.&mt("EditXML").'" '.
             <input type="submit" name="problemmode" value="'.&mt('Edit').'" />              'onclick="javascript:setmode(this.form,'."'editxml'".')" />
               <input type="button" name="submitmode" value="'.&mt('Edit').'" '.
               'onclick="javascript:setmode(this.form,'."'edit'".')" />
             <hr class="LC_edit_problem_divide" />              <hr class="LC_edit_problem_divide" />
               <input type="button" name="submitmode" value="'.&mt("View").'" '.
             <input type="submit" name="submit" value="'.&mt("View").'" />              'onclick="javascript:setmode(this.form,'."'view'".')" />
             <hr class="LC_edit_problem_divide" />              <hr class="LC_edit_problem_divide" />
             </div>              </div>
             </form>';              </form>';
Line 920  sub editxmlmode { Line 924  sub editxmlmode {
  if (!$error) { $problem=&Apache::lonnet::getfile($file); }   if (!$error) { $problem=&Apache::lonnet::getfile($file); }
     }      }
     &Apache::lonhomework::showhashsubset(\%env,'^form');      &Apache::lonhomework::showhashsubset(\%env,'^form');
     if ( $env{'form.submit'} eq &mt('Save and View') ) {      if ( $env{'form.submitbutton'} eq &mt('Save and View') ) {
  &Apache::lonhomework::showhashsubset(\%env,'^form');   &Apache::lonhomework::showhashsubset(\%env,'^form');
  $env{'form.problemmode'}='View';   $env{'form.problemmode'}='view';
  &renderpage($request,$file);   &renderpage($request,$file);
     } else {      } else {
  my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem);   my ($rows,$cols) = &Apache::edit::textarea_sizes(\$problem);
Line 937  sub editxmlmode { Line 941  sub editxmlmode {
  if ($rows < 20) { $rows = 20; }   if ($rows < 20) { $rows = 20; }
  my $js =   my $js =
     &Apache::edit::js_change_detection().       &Apache::edit::js_change_detection(). 
     &Apache::loncommon::resize_textarea_js();      &Apache::loncommon::resize_textarea_js().
               &Apache::structuretags::setmode_javascript();
  my $only_body =  ($env{'environment.remote'} eq 'off')? 0 : 1;   my $only_body =  ($env{'environment.remote'} eq 'off')? 0 : 1;
  my $start_page =    my $start_page = 
     &Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js,      &Apache::loncommon::start_page(&mt("EditXML [_1]",$file),$js,
Line 947  sub editxmlmode { Line 952  sub editxmlmode {
  'onresize' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')],   'onresize' => q[resize_textarea('LC_editxmltext','LC_aftertextarea')],
  'onload'   => q[resize_textarea('LC_editxmltext','LC_aftertextarea')],   'onload'   => q[resize_textarea('LC_editxmltext','LC_aftertextarea')],
     }});      }});
   
  $result.=$start_page.   $result.=$start_page.
     &renderpage($request,$file,['no_output_web'],1).      &renderpage($request,$file,['no_output_web'],1).
             '<form '.&Apache::edit::form_change_detection().' name="lonhomework" method="POST" action="'.              '<form '.&Apache::edit::form_change_detection().' name="lonhomework" method="POST" action="'.
Line 961  sub editxmlmode { Line 965  sub editxmlmode {
                 </td></tr>                  </td></tr>
               </table>                </table>
               <div class="LC_edit_problem_discards">                <div class="LC_edit_problem_discards">
                 <input type="hidden" name="problemmode" value="'.&mt('EditXML').'" />                  <input type="hidden" name="problemmode" value="editxml" />
                 <input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" />                  <input type="button" name="submitmode" accesskey="d" value="'.&mt('Discard Edits and View').'" '.
                 <input type="submit" '.&Apache::edit::submit_ask_anyway().'name="problemmode" accesskey="e" value="'.&mt('Edit').'" />                  'onclick="javascript:setmode(this.form,'."'discard'".')" />
                   <input type="button" '.&Apache::edit::submit_ask_anyway('setmode(this.form,'."'edit'".')').'name="submitmode" accesskey="e" value="'.&mt('Edit').'" />
                 <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />                  <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />
               </div>                </div>
               <div class="LC_edit_problem_saves">                <div class="LC_edit_problem_saves">
                 <input type="submit" name="submit" accesskey="s" value="'.&mt('Save').'" />                  <input type="submit" name="submitbutton" accesskey="s" value="'.&mt('Save').'"  />
                 <input type="submit" name="submit" accesskey="v" value="'.&mt('Save and View').'" />                  <input type="submit" name="submitbutton" accesskey="v" value="'.&mt('Save and View').'" />
               </div>                </div>
               <hr class="LC_edit_problem_divide" />                <hr class="LC_edit_problem_divide" />
       '.&Apache::lonxml::message_location().'        '.&Apache::lonxml::message_location().'
Line 1169  $errormsg Line 1174  $errormsg
   
 sub update_construct_style {  sub update_construct_style {
     if ($env{'request.state'} eq "construct"      if ($env{'request.state'} eq "construct"
  && $env{'form.problemmode'} eq &mt('View')    && $env{'form.problemmode'} eq 'view' 
  &&  defined($env{'form.submitted'})   &&  defined($env{'form.submitted'})
  && !defined($env{'form.resetdata'})   && !defined($env{'form.resetdata'})
  && !defined($env{'form.newrandomization'})) {   && !defined($env{'form.newrandomization'})) {
Line 1192  sub handler { Line 1197  sub handler {
     $Apache::lonxml::debug=$env{'user.debug'};      $Apache::lonxml::debug=$env{'user.debug'};
     $env{'request.uri'}=$request->uri;      $env{'request.uri'}=$request->uri;
     &setuppermissions();      &setuppermissions();
     # some times multiple problemmodes are submitted, need to select  
     # the last one  
     if ( defined($env{'form.problemmode'}) && ref($env{'form.problemmode'}) ) {  
  my $mode=$env{'form.problemmode'}->[-1];  
  undef $env{'form.problemmode'};  
  $env{'form.problemmode'}=$mode;  
     }  
   
     my $file=&Apache::lonnet::filelocation("",$request->uri);      my $file=&Apache::lonnet::filelocation("",$request->uri);
   
Line 1227  sub handler { Line 1225  sub handler {
     ['problemmode']);      ['problemmode']);
     if (!(defined $env{'form.problemmode'})) {      if (!(defined $env{'form.problemmode'})) {
  #first visit to problem in construction space   #first visit to problem in construction space
  $env{'form.problemmode'}='View';   $env{'form.problemmode'}= 'view';
  &renderpage($request,$file);   &renderpage($request,$file);
     } elsif ($env{'form.problemmode'} eq &mt('EditXML') ||      } elsif ($env{'form.problemmode'} eq 'editxml') {
      $env{'form.problemmode'} eq 'EditXML') {  
  &editxmlmode($request,$file);   &editxmlmode($request,$file);
     } elsif ($env{'form.problemmode'} eq &mt('Calculate answers')) {      } elsif ($env{'form.problemmode'} eq 'calcanswers') {
  &analyze($request,$file);   &analyze($request,$file);
     } else {      } else {
  &update_construct_style();   &update_construct_style();

Removed from v.1.288  
changed lines
  Added in v.1.289


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