version 1.432, 2008/10/12 13:35:34
|
version 1.454, 2009/07/06 17:10:10
|
Line 27
|
Line 27
|
# |
# |
### |
### |
|
|
|
=pod |
|
|
|
=head1 NAME |
|
|
|
Apache::structuretags |
|
|
|
=head1 SYNOPSIS |
|
|
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
|
|
=head1 NOTABLE SUBROUTINES |
|
|
|
=over |
|
|
|
=item |
|
|
|
=back |
|
|
|
=cut |
|
|
|
|
package Apache::structuretags; |
package Apache::structuretags; |
|
|
Line 36 use Apache::File();
|
Line 59 use Apache::File();
|
use Apache::lonmenu; |
use Apache::lonmenu; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::lonxml; |
use Apache::lonxml; |
|
use Apache::londefdef; |
use Apache::lonenc(); |
use Apache::lonenc(); |
use Time::HiRes qw( gettimeofday tv_interval ); |
use Time::HiRes qw( gettimeofday tv_interval ); |
use lib '/home/httpd/lib/perl/'; |
use lib '/home/httpd/lib/perl/'; |
Line 74 sub start_tex {
|
Line 98 sub start_tex {
|
if ($target ne 'edit' && $target ne 'modified') { |
if ($target ne 'edit' && $target ne 'modified') { |
my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style); |
my $bodytext=&Apache::lonxml::get_all_text("/tex",$parser,$style); |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
|
|
|
# If inside a table, occurrences of \\ must be removed; |
|
# else the table blows up. |
|
|
|
if (&Apache::londefdef::is_inside_of($tagstack, "table")) { |
|
$bodytext =~ s/\\\\//g; |
|
} |
return $bodytext.'{}'; |
return $bodytext.'{}'; |
} |
} |
} elsif ($target eq "edit" ) { |
} elsif ($target eq "edit" ) { |
Line 148 sub page_start {
|
Line 179 sub page_start {
|
|
|
$extra_head .= &homework_js(); |
$extra_head .= &homework_js(); |
|
|
unless ($env{'environment.wysiwygeditor'} eq 'on') { |
if ($env{'environment.wysiwygeditor'} eq 'on') { |
$extra_head .= &Apache::lonhtmlcommon::dragmath_js(); |
$extra_head .= &Apache::lonhtmlcommon::dragmath_js("FCKEditMathPopup"); |
|
} else { |
|
$extra_head .= &Apache::lonhtmlcommon::dragmath_js("EditMathPopup"); |
} |
} |
|
|
my %body_args; |
my %body_args; |
Line 170 sub page_start {
|
Line 203 sub page_start {
|
} |
} |
} |
} |
|
|
|
my $pageheader = ''; |
if (defined($found{'body'})) { |
if (defined($found{'body'})) { |
$body_args{'skip_phases'}{'body'}=1; |
$body_args{'skip_phases'}{'body'}=1; |
} elsif (!defined($found{'body'}) |
} elsif (!defined($found{'body'}) |
Line 178 sub page_start {
|
Line 212 sub page_start {
|
if ($env{'environment.remote'} ne 'off') { |
if ($env{'environment.remote'} ne 'off') { |
$body_args{'only_body'} = 1; |
$body_args{'only_body'} = 1; |
} |
} |
|
# Breadcrumbs for Construction Space |
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
|
&Apache::lonhtmlcommon::add_breadcrumb({ |
|
'text' => 'Construction Space', |
|
'href' => &Apache::loncommon::authorspace(), |
|
}); |
|
# FIXME Where are we? |
|
# &Apache::lonhtmlcommon::add_breadcrumb({ |
|
# 'text' => 'Problem Editing', # 'Problem Testing' |
|
# 'href' => '', |
|
# }); |
|
$pageheader = &Apache::lonhtmlcommon::breadcrumbs() |
|
.&Apache::loncommon::head_subbox( |
|
&Apache::loncommon::CSTR_pageheader()); |
} |
} |
} elsif (!defined($found{'body'})) { |
} elsif (!defined($found{'body'})) { |
my %add_entries; |
my %add_entries; |
Line 189 sub page_start {
|
Line 237 sub page_start {
|
|
|
my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, |
my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack, |
$safeeval); |
$safeeval); |
if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; } |
if ($bgcolor eq '' ) { $bgcolor = '#FFFFFF'; } |
|
|
$body_args{'bgcolor'} = $bgcolor; |
$body_args{'bgcolor'} = $bgcolor; |
$body_args{'no_title'} = 1; |
# $body_args{'no_title'} = 1; |
$body_args{'force_register'} = 1; |
$body_args{'force_register'} = 1; |
$body_args{'add_entries'} = \%add_entries; |
$body_args{'add_entries'} = \%add_entries; |
if ($env{'environment.remote'} eq 'off' |
if ($env{'environment.remote'} eq 'off' |
&& $env{'request.state'} eq 'construct') { |
&& $env{'request.state'} eq 'construct') { |
$body_args{'only_body'} = 1; |
$body_args{'only_body'} = 1; |
} |
} |
} |
} |
$body_args{'no_auto_mt_title'} = 1; |
$body_args{'no_auto_mt_title'} = 1; |
my $page_start = &Apache::loncommon::start_page($name,$extra_head, |
my $page_start = &Apache::loncommon::start_page($name,$extra_head, |
\%body_args); |
\%body_args); |
|
$page_start .= $pageheader; |
if (!defined($found{'body'}) |
if (!defined($found{'body'}) |
&& $env{'request.state'} ne 'construct' |
&& $env{'request.state'} ne 'construct' |
&& ($target eq 'web' || $target eq 'webgrade')) { |
&& ($target eq 'web' || $target eq 'webgrade')) { |
Line 224 sub page_start {
|
Line 272 sub page_start {
|
if (!defined($found{'form'})) { |
if (!defined($found{'form'})) { |
$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="post" action="'; |
$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="post" action="'; |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
|
$uri .= '?inhibitmenu=yes' if $env{'form.inhibitmenu'}; |
$form_tag_start.=$uri.'" '; |
$form_tag_start.=$uri.'" '; |
if ($target eq 'edit') { |
if ($target eq 'edit') { |
$form_tag_start.=&Apache::edit::form_change_detection(); |
$form_tag_start.=&Apache::edit::form_change_detection(); |
Line 338 sub problem_edit_header {
|
Line 387 sub problem_edit_header {
|
'.&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>'. |
&problem_edit_buttons().' |
&problem_edit_buttons().' |
<hr class="LC_edit_problem_divide" /> |
<hr /> |
'.&Apache::lonxml::message_location().' |
'.&Apache::lonxml::message_location().' |
</div> |
</div> |
'. |
'. |
Line 348 sub problem_edit_header {
|
Line 397 sub problem_edit_header {
|
sub problem_edit_footer { |
sub problem_edit_footer { |
return '</td></tr></table><br /> |
return '</td></tr></table><br /> |
<div class="LC_edit_problem_footer"> |
<div class="LC_edit_problem_footer"> |
<hr class="LC_edit_problem_divide" />'. |
<hr />'. |
&problem_edit_buttons().' |
&problem_edit_buttons().' |
<hr class="LC_edit_problem_divide" /> |
<hr /> |
</div> |
</div> |
'. |
'. |
|
|
Line 387 sub problem_web_to_edit_header {
|
Line 436 sub problem_web_to_edit_header {
|
|
|
my $show_all_foils_text = |
my $show_all_foils_text = |
($Apache::lonhomework::parsing_a_task) ? |
($Apache::lonhomework::parsing_a_task) ? |
&mt(' Show All Instances') |
&mt('Show All Instances') |
: &mt(' Show All Foils'); |
: &mt('Show All Foils'); |
|
|
my $show_all= '<span class="LC_nobreak"><label><input type="checkbox" name="showallfoils" '; |
my $show_all= '<span class="LC_nobreak"><label for="showallfoils">' |
if (defined($env{'form.showallfoils'})) { $show_all.='checked="checked"'; } |
.'<input type="checkbox" name="showallfoils"'; |
$show_all.= ' />'.$show_all_foils_text.'</label></span>'; |
if (defined($env{'form.showallfoils'})) { $show_all.=' checked="checked"'; } |
|
$show_all.= ' /> '.$show_all_foils_text |
|
.'</label></span>'; |
|
|
|
|
|
|
Line 465 $show_all
|
Line 516 $show_all
|
<input type="submit" name="clear_style_file" accesskey="d" value="'.&mt('Show Default View').'" /> |
<input type="submit" name="clear_style_file" accesskey="d" value="'.&mt('Show Default View').'" /> |
<input type="submit" name="resetdata" accesskey="r" value="'.&mt('Reset Submissions').'" /> |
<input type="submit" name="resetdata" accesskey="r" value="'.&mt('Reset Submissions').'" /> |
</div> |
</div> |
<hr class="LC_edit_problem_divide" /> |
<hr /> |
<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:').'" /> |
Line 489 $show_all
|
Line 540 $show_all
|
|
|
$result.=' |
$result.=' |
</div> |
</div> |
<div class="LC_edit_problem_header_edit_row">'; |
<hr /> |
|
<div>'; |
$result.='<input type="hidden" name="problemmode" value="view" />'; |
$result.='<input type="hidden" name="problemmode" value="view" />'; |
$result .= '<input type="button" name="submitmode" accesskey="e" value="'.&mt('Edit').'" '. |
$result .= '<input type="button" name="submitmode" accesskey="e" value="'.&mt('Edit').'" '. |
'onclick="javascript:setmode(this.form,'."'edit'".')" />'; |
'onclick="javascript:setmode(this.form,'."'edit'".')" />'; |
Line 497 $show_all
|
Line 549 $show_all
|
'onclick="javascript:setmode(this.form,'."'editxml'".')" />'; |
'onclick="javascript:setmode(this.form,'."'editxml'".')" />'; |
$result.=' |
$result.=' |
</div> |
</div> |
|
<hr /> |
'.&Apache::lonxml::message_location().' |
'.&Apache::lonxml::message_location().' |
</div>'; |
</div>'; |
return $result; |
return $result; |
Line 541 sub initialize_storage {
|
Line 594 sub initialize_storage {
|
if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); } |
if ($temp =~ m/^error:.*/) { %Apache::lonhomework::history=(); } |
} |
} |
|
|
# -------------------------------------------------------------finalize_storage |
=pod |
# Stores away the result has to a student's environment |
|
# checks form.grade_ for specific values, other wises stores |
=item finalize_storage() |
# to the running users environment |
|
# Will increment totals for attempts, students, and corrects |
Stores away the result has to a student's environment |
# if running user has student role. |
checks form.grade_ for specific values, other wises stores |
|
to the running users environment |
|
Will increment totals for attempts, students, and corrects |
|
if running user has student role. |
|
|
|
=cut |
|
|
|
|
sub finalize_storage { |
sub finalize_storage { |
my ($given_symb) = @_; |
my ($given_symb) = @_; |
my $result; |
my $result; |
Line 577 sub finalize_storage {
|
Line 637 sub finalize_storage {
|
return $result; |
return $result; |
} |
} |
|
|
# -------------------------------------------------------------store_aggregates |
=pod |
# Sends hash of values to be incremented in nohist_resourcetracker.db |
|
# for the course. Increments total number of attempts, unique students |
item store_aggregates() |
# and corrects for each part for an instance of a problem, as appropriate. |
|
|
Sends hash of values to be incremented in nohist_resourcetracker.db |
|
for the course. Increments total number of attempts, unique students |
|
and corrects for each part for an instance of a problem, as appropriate. |
|
|
|
=cut |
|
|
sub store_aggregates { |
sub store_aggregates { |
my ($symb,$courseid) = @_; |
my ($symb,$courseid) = @_; |
my %aggregate; |
my %aggregate; |
Line 628 sub checkout_msg {
|
Line 694 sub checkout_msg {
|
return (<<ENDCHECKOUT); |
return (<<ENDCHECKOUT); |
<h2>$lt{'resource'}</h2> |
<h2>$lt{'resource'}</h2> |
<p>$lt{'id_expln'}</p> |
<p>$lt{'id_expln'}</p> |
<font color="red"> |
<p class="LC_warning">$lt{'warning'}</p> |
<p>$lt{'warning'}</p> |
<form name="checkout" method="post" action="$uri"> |
</font> |
|
<form name="checkout" method="POST" action="$uri"> |
|
<input type="hidden" name="doescheckout" value="yes" /> |
<input type="hidden" name="doescheckout" value="yes" /> |
<input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" /> |
<input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" /> |
</form> |
</form> |
Line 665 sub firstaccess_msg {
|
Line 729 sub firstaccess_msg {
|
my $buttontext = &mt('Show Resource'); |
my $buttontext = &mt('Show Resource'); |
my $timertext = &mt('Start Timer?'); |
my $timertext = &mt('Start Timer?'); |
$result .= (<<ENDCHECKOUT); |
$result .= (<<ENDCHECKOUT); |
<form name="markaccess" method="POST" action="$uri"> |
<form name="markaccess" method="post" action="$uri"> |
<input type="hidden" name="markaccess" value="yes" /> |
<input type="hidden" name="markaccess" value="yes" /> |
<input type="button" name="accessbutton" value="$buttontext" onClick="javascript:if (confirm('$timertext')) { document.markaccess.submit(); }" /> |
<input type="button" name="accessbutton" value="$buttontext" onClick="javascript:if (confirm('$timertext')) { document.markaccess.submit(); }" /> |
</form> |
</form> |
Line 858 sub start_problem {
|
Line 922 sub start_problem {
|
} |
} |
if ($env{'request.role.adv'}) { |
if ($env{'request.role.adv'}) { |
$form_tag_start.= |
$form_tag_start.= |
' <label><input type="checkbox" name="showallfoils" '; |
' <label><input type="checkbox" name="showallfoils"'; |
if (defined($env{'form.showallfoils'})) { |
if (defined($env{'form.showallfoils'})) { |
$form_tag_start.='checked="on"'; |
$form_tag_start.=' checked="checked"'; |
} |
} |
$form_tag_start.= ' />'.&mt(' Show All Foils'). |
$form_tag_start.= ' />'.&mt(' Show All Foils'). |
'</label>'; |
'</label>'; |
Line 893 sub start_problem {
|
Line 957 sub start_problem {
|
my $msg; |
my $msg; |
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
$msg.='<h1>'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'</h1>'; |
|
} elsif ($status eq 'NOT_IN_A_SLOT') { |
|
$msg.='<h1>'.&mt('You are not currently signed up to work at this time and/or place.').'</h1>'; |
} elsif ($status ne 'NOT_YET_VIEWED') { |
} elsif ($status ne 'NOT_YET_VIEWED') { |
$msg.='<h1>'.&mt('Not open to be viewed').'</h1>'; |
$msg.='<h1>'.&mt('Not open to be viewed').'</h1>'; |
} |
} |
Line 903 sub start_problem {
|
Line 969 sub start_problem {
|
} elsif ($status eq 'NOT_YET_VIEWED') { |
} elsif ($status eq 'NOT_YET_VIEWED') { |
$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"); |
} |
} |
$result.=$msg.'<br />'; |
$result.=$msg.'<br />'; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $startminipage = ($env{'form.problem_split'}=~/yes/i)? '' |
my $startminipage = ($env{'form.problem_split'}=~/yes/i)? '' |
: '\begin{minipage}{\textwidth}'; |
: '\begin{minipage}{\textwidth}'; |
$result.='\begin{document}\noindent \vskip 1 mm '. |
$result.='\noindent \vskip 1 mm '. |
$startminipage.'\vskip 0 mm'; |
$startminipage.'\vskip 0 mm'; |
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm '; |
$result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm '; |
Line 1010 sub end_problem {
|
Line 1076 sub end_problem {
|
$allow_print_points=0; |
$allow_print_points=0; |
} |
} |
my $name_of_resourse= &Apache::lonxml::latex_special_symbols(&get_resource_name($parstack,$safeeval),'header'); |
my $name_of_resourse= &Apache::lonxml::latex_special_symbols(&get_resource_name($parstack,$safeeval),'header'); |
my $begin_doc='\begin{document} \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$env{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent '; |
my $begin_doc=' \typeout{STAMPOFPASSEDRESOURCESTART Resource <h2>"'.$name_of_resourse.'"</h2> located in <br /><small><b>'.$env{'request.uri'}.'</b></small><br /> STAMPOFPASSEDRESOURCEEND} \noindent '; |
my $toc_line='\vskip 1 mm\noindent '.$startminipage. |
my $toc_line='\vskip 1 mm\noindent '.$startminipage. |
'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}'; |
'\addcontentsline{toc}{subsection}{'.$name_of_resourse.'}'; |
|
|
Line 1020 sub end_problem {
|
Line 1086 sub end_problem {
|
|
|
my $duetime = &Apache::lonnet::EXT("resource.$id.duedate"); |
my $duetime = &Apache::lonnet::EXT("resource.$id.duedate"); |
my $duedate = POSIX::strftime("%c",localtime($duetime)); |
my $duedate = POSIX::strftime("%c",localtime($duetime)); |
|
my $duedate_text = &mt('Due date: [_1]' |
|
,&Apache::lonlocal::locallocaltime($duetime)); |
my $temp_file; |
my $temp_file; |
my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.due"; |
my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.due"; |
|
|
Line 1051 sub end_problem {
|
Line 1119 sub end_problem {
|
if (not $env{'request.symb'} =~ m/\.page_/) { |
if (not $env{'request.symb'} =~ m/\.page_/) { |
if(not $duedate=~m/1969/ and $Apache::lonhomework::type ne 'exam') { |
if(not $duedate=~m/1969/ and $Apache::lonhomework::type ne 'exam') { |
$frontmatter .= $begin_doc. |
$frontmatter .= $begin_doc. |
'\textit{Due date: '.$duedate.'} '.$toc_line; |
'\textit{'.$duedate_text.'} '.$toc_line; |
} else { |
} else { |
$frontmatter.= $begin_doc.$toc_line; |
$frontmatter.= $begin_doc.$toc_line; |
if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { $frontmatter .= '\fbox{\textit{'.$weight.' pt}}';} |
if ($Apache::lonhomework::type eq 'exam' and $allow_print_points==1) { $frontmatter .= '\fbox{\textit{'.$weight.' pt}}';} |
} |
} |
} else { |
} else { |
$frontmatter .= '\vskip 1mm\textit{Due date: '.$duedate.'} \\\\\\\\'.$startminipage; |
$frontmatter .= '\vskip 1mm\textit{'.$duedate_text.'} \\\\\\\\'.$startminipage; |
} |
} |
} else { |
} else { |
if (not $env{'request.symb'} =~ m/\.page_/) { |
if (not $env{'request.symb'} =~ m/\.page_/) { |
Line 1285 sub start_languageblock {
|
Line 1353 sub start_languageblock {
|
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
my $include = $token->[2]->{'include'}; |
my $include = $token->[2]->{'include'}; |
my $exclude = $token->[2]->{'exclude'}; |
my $exclude = $token->[2]->{'exclude'}; |
my @preferred_languages=&Apache::loncommon::preferred_languages(); |
my @preferred_languages=&Apache::lonlocal::preferred_languages(); |
# This should not even happen, since we should at least have the server language |
# This should not even happen, since we should at least have the server language |
if (!$preferred_languages[0]) { $preferred_languages[0]='en'; } |
if (!$preferred_languages[0]) { $preferred_languages[0]='en'; } |
# Now loop over all languages in order of preference |
# Now loop over all languages in order of preference |
Line 1553 sub start_randomlist {
|
Line 1621 sub start_randomlist {
|
my $showarg=&Apache::lonxml::get_param('show',$parstack,$safeeval); |
my $showarg=&Apache::lonxml::get_param('show',$parstack,$safeeval); |
$showarg--; |
$showarg--; |
if ( ($showarg >= 0) && ($showarg < $show) ) { $show = $showarg; } |
if ( ($showarg >= 0) && ($showarg < $show) ) { $show = $showarg; } |
|
if (($target eq 'analyze') && ($env{'form.check_parts_withrandomlist'})) { |
|
my @currlist; |
|
my $part = $Apache::inputtags::part; |
|
if ($part ne '') { |
|
if (ref($Apache::lonhomework::analyze{'parts_withrandomlist'}) eq 'ARRAY') { |
|
my @currlist = @{$Apache::lonhomework::analyze{'parts_withrandomlist'}}; |
|
if (!(grep(/^\Q$part\E$/,@currlist))) { |
|
push(@{$Apache::lonhomework::analyze{'parts_withrandomlist'}},$part); |
|
} |
|
} else { |
|
push(@{$Apache::lonhomework::analyze{'parts_withrandomlist'}},$part); |
|
} |
|
} |
|
} |
for(0 .. $show) { |
for(0 .. $show) { |
$bodytext .= "$randomlist[ $idx_arr[$_] ]"; |
$bodytext .= "$randomlist[ $idx_arr[$_] ]"; |
} |
} |
Line 1896 sub end_startouttext {
|
Line 1978 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>".&mt('Text Block')."</td>" |
<td>".&mt('Delete:'). |
.'<td><span class="LC_nobreak">'.&mt('Delete?').' ' |
&Apache::edit::deletelist($target,$token) |
.&Apache::edit::deletelist($target,$token) |
."</td>"; |
.'</span></td>'; |
unless ($env{'environment.wysiwygeditor'} eq 'on') { |
unless ($env{'environment.wysiwygeditor'} eq 'on') { |
$result.='<td align="left">' |
$result .= '<td align="left">' |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.&Apache::lonhtmlcommon::dragmath_button($areaid,1) |
.'</td>' |
.'</td>' |
.'<td>' |
.'<td>' |
.&Apache::edit::insertlist($target,$token) |
.&Apache::edit::insertlist($target,$token) |
.'</td>'; |
.'</td>'; |
} |
} |
$result.='<td align="right" valign="top">' . |
$result.='<td align="right" valign="top">' . |
&Apache::loncommon::helpLatexCheatsheet(). |
&Apache::loncommon::helpLatexCheatsheet(). |
&Apache::edit::end_row(). |
&Apache::edit::end_row(). |
&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::start_spanning_row()."\n". |
&Apache::edit::editfield($token->[1],$text,"",80,8,1); |
&Apache::edit::editfield($token->[1],$text,"",80,8,1); |
Line 1972 sub start_simpleeditbutton {
|
Line 2054 sub start_simpleeditbutton {
|
my $url=$env{'request.noversionuri'}; |
my $url=$env{'request.noversionuri'}; |
$url=~s/\?.*$//; |
$url=~s/\?.*$//; |
my ($symb) = &Apache::lonnet::whichuser(); |
my ($symb) = &Apache::lonnet::whichuser(); |
$result='<table width="100%" bgcolor="#FFFFAA" border="2"><tr><td>'. |
# Warning makes more sense and is more important on edit screen |
'<a href="'.$url.'/smpedit?symb='.&escape($symb).'">'.&mt('Edit').'</a> - '.&mt('Note: it can take up to 10 minutes for changes to take effect for all users.'). |
# $result='<p class="LC_warning">' |
&Apache::loncommon::help_open_topic('Caching').'</td></tr></table><br />'; |
# .&mt('Note: it can take up to 10 minutes for changes to take effect for all users.') |
|
# .&Apache::loncommon::help_open_topic('Caching') |
|
# .'</p>'; |
|
$result.=&Apache::lonhtmlcommon::start_funclist() |
|
.&Apache::lonhtmlcommon::add_item_funclist( |
|
'<a href="'.$url.'/smpedit?symb='.&escape($symb).'">' |
|
.&mt('Edit').'</a>') |
|
.&Apache::lonhtmlcommon::end_funclist(); |
|
|
} |
} |
return $result; |
return $result; |
} |
} |
Line 1991 sub practice_problem_header {
|
Line 2081 sub practice_problem_header {
|
|
|
1; |
1; |
__END__ |
__END__ |
|
|
|
=pod |
|
|
|
=back |
|
|
|
=cut |