Diff for /loncom/homework/structuretags.pm between versions 1.350 and 1.359

version 1.350, 2006/04/20 03:28:52 version 1.359, 2006/06/26 22:33:22
Line 38  use Apache::lonlocal; Line 38  use Apache::lonlocal;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::lonenc();  use Apache::lonenc();
 use Time::HiRes qw( gettimeofday tv_interval );  use Time::HiRes qw( gettimeofday tv_interval );
   use lib '/home/httpd/lib/perl/';
   use LONCAPA;
    
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag'));      &Apache::lonxml::register('Apache::structuretags',('block','languageblock','instructorcomment','while','randomlist','problem','library','web','tex','part','preduedate','postanswerdate','solved','notsolved','problemtype','startouttext','endouttext','simpleeditbutton','definetag'));
 }  }
Line 160  sub page_start { Line 163  sub page_start {
     $form_tag_start.=&Apache::edit::form_change_detection();      $form_tag_start.=&Apache::edit::form_change_detection();
  }   }
  $form_tag_start.='>';   $form_tag_start.='>';
   
    my $symb=&Apache::lonnet::symbread();
    if ($symb =~ /\S/) {
       $symb=
    &HTML::Entities::encode(&Apache::lonenc::check_encrypt($symb));
       $form_tag_start.=
    '<input type="hidden" name="symb" value="'.$symb.'" />';
    }
     }      }
     &Apache::lonnet::logthis("page_start -- ".length($page_start));  
     return ($page_start,$form_tag_start);      return ($page_start,$form_tag_start);
 }  }
   
Line 241  sub problem_edit_header { Line 251  sub problem_edit_header {
        <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> <hr />         <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> <hr />
        <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes and Edit').'" />         <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes and Edit').'" />
        <input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" /><table><tr><td>'.         <input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" /><table><tr><td>'.
        &Apache::loncommon::help_open_menu('','Problem Editing Help','Problem_Editor_XML_Index','',5,'Authoring',undef,undef,undef,'Problem Editing Help')         &Apache::loncommon::help_open_menu('Problem Editing Help','Problem_Editor_XML_Index',5,'Authoring',undef,undef,undef,'Problem Editing Help')
        .'</td></tr></table>'.         .'</td></tr></table>'.
        '<table border="0" width="100%"><tr><td bgcolor="#DDDDDD">';         '<table border="0" width="100%"><tr><td bgcolor="#DDDDDD">';
 }  }
Line 332  Feedback Mode: Line 342  Feedback Mode:
 }  }
   
 sub initialize_storage {  sub initialize_storage {
     %Apache::lonhomework::results=();      my ($given_symb) = @_;
     %Apache::lonhomework::history=();      undef(%Apache::lonhomework::results);
     my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();      undef(%Apache::lonhomework::history);
       my ($symb,$courseid,$domain,$name) = 
    &Apache::lonxml::whichuser($given_symb);
       
       # anonymous users (CODEd exams) have no data
       if ($name eq 'anonymous' 
    && !defined($domain)) {
    return;
       }
   
     if ($env{'request.state'} eq 'construct'       if ($env{'request.state'} eq 'construct' 
  || $symb eq ''   || $symb eq ''
  || $Apache::lonhomework::type eq 'practice') {   || $Apache::lonhomework::type eq 'practice') {
Line 354  sub initialize_storage { Line 373  sub initialize_storage {
  %Apache::lonhomework::history=   %Apache::lonhomework::history=
     &Apache::lonnet::restore($symb,$courseid,$domain,$name);      &Apache::lonnet::restore($symb,$courseid,$domain,$name);
     }      }
   
     #ignore error conditions      #ignore error conditions
     my ($temp)=keys %Apache::lonhomework::history ;      my ($temp)=keys %Apache::lonhomework::history ;
     if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); }      if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); }
