version 1.512.2.9, 2015/03/11 14:50:10
|
version 1.512.2.17, 2019/08/07 21:44:28
|
Line 270 sub homework_js {
|
Line 270 sub homework_js {
|
$jstimeout = 1000 * $timeout; |
$jstimeout = 1000 * $timeout; |
} |
} |
return &Apache::loncommon::resize_textarea_js(). |
return &Apache::loncommon::resize_textarea_js(). |
|
&Apache::loncommon::colorfuleditor_js(). |
&setmode_javascript(). |
&setmode_javascript(). |
<<"JS"; |
<<"JS"; |
<script type="text/javascript"> |
<script type="text/javascript"> |
Line 389 sub setmode_javascript {
|
Line 390 sub setmode_javascript {
|
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
function setmode(form,probmode) { |
function setmode(form,probmode) { |
|
var initial = form.problemmode.value; |
form.problemmode.value = probmode; |
form.problemmode.value = probmode; |
form.submit(); |
form.submit(); |
|
form.problemmode.value = initial; |
} |
} |
// ]]> |
// ]]> |
</script> |
</script> |
Line 416 sub page_start {
|
Line 419 sub page_start {
|
$extra_head .= &homework_js(). |
$extra_head .= &homework_js(). |
&Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); |
&Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
my %textarea_args = ( |
my %textarea_args; |
|
if (($env{'request.state'} ne 'construct') || |
|
($env{'environment.nocodemirror'})) { |
|
%textarea_args = ( |
dragmath => 'math', |
dragmath => 'math', |
); |
); |
|
} |
$extra_head .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); |
$extra_head .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); |
} |
} |
my $is_task = ($env{'request.uri'} =~ /\.task$/); |
my $is_task = ($env{'request.uri'} =~ /\.task$/); |
Line 489 sub page_start {
|
Line 496 sub page_start {
|
} |
} |
} |
} |
if ($needs_upload) { |
if ($needs_upload) { |
$extra_head .= &Apache::lonhtmlcommon::file_submissionchk_js(); |
$extra_head .= &Apache::lonhtmlcommon::file_submissionchk_js(). |
|
'<script type="text/javascript" '. |
|
'src="/res/adm/includes/file_upload.js"></script>'; |
} |
} |
} |
} |
|
|
Line 643 sub setup_rndseed {
|
Line 652 sub setup_rndseed {
|
unless (defined($questiontype)) { |
unless (defined($questiontype)) { |
$questiontype = $Apache::lonhomework::type; |
$questiontype = $Apache::lonhomework::type; |
} |
} |
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') |
|| $Apache::lonhomework::history{'resource.CODE'}) { |
|| ($Apache::lonhomework::history{'resource.CODE'}) |
|
|| (($env{'form.code_for_randomlist'}) && ($target eq 'analyze'))) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['rndseed']); |
['rndseed']); |
$rndseed=$env{'form.rndseed'}; |
$rndseed=$env{'form.rndseed'}; |
Line 655 sub setup_rndseed {
|
Line 665 sub setup_rndseed {
|
if (!$rndseed) { |
if (!$rndseed) { |
$rndseed=time; |
$rndseed=time; |
} |
} |
$env{'form.rndseed'}=$rndseed; |
unless ($env{'form.code_for_randomlist'}) { |
|
$env{'form.rndseed'}=$rndseed; |
|
} |
} |
} |
if (($env{'request.state'} eq "construct") && |
if (($env{'request.state'} eq "construct") && |
($Apache::lonhomework::type eq 'randomizetry')) { |
($Apache::lonhomework::type eq 'randomizetry')) { |
Line 683 sub setup_rndseed {
|
Line 695 sub setup_rndseed {
|
$rndseed=join(':',&Apache::lonnet::digest($rndseed)); |
$rndseed=join(':',&Apache::lonnet::digest($rndseed)); |
} |
} |
} |
} |
if ($Apache::lonhomework::history{'resource.CODE'}) { |
if (($env{'form.code_for_randomlist'}) && ($target eq 'analyze')) { |
|
$env{'form.CODE'} = $env{'form.code_for_randomlist'}; |
|
$rndseed=&Apache::lonnet::rndseed(); |
|
undef($env{'form.CODE'}); |
|
} elsif ($Apache::lonhomework::history{'resource.CODE'}) { |
$rndseed=&Apache::lonnet::rndseed(); |
$rndseed=&Apache::lonnet::rndseed(); |
} |
} |
$set_safespace = 1; |
$set_safespace = 1; |
Line 751 sub problem_edit_action_button {
|
Line 767 sub problem_edit_action_button {
|
|
|
sub problem_edit_buttons { |
sub problem_edit_buttons { |
my ($mode)=@_; |
my ($mode)=@_; |
|
# Buttons that save |
|
my $result = '<div style="float:right">'; |
|
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"; |
# Buttons that do not save |
# Buttons that do not save |
my $result='<div class="LC_edit_problem_discards">'. |
$result .= '<div>'. |
&problem_edit_action_button('subdiscview','discard','d','Discard Edits and View',1); |
&problem_edit_action_button('subdiscview','discard','d','Discard Edits and View',1); |
if ($mode eq 'editxml') { |
if ($mode eq 'editxml') { |
$result.=&problem_edit_action_button('subedit','edit','e','Edit',1); |
$result.=&problem_edit_action_button('subedit','edit','e','Edit',1); |
$result.=&problem_edit_action_button('subundo','undoxml','u','Undo',1); |
$result.=&problem_edit_action_button('subundo','undoxml','u','Undo',1); |
$result.=&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1); |
if ($env{'environment.nocodemirror'}) { |
|
$result.=&Apache::lonhtmlcommon::dragmath_button("LC_editxmltext",1); |
|
} |
} else { |
} else { |
$result.=&problem_edit_action_button('subeditxml','editxml','x','EditXML',1); |
$result.=&problem_edit_action_button('subeditxml','editxml','x','EditXML',1); |
$result.=&problem_edit_action_button('subundo','undo','u','Undo',1); |
$result.=&problem_edit_action_button('subundo','undo','u','Undo',1); |
} |
} |
$result.="\n</div>"; |
$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; |
return $result; |
} |
} |
|
|
sub problem_edit_header { |
sub problem_edit_header { |
return '<input type="hidden" name="submitted" value="edit" />'. |
my ($mode)=@_; |
|
my $return = '<input type="hidden" name="submitted" value="edit" />'. |
&remember_problem_state('edit').' |
&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').$mode.&Apache::loncommon::help_open_menu('Problem Editing','Problem_Editor_XML_Index',5,'Authoring').' |
</div>'. |
</div><div class="LC_edit_actionbar" id="actionbar">'. |
'<input type="hidden" name="problemmode" value="saveedit" />'. |
'<input type="hidden" name="problemmode" value="saveedit" />'. |
&problem_edit_buttons().' |
&problem_edit_buttons(); |
<hr style="clear:both;" /> |
|
'.&Apache::lonxml::message_location().' |
$return .= '</div></div>' . &Apache::lonxml::message_location(); |
</div> |
$return .= '<link rel="stylesheet" href="/adm/codemirror/codemirror-combined.css" /> |
'. |
<script type="text/javascript" src="/adm/codemirror/codemirror-compressed-colorful.js"></script>'; |
'<table id="LC_edit_problem_colorful" border="0" width="100%"><tr><td bgcolor="#F8F8F8">'; |
|
|
$return .= '<script type="text/javascript" src="/adm/jQuery/addons/jquery-scrolltofixed.js"></script> |
|
<script type="text/javascript"> |
|
// unless internet explorer |
|
if (!(window.navigator.appName == "Microsoft Internet Explorer" && (document.documentMode || document.compatMode))){ |
|
$(document).ready( |
|
function() { |
|
$(\'.LC_edit_actionbar\').scrollToFixed( |
|
{ |
|
fixed: function(){ |
|
//$(this).find(\'.LC_edit_actionbar\').css(\'height\', \'31px\'); |
|
$(this).find(\'.LC_edit_actionbar\'); |
|
} |
|
} |
|
); |
|
} |
|
); |
|
} |
|
</script> |
|
<table id="LC_edit_problem_colorful" border="0" width="100%"><tr><td bgcolor="#F8F8F8">'; |
|
return $return; |
} |
} |
|
|
|
|
sub problem_edit_footer { |
sub problem_edit_footer { |
|
my $resource = $env{'request.ambiguous'}; |
return '</td></tr></table><br /> |
return '</td></tr></table><br /> |
<div class="LC_edit_problem_footer"> |
<div class="LC_edit_problem_footer"> |
<hr />'. |
<hr />'. |
&problem_edit_buttons().' |
&problem_edit_buttons().' |
<hr style="clear:both;" /> |
<hr style="clear:both;" /> |
|
<script type="text/javascript"> |
|
restoreState("'.$resource.'"); |
|
restoreScrollPosition("'.$resource.'"); |
|
</script> |
</div> |
</div> |
'. |
'. |
"\n</form>\n".&Apache::loncommon::end_page(); |
"\n</form>\n".&Apache::loncommon::end_page(); |
Line 1361 sub init_problem_globals {
|
Line 1406 sub init_problem_globals {
|
@Apache::inputtags::importlist = (); |
@Apache::inputtags::importlist = (); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous_version=(); |
@Apache::inputtags::previous_version=(); |
|
$Apache::inputtags::leniency=''; |
$Apache::structuretags::printanswer='No'; |
$Apache::structuretags::printanswer='No'; |
@Apache::structuretags::whileconds=(); |
@Apache::structuretags::whileconds=(); |
@Apache::structuretags::whilebody=(); |
@Apache::structuretags::whilebody=(); |
Line 1376 sub reset_problem_globals {
|
Line 1422 sub reset_problem_globals {
|
undef(%Apache::lonhomework::history); |
undef(%Apache::lonhomework::history); |
undef(%Apache::lonhomework::results); |
undef(%Apache::lonhomework::results); |
undef($Apache::inputtags::part); |
undef($Apache::inputtags::part); |
|
undef($Apache::inputtags::leniency); |
if ($type eq 'Task') { |
if ($type eq 'Task') { |
undef($Apache::inputtags::slot_name); |
undef($Apache::inputtags::slot_name); |
} elsif ($type eq 'problem') { |
} elsif ($type eq 'problem') { |
Line 1481 sub start_problem {
|
Line 1528 sub start_problem {
|
my $resource_due; |
my $resource_due; |
|
|
my $name= &get_resource_name($parstack,$safeeval); |
my $name= &get_resource_name($parstack,$safeeval); |
my ($result,$form_tag_start,$slot_name,$slot,$probpartlist); |
my ($result,$form_tag_start,$slot_name,$slot,$probpartlist,$firstaccres); |
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex') { |
$target eq 'tex') { |
if ($env{'form.markaccess'}) { |
if ($env{'form.markaccess'}) { |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
my @interval=&Apache::lonnet::EXT("resource.0.interval"); |
&Apache::lonnet::set_first_access($interval[1],$interval[0]); |
my $is_set = &Apache::lonnet::set_first_access($interval[1],$interval[0]); |
|
unless (($is_set eq 'ok') || ($is_set eq 'already_set')) { |
|
$firstaccres = $is_set; |
|
} |
} |
} |
|
|
($status,$accessmsg,$slot_name,$slot) = |
($status,$accessmsg,$slot_name,$slot) = |
Line 1601 sub start_problem {
|
Line 1651 sub start_problem {
|
} elsif ($status eq 'UNCHECKEDOUT') { |
} elsif ($status eq 'UNCHECKEDOUT') { |
$msg.=&checkout_msg(); |
$msg.=&checkout_msg(); |
} elsif ($status eq 'NOT_YET_VIEWED') { |
} elsif ($status eq 'NOT_YET_VIEWED') { |
|
if ($firstaccres) { |
|
$msg .= '<p class="LC_error">'. |
|
&mt('A problem occurred when trying to start the timer.').'</p>'; |
|
} |
$msg.=&firstaccess_msg($accessmsg,$symb); |
$msg.=&firstaccess_msg($accessmsg,$symb); |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
} elsif ($status eq 'NOT_IN_A_SLOT') { |
$msg.=&Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work"); |
$msg.=&Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work"); |
Line 1971 sub end_library {
|
Line 2025 sub end_library {
|
&& ($#$tagstack eq 0 && $$tagstack[0] eq 'library') |
&& ($#$tagstack eq 0 && $$tagstack[0] eq 'library') |
&& $env{'request.state'} eq "construct") { |
&& $env{'request.state'} eq "construct") { |
$result.='</form>'.&Apache::loncommon::end_page({'discussion' => 1}); |
$result.='</form>'.&Apache::loncommon::end_page({'discussion' => 1}); |
|
} elsif ($target eq 'meta') { |
|
$result.=&Apache::response::meta_response_order(); |
} |
} |
if ( $#$tagstack eq 0 && $$tagstack[0] eq 'library') { |
if ( $#$tagstack eq 0 && $$tagstack[0] eq 'library') { |
&reset_problem_globals('library'); |
&reset_problem_globals('library'); |
Line 2453 sub start_randomlist {
|
Line 2509 sub start_randomlist {
|
} |
} |
if (@randomlist) { |
if (@randomlist) { |
my @idx_arr = (0 .. $#randomlist); |
my @idx_arr = (0 .. $#randomlist); |
&Apache::structuretags::shuffle(\@idx_arr); |
if ($env{'form.code_for_randomlist'}) { |
|
&Apache::structuretags::shuffle(\@idx_arr,$target); |
|
undef($env{'form.code_for_randomlist'}); |
|
} else { |
|
&Apache::structuretags::shuffle(\@idx_arr); |
|
} |
my $bodytext = ''; |
my $bodytext = ''; |
my $show=$#randomlist; |
my $show=$#randomlist; |
my $showarg=&Apache::lonxml::get_param('show',$parstack,$safeeval); |
my $showarg=&Apache::lonxml::get_param('show',$parstack,$safeeval); |
Line 2492 sub start_randomlist {
|
Line 2553 sub start_randomlist {
|
} |
} |
|
|
sub shuffle { |
sub shuffle { |
my $a=shift; |
my ($a,$target) = @_; |
my $i; |
my $i; |
if (ref($a) eq 'ARRAY' && @$a) { |
if (ref($a) eq 'ARRAY' && @$a) { |
&Apache::response::pushrandomnumber(); |
&Apache::response::pushrandomnumber(undef,$target); |
for($i=@$a;--$i;) { |
for($i=@$a;--$i;) { |
my $j=int(&Math::Random::random_uniform() * ($i+1)); |
my $j=int(&Math::Random::random_uniform() * ($i+1)); |
next if $i == $j; |
next if $i == $j; |
Line 2579 sub start_part {
|
Line 2640 sub start_part {
|
my $id= &Apache::lonxml::get_id($parstack,$safeeval); |
my $id= &Apache::lonxml::get_id($parstack,$safeeval); |
$Apache::inputtags::part=$id; |
$Apache::inputtags::part=$id; |
push(@Apache::inputtags::partlist,$id); |
push(@Apache::inputtags::partlist,$id); |
|
$Apache::inputtags::leniency=''; |
@Apache::inputtags::response=(); |
@Apache::inputtags::response=(); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous=(); |
@Apache::inputtags::previous_version=(); |
@Apache::inputtags::previous_version=(); |
Line 2744 sub end_part {
|
Line 2806 sub end_part {
|
} |
} |
pop @Apache::inputtags::status; |
pop @Apache::inputtags::status; |
$Apache::inputtags::part=''; |
$Apache::inputtags::part=''; |
|
$Apache::inputtags::leniency=''; |
$Apache::lonhomework::type = $Apache::lonhomework::default_type; |
$Apache::lonhomework::type = $Apache::lonhomework::default_type; |
return $result; |
return $result; |
} |
} |
Line 2894 sub end_startouttext {
|
Line 2957 sub end_startouttext {
|
if ($target eq 'edit') { |
if ($target eq 'edit') { |
my $areaid = 'homework_edit_'.$Apache::lonxml::curdepth; |
my $areaid = 'homework_edit_'.$Apache::lonxml::curdepth; |
$text=&Apache::lonxml::get_all_text("endouttext",$parser,$style); |
$text=&Apache::lonxml::get_all_text("endouttext",$parser,$style); |
$result.=&Apache::edit::start_table($token)."<tr><td>".&mt('Text Block')."</td>" |
$result.=&Apache::edit::start_table($token)."<tr><td>".&Apache::loncommon::insert_folding_button() |
|
." ".&mt('Text Block')."</td>" |
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
.&Apache::edit::deletelist($target,$token) |
.&Apache::edit::deletelist($target,$token) |
.'</span></td>' |
.'</span></td>' |
.'<td><span id="math_'.$areaid.'">' |
.'<td><span id="math_'.$areaid.'">'; |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
if ($env{'environment.nocodemirror'}) { |
.'</span></td>' |
$result.=&Apache::lonhtmlcommon::dragmath_button($areaid,1); |
|
} else { |
|
$result.=' '; |
|
} |
|
$result.='</span></td>' |
.'<td>' |
.'<td>' |
.&Apache::edit::insertlist($target,$token) |
.&Apache::edit::insertlist($target,$token) |
.'</td>' |
.'</td>' |