version 1.94, 2014/08/20 18:02:08
|
version 1.102, 2023/06/26 14:24:15
|
Line 69 sub chem_standard_order {
|
Line 69 sub chem_standard_order {
|
sub separate_jme_window { |
sub separate_jme_window { |
my ($smile_input,$jme_input,$molecule,$options,$shown_text)=@_; |
my ($smile_input,$jme_input,$molecule,$options,$shown_text)=@_; |
my $usejsme = 1; |
my $usejsme = 1; |
|
if (($env{'request.course.id'}) && ($env{'request.state'} ne 'construct')) { |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.usejsme'})) { |
|
if ($env{'course.'.$env{'request.course.id'}.'.usejsme'} eq '0') { |
|
$usejsme = 0; |
|
} |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if ($domdefs{'usejsme'} eq '0') { |
|
$usejsme = 0; |
|
} |
|
} |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if ($domdefs{'usejsme'} eq '0') { |
|
$usejsme = 0; |
|
} |
|
} |
|
if ($usejsme) { |
|
if ($env{'browser.type'} eq 'safari') { |
|
unless ($env{'browser.mobile'}) { |
|
if ($env{'browser.version'} < 534) { |
|
$usejsme = 0; |
|
} |
|
} |
|
} elsif ($env{'browser.type'} eq 'mozilla') { |
|
if ($env{'browser.version'} < 5) { |
|
$usejsme = 0; |
|
} elsif ($env{'browser.info'} =~ /^firefox\-([\d\.]+)/) { |
|
my $firefox = $1; |
|
if ($firefox < 12) { |
|
$usejsme = 0; |
|
} |
|
} |
|
} elsif ($env{'browser.type'} eq 'explorer') { |
|
if ($env{'browser.version'} < 7) { |
|
$usejsme = 0; |
|
} |
|
} elsif ($env{'browser.type'} eq 'opera') { |
|
if ($env{'browser.version'} < 15) { |
|
$usejsme = 0; |
|
} |
|
} |
|
} else { |
|
if ($env{'browser.mobile'}) { |
|
$usejsme = 1; |
|
} |
|
} |
my $linkstyle = 'display:none'; |
my $linkstyle = 'display:none'; |
my $creditstyle = 'display:inline'; |
my $creditstyle = 'display:inline'; |
if ($env{'browser.type'} eq 'explorer') { |
if ($env{'browser.type'} eq 'explorer') { |
Line 152 RESIZEJS
|
Line 199 RESIZEJS
|
function jsmeOnLoad() { |
function jsmeOnLoad() { |
document.getElementById('JMErefresh').style.display="none"; |
document.getElementById('JMErefresh').style.display="none"; |
document.getElementById('JMEcredits').style.display="inline"; |
document.getElementById('JMEcredits').style.display="inline"; |
jsmeApplet = new JSApplet.JSME("jme", "420px", "330px"); |
jsmeApplet = new JSApplet.JSME("jme", "420px", "330px", {"options" : "$options"}); |
document.JME = jsmeApplet; |
document.JME = jsmeApplet; |
$molecule; |
$molecule; |
document.getElementById('JMEbuttons').style.display="block"; |
document.getElementById('JMEbuttons').style.display="block"; |
Line 170 function submitSmiles() {
|
Line 217 function submitSmiles() {
|
} |
} |
} |
} |
function openHelpWindow() { |
function openHelpWindow() { |
window.open("http://peter-ertl.com/jsme/2013_03/help.html","","scrollbars=yes,resizable=yes,width=500,height=600"); |
window.open("https://jsme-editor.github.io/help.html","","scrollbars=yes,resizable=yes,width=500,height=600"); |
} |
} |
|
|
</script> |
</script> |
Line 591 sub edit_reaction_button {
|
Line 638 sub edit_reaction_button {
|
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
my $docopen=&Apache::lonhtmlcommon::javascript_docopen(); |
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
my $iconpath=$Apache::lonnet::perlvar{'lonIconsURL'}; |
my $display=&mt('Edit Answer'); |
my $display=&mt('Edit Answer'); |
my $start_page = |
my $start_page = |
&Apache::loncommon::start_page('LON-CAPA Reaction Editor',undef, |
&Apache::loncommon::start_page('LON-CAPA Reaction Editor',undef, |
{'frameset' => 1, |
{'frameset' => 1, |
'js_ready' => 1, |
'js_ready' => 1, |
'add_entries' => { |
'add_entries' => { |
'rows' => "30%,*", |
'rows' => "30%,*", |
'border' => "0",}},); |
'border' => "0",}},); |
my $end_page = |
my $end_page = |
&Apache::loncommon::end_page({'frameset' => 1, |
&Apache::loncommon::end_page({'frameset' => 1, |
'js_ready' => 1}); |
'js_ready' => 1}); |
my $result=<<EDITREACTION; |
my $result=<<EDITREACTION; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <!-- |
// <!-- |
function create_reaction_window_${id}_${field} () { |
function create_reaction_window_${id}_${field} () { |
editor=window.open('','','width=500,height=270,scrollbars=no,resizable=yes'); |
editor=window.open('','','width=500,height=270,scrollbars=no,resizable=yes'); |
editor.$docopen; |
editor.$docopen; |
editor.document.writeln('$start_page <frame src="/res/adm/pages/reactionresponse/reaction_viewer.html?inhibitmenu=yes" name="viewer" scrolling="no" /> <frame src="/res/adm/pages/reactionresponse/reaction_editor.html?inhibitmenu=yes&reaction=$reaction_es&id=$id_es&field=$field_es" name="editor" scrolling="no" /> $end_page'); |
editor.document.writeln('$start_page <frame src="/adm/reactionresponse/reaction_viewer.html?inhibitmenu=yes" name="viewer" scrolling="no" /> <frame src="/adm/reactionresponse/reaction_editor.html?inhibitmenu=yes&reaction=$reaction_es&id=$id_es&field=$field_es" name="editor" scrolling="no" /> $end_page'); |
editor.document.close(); |
editor.document.close(); |
} |
} |
// --> |
// --> |
</script> |
</script> |
Line 617 EDITREACTION
|
Line 664 EDITREACTION
|
return $result; |
return $result; |
} |
} |
|
|
|
sub reaction_preview { |
|
my ($field, $reaction) = @_; |
|
|
|
# NOTE: $reaction should be encoded if the document was sent as XHTML |
|
$reaction =~ s/"//g; |
|
my $result=<<JS_PREVIEW; |
|
<input type="button" value="Help" onclick = "window.open('/adm/reactionresponse/reaction_help.html','','scrollbars=yes,resizable=yes,width=550,height=600')" /> |
|
<script type="text/javascript"> |
|
if (typeof reaction_preview_started === 'undefined') { |
|
var script = document.createElement('script'); |
|
script.type = 'text/javascript'; |
|
script.src = '/adm/reactionresponse/reaction_preview.js'; |
|
document.body.appendChild(script); |
|
reaction_preview_started = true; |
|
} |
|
window.addEventListener('load', function(e) { |
|
var input = document.forms.lonhomework.$field; |
|
input.readonly = ''; |
|
input.value = "$reaction"; |
|
if (!input.id) |
|
input.id = "$field"; |
|
var preview = new LC.HW.ReactionPreview(input.id); |
|
preview.start_preview(); |
|
}, false); |
|
</script> |
|
JS_PREVIEW |
|
return $result; |
|
} |
|
|
sub start_reactionresponse { |
sub start_reactionresponse { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $result; |
my $result; |
Line 640 sub start_reactionresponse {
|
Line 716 sub start_reactionresponse {
|
$safeeval); |
$safeeval); |
$result .='<span class="LC_nobreak">'. |
$result .='<span class="LC_nobreak">'. |
&Apache::edit::text_arg('Answer:','answer',$token,40); |
&Apache::edit::text_arg('Answer:','answer',$token,40); |
$result .=&edit_reaction_button($id,&Apache::edit::html_element_name('answer'),$answer).'</span>'; |
my $inline_chem = &use_inline_chem(); |
|
if ($inline_chem) { |
|
$result .= &reaction_preview(&Apache::edit::html_element_name('answer'), $answer).'</span>'; |
|
} else { |
|
$result .=&edit_reaction_button($id,&Apache::edit::html_element_name('answer'),$answer).'</span>'; |
|
} |
my $initial=&Apache::lonxml::get_param('initial',$parstack,$safeeval); |
my $initial=&Apache::lonxml::get_param('initial',$parstack,$safeeval); |
$result.='<span class="LC_nobreak">'. |
$result.='<span class="LC_nobreak">'. |
&Apache::edit::text_arg('Initial Reaction:','initial',$token,40); |
&Apache::edit::text_arg('Initial Reaction:','initial',$token,40); |
$result .=&edit_reaction_button($id,&Apache::edit::html_element_name('initial'),$initial).'</span>'; |
if ($inline_chem) { |
|
$result .= &reaction_preview(&Apache::edit::html_element_name('initial'), $initial).'</span>'; |
|
} else { |
|
$result .=&edit_reaction_button($id,&Apache::edit::html_element_name('initial'),$initial).'</span>'; |
|
} |
$result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
$result .=&Apache::edit::end_row().&Apache::edit::start_spanning_row(); |
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
Line 732 sub end_reactionresponse {
|
Line 817 sub end_reactionresponse {
|
if (($target eq 'web') && ($Apache::lonhomework::type ne 'exam') && ($status eq 'CAN_ANSWER')) { |
if (($target eq 'web') && ($Apache::lonhomework::type ne 'exam') && ($status eq 'CAN_ANSWER')) { |
my $reaction=$Apache::lonhomework::history{"resource.$partid.$id.submission"}; |
my $reaction=$Apache::lonhomework::history{"resource.$partid.$id.submission"}; |
if ($reaction eq '') { $reaction=&Apache::lonxml::get_param('initial',$parstack,$safeeval); } |
if ($reaction eq '') { $reaction=&Apache::lonxml::get_param('initial',$parstack,$safeeval); } |
$result.=&edit_reaction_button($id,"HWVAL_$id",$reaction); |
if (&use_inline_chem()) { |
|
$result .= &reaction_preview("HWVAL_$id", $reaction); |
|
} else { |
|
$result.=&edit_reaction_button($id,"HWVAL_$id",$reaction); |
|
} |
} |
} |
&Apache::response::end_response(); |
&Apache::response::end_response(); |
return $result; |
return $result; |
} |
} |
|
|
|
sub use_inline_chem { |
|
my $inline_chem = 1; |
|
if (($env{'request.course.id'}) && ($env{'request.state'} ne 'construct')) { |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.inline_chem'})) { |
|
if ($env{'course.'.$env{'request.course.id'}.'.inline_chem'} eq '0') { |
|
$inline_chem = 0; |
|
} |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if ($domdefs{'inline_chem'} eq '0') { |
|
$inline_chem = 0; |
|
} |
|
} |
|
} else { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if ($domdefs{'inline_chem'} eq '0') { |
|
$inline_chem = 0; |
|
} |
|
} |
|
return $inline_chem; |
|
} |
|
|
sub format_prior_response_reaction { |
sub format_prior_response_reaction { |
my ($mode,$answer) =@_; |
my ($mode,$answer) =@_; |
return '<span class="LC_prior_reaction">'. |
return '<span class="LC_prior_reaction">'. |