Line 366  sub initialize_storage { Line 386  sub initialize_storage {
 # Will increment totals for attempts, students, and corrects  # Will increment totals for attempts, students, and corrects
 # if running user has student role.    # if running user has student role.  
 sub finalize_storage {  sub finalize_storage {
       my ($given_symb) = @_;
     my $result;      my $result;
     if (%Apache::lonhomework::results) {      if (%Apache::lonhomework::results) {
  my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results));   my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results));
  delete(@Apache::lonhomework::results{@remove});   delete(@Apache::lonhomework::results{@remove});
  my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();   my ($symb,$courseid,$domain,$name) = 
       &Apache::lonxml::whichuser($given_symb);
  if ($env{'request.state'} eq 'construct'    if ($env{'request.state'} eq 'construct' 
     || $symb eq ''      || $symb eq ''
     || $Apache::lonhomework::type eq 'practice') {      || $Apache::lonhomework::type eq 'practice') {
Line 441  sub checkout_msg { Line 463  sub checkout_msg {
                 'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.',                  'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.',
                 'checkout'=>'Check out Exam for Viewing',                  'checkout'=>'Check out Exam for Viewing',
  'checkout?'=>'Check out Exam?');   'checkout?'=>'Check out Exam?');
       my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
     return (<<ENDCHECKOUT);      return (<<ENDCHECKOUT);
 <h2>$lt{'resource'}</h2>  <h2>$lt{'resource'}</h2>
     <p>$lt{'id_expln'}</p>      <p>$lt{'id_expln'}</p>
 <font color="red">  <font color="red">
 <p>$lt{'warning'}</p>  <p>$lt{'warning'}</p>
 </font>  </font>
 <form name="checkout" method="POST" action="$env{'request.uri'}">  <form name="checkout" method="POST" action="$uri">
 <input type="hidden" name="doescheckout" value="yes" />  <input type="hidden" name="doescheckout" value="yes" />
 <input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" />  <input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" />
 </form>  </form>
Line 459  sub firstaccess_msg { Line 482  sub firstaccess_msg {
     my ($map)=&Apache::lonnet::decode_symb($symb);      my ($map)=&Apache::lonnet::decode_symb($symb);
     my $foldertitle=&Apache::lonnet::gettitle($map);      my $foldertitle=&Apache::lonnet::gettitle($map);
     &Apache::lonxml::debug("map is $map title is $foldertitle");      &Apache::lonxml::debug("map is $map title is $foldertitle");
       my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
     return (<<ENDCHECKOUT);      return (<<ENDCHECKOUT);
 <h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2>  <h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2>
 <form name="markaccess" method="POST" action="$env{'request.uri'}">  <form name="markaccess" method="POST" action="$uri">
 <input type="hidden" name="markaccess" value="yes" />  <input type="hidden" name="markaccess" value="yes" />
 <input type="button" name="accessbutton" value="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { document.markaccess.submit(); }" />  <input type="button" name="accessbutton" value="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { document.markaccess.submit(); }" />
 </form>  </form>
Line 502  sub init_problem_globals { Line 526  sub init_problem_globals {
     @Apache::structuretags::whileline=();      @Apache::structuretags::whileline=();
     $Apache::lonhomework::scantronmode=0;      $Apache::lonhomework::scantronmode=0;
     undef($Apache::lonhomework::name);      undef($Apache::lonhomework::name);
       undef($Apache::lonhomework::default_type);
       undef($Apache::lonhomework::type);
       undef($Apache::lonhomework::problemstatus);
 }  }
   
 sub reset_problem_globals {  sub reset_problem_globals {
Line 514  sub reset_problem_globals { Line 540  sub reset_problem_globals {
 #detect if we try to do 2 problems in one file  #detect if we try to do 2 problems in one file
 #   undef($Apache::lonhomework::parsing_a_problem);  #   undef($Apache::lonhomework::parsing_a_problem);
     undef($Apache::lonhomework::name);      undef($Apache::lonhomework::name);
       undef($Apache::lonhomework::default_type);
       undef($Apache::lonhomework::type);
       undef($Apache::lonhomework::scantronmode);
       undef($Apache::lonhomework::problemstatus);
       undef($Apache::lonhomework::ignore_response_errors);
 }  }
   
 sub set_problem_state {  sub set_problem_state {
Line 597  sub start_problem { Line 628  sub start_problem {
   
     my $name= &get_resource_name($parstack,$safeeval);      my $name= &get_resource_name($parstack,$safeeval);
     my ($result,$form_tag_start);      my ($result,$form_tag_start);
     if ($target eq 'web' || $target eq 'webgrade' || $target eq 'tex') {      if ($target eq 'web' || $target eq 'webgrade' || $target eq 'tex'
    || $target eq 'edit') {
  ($result,$form_tag_start) =   ($result,$form_tag_start) =
     &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval,      &page_start($target,$token,$tagstack,$parstack,$parser,$safeeval,
  $name);   $name);
Line 1362  sub start_part { Line 1394  sub start_part {
     }      }
     if (($Apache::lonhomework::type eq 'exam') && ($allow_print_points)) { $result .= '\fbox{\textit{'.$weight.' pt}}';}      if (($Apache::lonhomework::type eq 'exam') && ($allow_print_points)) { $result .= '\fbox{\textit{'.$weight.' pt}}';}
  } elsif ($target eq 'web') {   } elsif ($target eq 'web') {
     $result.='<a name="'.&Apache::lonnet::escape($Apache::inputtags::part).'" />';      $result.='<a name="'.&escape($Apache::inputtags::part).'" />';
  }   }
     }      }
  }   }
Line 1615  sub start_simpleeditbutton { Line 1647  sub start_simpleeditbutton {
         $url=~s/\?.*$//;          $url=~s/\?.*$//;
  my ($symb) = &Apache::lonxml::whichuser();   my ($symb) = &Apache::lonxml::whichuser();
  $result='<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'.   $result='<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'.
                 '<a href="'.$url.'/smpedit?symb='.&Apache::lonnet::escape($symb).'">'.&mt('Edit').'</a> - '.&mt('Note: it can take up to 10 minutes for changes to take effect for all users.').                  '<a href="'.$url.'/smpedit?symb='.&escape($symb).'">'.&mt('Edit').'</a> - '.&mt('Note: it can take up to 10 minutes for changes to take effect for all users.').
 &Apache::loncommon::help_open_topic('Caching').'</td></tr></table><br />';  &Apache::loncommon::help_open_topic('Caching').'</td></tr></table><br />';
     }      }
     return $result;      return $result;

Removed from v.1.350  
changed lines
  Added in v.1.359


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