Diff for /loncom/homework/inputtags.pm between versions 1.337 and 1.338

version 1.337, 2015/10/05 02:35:40 version 1.338, 2015/10/30 03:49:47
Line 460  sub start_textline { Line 460  sub start_textline {
  }   }
  my $name = 'HWVAL_'.$id;   my $name = 'HWVAL_'.$id;
                 my $itemid = 'HWVAL_'.$partid.'_'.$id;                  my $itemid = 'HWVAL_'.$partid.'_'.$id;
                   my $input_tag_id = 'HWVAL_'.$input_id;
  if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') {   if ($Apache::inputtags::status[-1] eq 'CANNOT_ANSWER') {
     $name = "none";      $name = "none";
  }   }
  $result.= '<input onkeydown="javascript:setSubmittedPart(\''.$partid.'\');"'   $result.= '<input onkeydown="javascript:setSubmittedPart(\''.$partid.'\');"'
      . ' onfocus="javascript:disableAutoComplete(\''.$itemid.'\');"'       . ' onfocus="javascript:disableAutoComplete(\''.$input_tag_id.'\');"'
      . ' type="text" '.$readonly.' name="'. $name . '"'       . ' type="text" '.$readonly.' name="'. $name . '"'
      . ' id="' . $itemid . '"'       . ' id="' . $input_tag_id . '"'
      . ' value="'.  $oldresponse.'"'       . ' value="'.  $oldresponse.'"'
      . ' class="LC_textline spellchecked"  size="'.$size.'"'.$maxlength.' />';       . ' class="LC_textline spellchecked"  size="'.$size.'"'.$maxlength.' />';
   
  $result .= &spellcheck_onblur($itemid, $spellcheck);   $result .= &spellcheck_onblur($itemid, $spellcheck);
                   if (($Apache::inputtags::status['-1'] eq 'CAN_ANSWER') &&
                       (($tagstack->[-2] eq 'formularesponse') || ($tagstack->[-2] eq 'mathresponse')) &&
                       (&Apache::lonnet::EXT('resource.'.$partid.'_'.$id.'.turnoffeditor') ne 'yes')) {
                       $result.=&edit_mathresponse_button($input_tag_id);
                   }
     }      }
     if ($Apache::lonhomework::type eq 'exam'      if ($Apache::lonhomework::type eq 'exam'
  && &needs_exam_box($tagstack)) {   && &needs_exam_box($tagstack)) {
Line 1914  sub spelling_languages { Line 1920  sub spelling_languages {
     return \@spelllangs;      return \@spelllangs;
 }  }
   
   sub edit_mathresponse_button {
       my ($field) = @_;
       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
       }
   }
   
 1;  1;
 __END__  __END__
   

Removed from v.1.337  
changed lines
  Added in v.1.338


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