Diff for /loncom/homework/structuretags.pm between versions 1.479 and 1.490

version 1.479, 2010/12/18 22:49:33 version 1.490, 2011/07/04 13:01:57
Line 128  sub homework_js { Line 128  sub homework_js {
            &setmode_javascript().             &setmode_javascript().
  <<'JS';   <<'JS';
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 function setSubmittedPart (part) {  function setSubmittedPart (part) {
    this.document.lonhomework.submitted.value="part_"+part;     this.document.lonhomework.submitted.value="part_"+part;
 }  }
Line 145  function image_response_click (which, e) Line 146  function image_response_click (which, e)
     input_element.value = click;      input_element.value = click;
     img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click;      img_element.src = '/adm/randomlabel.png?token='+token+'&clickdata='+click;
 }  }
   // ]]>
 </script>  </script>
 JS  JS
 }  }
Line 153  JS Line 154  JS
 sub setmode_javascript {  sub setmode_javascript {
     return <<"ENDSCRIPT";      return <<"ENDSCRIPT";
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 function setmode(form,probmode) {  function setmode(form,probmode) {
     form.problemmode.value = probmode;      form.problemmode.value = probmode;
     form.submit();      form.submit();
 }  }
   // ]]>
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
 }  }
   
 sub file_delchk_js {  sub file_delchk_js {
     my $delfilewarn = &mt('You have indicated you wish to delete some files previously included for submission.').'\\n'.      my $delfilewarn = &mt('You have indicated you wish to remove some files previously included in your submission.').'\\n'.
                           &mt('Deleted files will not be graded.').' '.                        &mt('Continue submission with these files removed?');
                           &mt('Submit Answer?');  
     return <<"ENDSCRIPT";      return <<"ENDSCRIPT";
 <script type="text/javascript">  <script type="text/javascript">
   // <![CDATA[
 function file_deletion_check(formname) {  function file_deletion_check(formname) {
     var str = new RegExp("^HWFILE.+_delete\$");  
     var delfilecount = 0;  
     var elemnum = formname.elements.length;      var elemnum = formname.elements.length;
     if (elemnum == 0) {      if (elemnum == 0) {
         return true;          return true;
     }      }
     for (i=0; i<formname.elements.length; i++) {      var str = new RegExp("^HWFILE.+_delete\$");
       var delboxes = new Array();
       for (var i=0; i<formname.elements.length; i++) {
         var id = formname.elements[i].id;          var id = formname.elements[i].id;
         if (id != '') {          if (id != '') {
             if (str.test(id)) {              if (str.test(id)) {
                 if (formname.elements[i].type == 'checkbox') {                  if (formname.elements[i].type == 'checkbox') {
                     if (formname.elements[i].checked) {                      if (formname.elements[i].checked) {
                         delfilecount ++;                          delboxes.push(id);
                     }                      }
                 }                  }
             }              }
         }          }
     }      }
     if (delfilecount > 0) {      if (delboxes.length > 0) {
         if (confirm("$delfilewarn")) {          if (confirm("$delfilewarn")) {
             return true;              return true;
         } else {          } else {
               for (var j=0; j<delboxes.length; j++) {
                   formname.elements[delboxes[j]].checked = false;
               }
             return false;              return false;
         }          }
     } else {      } else {
         return true;          return true;
     }      }
 }  }
   // ]]>
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
 }  }
