Diff for /loncom/homework/response.pm between versions 1.243 and 1.244

version 1.243, 2015/03/09 16:19:54 version 1.244, 2015/10/30 03:49:47
Line 513  sub end_customresponse { Line 513  sub end_customresponse {
     &Apache::lonhomework::set_bubble_lines();      &Apache::lonhomework::set_bubble_lines();
  }   }
     }      }
       if ($target eq 'web') {
           &setup_prior_tries_hash(\&format_prior_response_math);
       }
     pop(@Apache::lonxml::namespace);      pop(@Apache::lonxml::namespace);
     pop(@Apache::response::custom_answer);      pop(@Apache::response::custom_answer);
     pop(@Apache::response::custom_answer_type);      pop(@Apache::response::custom_answer_type);
Line 575  sub start_mathresponse { Line 578  sub start_mathresponse {
     return $result;      return $result;
 }  }
   
 sub edit_mathresponse_button {  
     my ($partid,$id)=@_;  
     my $field = 'HWVAL_'.$partid.'_'.$id;  
     my $eqneditor = 'lcmath';  
     if ($env{'browser.type'} eq 'safari') {  
         if ($env{'browser.os'} eq 'mac') {  
             my ($prefix,$version) = ($env{'browser.version'} =~ /^(\d*)(\d{3})\./);  
             if ($env{'browser.mobile'}) {  
                 if (($version < 531) || (($prefix eq '') && ($version < 533))) {  
                     $eqneditor = '';  
                 }  
             } elsif ($version < 533) {  
                 $eqneditor = 'dragmath';  
             }  
         } elsif ($env{'browser.os'} eq 'win') {  
             if ($env{'browser.version'} < 533) {  
                 $eqneditor = 'dragmath';  
             }  
         }  
     } elsif ($env{'browser.type'} eq 'explorer') {  
         if ($env{'browser.version'} < 9) {  
             $eqneditor = 'dragmath';  
         }  
     } elsif ($env{'browser.type'} eq 'mozilla') {  
         if ($env{'browser.version'} < 5) {  
             $eqneditor = 'dragmath';  
         } else {  
             if ($env{'browser.info'} =~ /^firefox\-([\d\.]+)/) {  
                 my $firefox = $1;  
                 if ($firefox < 4) {  
                     $eqneditor = 'dragmath';  
                 }  
             }  
         }  
     } elsif ($env{'browser.type'} eq 'chrome') {  
         if ($env{'browser.version'} < 5) {  
             $eqneditor = 'dragmath';  
         }  
     } elsif ($env{'browser.type'} eq 'opera') {  
         if ($env{'browser.version'} < 12) {  
             $eqneditor = 'dragmath';  
         }  
     }  
     if ($eqneditor eq 'lcmath') {  
         if (($env{'request.course.id'}) && ($env{'request.state'} ne 'construct')) {  
             if (exists($env{'course.'.$env{'request.course.id'}.'.uselcmath'})) {  
                 if ($env{'course.'.$env{'request.course.id'}.'.uselcmath'} eq '0') {  
                     $eqneditor = 'dragmath';  
                 }  
             } else {  
                 my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'});  
                 if ($domdefs{'uselcmath'} eq '0') {  
                     $eqneditor = 'dragmath';  
                 }  
             }  
         } else {  
             my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'});  
             if ($domdefs{'uselcmath'} eq '0') {  
                 $eqneditor = 'dragmath';  
             }  
         }  
     }  
     if ($eqneditor eq 'dragmath') {  
         # DragMath applet  
         my $button=&mt('Edit Answer');  
 #       my $helplink=&Apache::loncommon::help_open_topic('Formula_Editor');  
         my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'};  
         return(<<ENDFORMULABUTTON);  
 <script type="text/javascript" language="JavaScript">  
 function LC_mathedit_${field} (LCtextline) {  
     thenumber = LCtextline;  
     var thedata = '';  
     if (document.getElementById(LCtextline)) {  
         thedata = document.getElementById(LCtextline).value;  
     }  
     newwin = window.open("/adm/dragmath/MaximaPopup.html","","width=565,height=400,resizable");  
 }  
 </script>  
 <a href="javascript:LC_mathedit_${field}('${field}');void(0);"><img class="stift" src="$iconpath/stift.gif" alt="$button" title="$button" /></a>  
 ENDFORMULABUTTON  
     } elsif ($eqneditor eq 'lcmath') {  
         # LON-CAPA math equation editor  
         my $mathjaxjs;  
         unless (lc(&Apache::lontexconvert::tex_engine()) eq 'mathjax') {  
             $mathjaxjs = <<"MATHJAX_SCRIPT";  
 var mathjaxscript = document.createElement("script");  
     mathjaxscript.type = "text/javascript";  
     mathjaxscript.src = "/adm/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML";  
     document.body.appendChild(mathjaxscript);  
 MATHJAX_SCRIPT  
         }  
         return(<<EQ_EDITOR_SCRIPT);  
 <script type="text/javascript">  
   var LCmathField = document.getElementById('${field}');  
   LCmathField.className += ' math'; // note the space  
   LCmathField.setAttribute('data-implicit_operators', 'true');  
   var LCMATH_started;  
   if (typeof LCMATH_started === 'undefined') {  
     $mathjaxjs  
     LCMATH_started = true;  
     var script = document.createElement("script");  
     script.type = "text/javascript";  
     script.src = "/adm/LC_math_editor/LC_math_editor.min.js";  
     document.body.appendChild(script);  
     window.addEventListener('load', function(e) {  
         LCMATH.initEditors();  
     }, false);  
   }  
 </script>  
 EQ_EDITOR_SCRIPT  
     }  
 }  
   
 sub end_mathresponse {  sub end_mathresponse {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my $result;      my $result;
Line 742  sub end_mathresponse { Line 632  sub end_mathresponse {
     }      }
  }   }
     }      }
     if ($target eq 'web') {  
  &setup_prior_tries_hash(\&format_prior_response_math);  
         my $partid = $Apache::inputtags::part;  
         my $id = $Apache::inputtags::response[-1];  
         if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER')  
            && (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) {  
             $result.=&edit_mathresponse_button($partid,$id);  
         }  
     }  
   
     pop(@Apache::lonxml::namespace);      pop(@Apache::lonxml::namespace);
     pop(@Apache::response::custom_answer);      pop(@Apache::response::custom_answer);

Removed from v.1.243  
changed lines
  Added in v.1.244


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