Line 393  sub setup_rndseed { Line 400  sub setup_rndseed {
             if ($tries) {              if ($tries) {
                 $rndseed += $tries;                  $rndseed += $tries;
             }              }
               $env{'form.'.$Apache::inputtags::part.'.rndseed'}=$rndseed;
         }          }
  if ( ($env{'form.resetdata'} eq &mt('New Problem Variation')   if ( ($env{'form.resetdata'} eq &mt('New Problem Variation')
       && $env{'form.submitted'} eq 'yes')  ||        && $env{'form.submitted'} eq 'yes')  ||
Line 403  sub setup_rndseed { Line 411  sub setup_rndseed {
     delete($env{'form.resetdata'});      delete($env{'form.resetdata'});
     delete($env{'form.newrandomization'});      delete($env{'form.newrandomization'});
  }   }
  if (defined($rndseed) && $rndseed ne int($rndseed)) {          $rndseed=~s/\,/\:/g;
     $rndseed=join(':',&Apache::lonnet::digest($rndseed));          $rndseed=~s/[^\w\d\:\-]//g;
    if (defined($rndseed)) {
               my ($c1,$c2)=split(/\:/,$rndseed);
               unless ($c2) { $c2=0; }
               unless (($c1==int($c1)) && ($c2==int($c2))) {
          $rndseed=join(':',&Apache::lonnet::digest($rndseed));
               }
         }          }
         if ($Apache::lonhomework::history{'resource.CODE'}) {          if ($Apache::lonhomework::history{'resource.CODE'}) {
    $rndseed=&Apache::lonnet::rndseed();     $rndseed=&Apache::lonnet::rndseed();
Line 456  sub remember_problem_state { Line 470  sub remember_problem_state {
        <input type="hidden" name="problemstatus" value="'.$env{'form.problemstatus'}.'" />';         <input type="hidden" name="problemstatus" value="'.$env{'form.problemstatus'}.'" />';
 }  }
   
   sub problem_edit_action_button {
       my ($name,$action,$accesskey,$text,$flag)=@_;
       my $actionscript="setmode(this.form,'$action')";
       return "\n<input type='button' name='$name' accesskey='$accesskey' value='".&mt($text)."'".
              ($flag?&Apache::edit::submit_ask_anyway($actionscript):&Apache::edit::submit_dont_ask($actionscript))." />";
   }
   
 sub problem_edit_buttons {  sub problem_edit_buttons {
    return  '     my ($mode)=@_;
 <div class="LC_edit_problem_discards">  # Buttons that do not save
        <input type="button" name="submitmode" accesskey="d" value="'.&mt('Discard Edits and View').'" '.     my $result='<div class="LC_edit_problem_discards">'.
        ' onclick="javscript:setmode(this.form,'."'discard'".')"  />                &problem_edit_action_button('subdiscview','discard','d','Discard Edits and View',1);
        <input '.&Apache::edit::submit_ask_anyway('setmode(this.form,'."'editxml'".')').' type="button" name="submitmode" accesskey="x" value="'.&mt('EditXML').'" />     if ($mode eq 'editxml') {
        <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />         $result.=&problem_edit_action_button('subedit','edit','e','Edit',1);
 </div>         $result.=&problem_edit_action_button('subundo','undoxml','u','Undo',1);
 <div class="LC_edit_problem_saves">         $result.=&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1);
        <input type="submit" name="submitbutton" accesskey="s" value="'.&mt('Save and Edit').'" />     } else {
        <input type="submit" name="submitbutton" accesskey="v" value="'.&mt('Save and View').'" />         $result.=&problem_edit_action_button('subeditxml','editxml','x','EditXML',1);
 </div>';         $result.=&problem_edit_action_button('subundo','undo','u','Undo',1);
      }
      $result.="\n</div>";
   # Buttons that save
      $result.='<div class="LC_edit_problem_saves">';
      if ($mode eq 'editxml') {
          $result.=&problem_edit_action_button('subsaveedit','saveeditxml','s','Save and EditXML');
          $result.=&problem_edit_action_button('subsaveview','saveviewxml','v','Save and View');
      } else {
          $result.=&problem_edit_action_button('subsaveedit','saveedit','s','Save and Edit');
          $result.=&problem_edit_action_button('subsaveview','saveview','v','Save and View');
      }
      $result.="\n</div>\n";
      return $result;
 }  }
   
 sub problem_edit_header {  sub problem_edit_header {
     return '<input type="hidden" name="submitted" value="edit" /><input type="hidden" name="problemmode" value="edit" />'.      return '<input type="hidden" name="submitted" value="edit" />'.
  &Apache::structuretags::remember_problem_state().'   &remember_problem_state('edit').'
 <div class="LC_edit_problem_header">  <div class="LC_edit_problem_header">
 <div class="LC_edit_problem_header_title">  <div class="LC_edit_problem_header_title">
 '.&mt('Problem Editing').&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').'  '.&mt('Problem Editing').&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').'
 </div>'.  </div>'.
   '<input type="hidden" name="problemmode" value="saveedit" />'.
 &problem_edit_buttons().'  &problem_edit_buttons().'
 <hr style="clear:both;" />  <hr style="clear:both;" />
 '.&Apache::lonxml::message_location().'  '.&Apache::lonxml::message_location().'
Line 613  $show_all Line 648  $show_all
    <div class="LC_edit_problem_header_randomize_row">     <div class="LC_edit_problem_header_randomize_row">
      <input type="submit" name="newrandomization" accesskey="a" value="'.&mt('New Randomization').'" />       <input type="submit" name="newrandomization" accesskey="a" value="'.&mt('New Randomization').'" />
      <input type="submit" name="changerandseed" value="'.&mt('Change Random Seed To:').'" />       <input type="submit" name="changerandseed" value="'.&mt('Change Random Seed To:').'" />
      <input type="text" name="rndseed" size="10" value="'.       <input type="text" name="rndseed" size="24" value="'.
        $rndseed.'"         $rndseed.'"
              onchange="javascript:document.lonhomework.changerandseed.click()" />';               onchange="javascript:document.lonhomework.changerandseed.click()" />';
   
Line 717  sub finalize_storage { Line 752  sub finalize_storage {
       $namespace,'',$domain,$name);        $namespace,'',$domain,$name);
     &Apache::lonxml::debug('Construct Store return message:'.$result);      &Apache::lonxml::debug('Construct Store return message:'.$result);
  } else {   } else {
             if ($Apache::lonhomework::type eq 'randomizetry') {  
                 foreach my $key (keys(%Apache::lonhomework::results)) {  
                     if ($key =~ /^resource\.([^\.]+)\.tries/) {  
                         $Apache::lonhomework::results{'resource.'.$1.'.rndseed'}=$env{'form.'.$1.'.rndseed'};  
                     }  
                 }  
             }  
     $result=&Apache::lonnet::cstore(\%Apache::lonhomework::results,      $result=&Apache::lonnet::cstore(\%Apache::lonhomework::results,
     $symb,$courseid,$domain,$name);      $symb,$courseid,$domain,$name);
     &Apache::lonxml::debug('Store return message:'.$result);      &Apache::lonxml::debug('Store return message:'.$result);
Line 804  sub store_aggregates { Line 832  sub store_aggregates {
                             $cdomain,$cname);                              $cdomain,$cname);
     }      }
     if (keys(%anoncounter) > 0) {      if (keys(%anoncounter) > 0) {
         &Apache::lonnet::cinc('nohist_anonsurveys',\%anoncounter,          &Apache::lonnet::cput('nohist_anonsurveys',\%anoncounter,
                             $cdomain,$cname);                                $cdomain,$cname);
     }      }
     if (keys(%randtrycounter) > 0) {      if (keys(%randtrycounter) > 0) {
         &Apache::lonnet::cinc('nohist_randomizetry',\%randtrycounter,          &Apache::lonnet::cput('nohist_randomizetry',\%randtrycounter,
                             $cdomain,$cname);                                $cdomain,$cname);
     }      }
 }  }
   
Line 1155  sub start_problem { Line 1183  sub start_problem {
                     }                      }
                 }                  }
     }      }
               if ($env{'form.grade_imsexport'}) {
                   $result = '';
               }
  } elsif ($target eq 'tex') {   } elsif ($target eq 'tex') {
     $result .= 'INSERTTEXFRONTMATTERHERE';      $result .= 'INSERTTEXFRONTMATTERHERE';
   
Line 1293  sub end_problem { Line 1324  sub end_problem {
     }      }
  } elsif ( ($target eq 'web' || $target eq 'tex') &&   } elsif ( ($target eq 'web' || $target eq 'tex') &&
   $Apache::inputtags::part eq '0' &&    $Apache::inputtags::part eq '0' &&
   $status ne 'UNCHECKEDOUT' && $status ne 'NOT_YET_VIEWED') {    $status ne 'UNCHECKEDOUT' && $status ne 'NOT_YET_VIEWED'
                     && !$env{'form.grade_imsexport'}) {
     # if part is zero, no <part>s existed, so we need show the current      # if part is zero, no <part>s existed, so we need show the current
     # grading status      # grading status
     my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target);      my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part,$target);
Line 1303  sub end_problem { Line 1335  sub end_problem {
     (($target eq 'web') && ($env{'request.state'} ne 'construct')) ||      (($target eq 'web') && ($env{'request.state'} ne 'construct')) ||
     ($target eq 'answer') || ($target eq 'tex')      ($target eq 'answer') || ($target eq 'tex')
    ) {     ) {
     if ($target ne 'tex' &&      if (($target ne 'tex') &&
  $env{'form.answer_output_mode'} ne 'tex') {   ($env{'form.answer_output_mode'} ne 'tex') && 
                   (!$env{'form.grade_imsexport'})) {
  $result.="</form>";   $result.="</form>";
     }      }
     if ($target eq 'web') {      if ($target eq 'web') {
Line 2027  sub end_part { Line 2060  sub end_part {
      !$hidden && $in_order_show) {       !$hidden && $in_order_show) {
  my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,   my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,
  $target);   $target);
  if ($Apache::lonhomework::type eq 'exam' && $target eq 'tex') {   if (($Apache::lonhomework::type eq 'exam' && $target eq 'tex') ||
                ($env{'form.grade_imsexport'})) {
     $gradestatus='';      $gradestatus='';
  }   }
  $result.=$gradestatus;   $result.=$gradestatus;
Line 2268  sub start_simpleeditbutton { Line 2302  sub start_simpleeditbutton {
 #              .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.')  #              .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.')
 #              .&Apache::loncommon::help_open_topic('Caching')  #              .&Apache::loncommon::help_open_topic('Caching')
 #              .'</p>';  #              .'</p>';
         $result.=&Apache::lonhtmlcommon::start_funclist()          $result.=&Apache::loncommon::head_subbox(
                    &Apache::lonhtmlcommon::start_funclist()
                 .&Apache::lonhtmlcommon::add_item_funclist(                  .&Apache::lonhtmlcommon::add_item_funclist(
                      '<a href="'.$url.'/smpedit?symb='.&escape($symb).'">'                       '<a href="'.$url.'/smpedit?symb='.&escape($symb).'">'
                     .&mt('Edit').'</a>')                      .&mt('Edit').'</a>')
                 .&Apache::lonhtmlcommon::end_funclist();                  .&Apache::lonhtmlcommon::end_funclist());
   
     }      }
     return $result;      return $result;

Removed from v.1.479  
changed lines
  Added in v.1.490


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