version 1.541, 2013/06/04 22:20:20
|
version 1.548, 2014/06/21 23:36:05
|
Line 144 $metamode = 0;
|
Line 144 $metamode = 0;
|
# turns on and of run::evaluate actually derefencing var refs |
# turns on and of run::evaluate actually derefencing var refs |
$evaluate = 1; |
$evaluate = 1; |
|
|
# data structure for eidt mode, determines what tags can go into what other tags |
# data structure for edit mode, determines what tags can go into what other tags |
%insertlist=(); |
%insertlist=(); |
|
|
# stores the list of active tag namespaces |
# stores the list of active tag namespaces |
Line 306 sub xmlparse {
|
Line 306 sub xmlparse {
|
&clean_safespace($safeeval); |
&clean_safespace($safeeval); |
|
|
if (@script_var_displays) { |
if (@script_var_displays) { |
my $scriptoutput = join('',@script_var_displays); |
if ($finaloutput =~ m{</body>\s*</html>\s*$}s) { |
$finaloutput=~s{(</body>\s*</html>)\s*$}{$scriptoutput$1}s; |
my $scriptoutput = join('',@script_var_displays); |
|
$finaloutput=~s{(</body>\s*</html>)\s*$}{$scriptoutput$1}s; |
|
} else { |
|
$finaloutput .= join('',@script_var_displays); |
|
} |
undef(@script_var_displays); |
undef(@script_var_displays); |
} |
} |
&init_state(); |
&init_state(); |
Line 651 sub init_safespace {
|
Line 655 sub init_safespace {
|
my ($target,$safeeval,$safehole,$safeinit) = @_; |
my ($target,$safeeval,$safehole,$safeinit) = @_; |
$safeeval->reval('use LaTeX::Table;'); |
$safeeval->reval('use LaTeX::Table;'); |
$safeeval->deny_only(':dangerous'); |
$safeeval->deny_only(':dangerous'); |
$safeeval->reval('use Math::Complex;'); |
$safeeval->reval('use LONCAPA::LCMathComplex;'); |
$safeeval->permit_only(":default"); |
$safeeval->permit_only(":default"); |
$safeeval->permit("entereval"); |
$safeeval->permit("entereval"); |
$safeeval->permit(":base_math"); |
$safeeval->permit(":base_math"); |
Line 1359 sub do_registered_ssi {
|
Line 1363 sub do_registered_ssi {
|
|
|
sub add_script_result { |
sub add_script_result { |
my ($display) = @_; |
my ($display) = @_; |
push(@script_var_displays, $display); |
if ($display ne '') { |
|
push(@script_var_displays, $display); |
|
} |
} |
} |
|
|
# |
# |
Line 1510 sub renderingoptions {
|
Line 1516 sub renderingoptions {
|
} |
} |
|
|
sub inserteditinfo { |
sub inserteditinfo { |
my ($filecontents,$filetype,$filename,$symb,$itemtitle,$folderpath,$uri) = @_; |
my ($filecontents,$filetype,$filename,$symb,$itemtitle,$folderpath,$uri,$action) = @_; |
$filecontents = &HTML::Entities::encode($filecontents,'<>&"'); |
$filecontents = &HTML::Entities::encode($filecontents,'<>&"'); |
my $xml_help = ''; |
my $xml_help = ''; |
my $initialize=''; |
my $initialize=''; |
my $textarea_id = 'filecont'; |
my $textarea_id = 'filecont'; |
my ($dragmath_button,$deps_button); |
my ($dragmath_button,$deps_button,$context,$cnum,$cdom,$add_to_onload, |
my ($add_to_onload, $add_to_onresize); |
$add_to_onresize,$init_dragmath); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
if (($filetype eq 'html') && (&Apache::lonhtmlcommon::htmlareabrowser())) { |
if ($filetype eq 'html') { |
my $lang = &Apache::lonhtmlcommon::htmlarea_lang(); |
if ($env{'request.course.id'}) { |
my %textarea_args = ( |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
fullpage => 'true', |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
dragmath => 'math', |
if ($uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E}) { |
); |
$context = 'syllabus'; |
$initialize .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); |
} |
|
} |
|
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
|
my $lang = &Apache::lonhtmlcommon::htmlarea_lang(); |
|
my %textarea_args = ( |
|
fullpage => 'true', |
|
dragmath => 'math', |
|
); |
|
$initialize .= &Apache::lonhtmlcommon::htmlareaselectactive(\%textarea_args); |
|
if ($context eq 'syllabus') { |
|
$init_dragmath = "editmath_visibility('filecont','none')"; |
|
} |
|
} |
} |
} |
$initialize .= (<<FULLPAGE); |
$initialize .= (<<FULLPAGE); |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
function initDocument() { |
function initDocument() { |
resize_textarea('$textarea_id','LC_aftertextarea'); |
resize_textarea('$textarea_id','LC_aftertextarea'); |
|
$init_dragmath |
} |
} |
// ]]> |
// ]]> |
</script> |
</script> |
FULLPAGE |
FULLPAGE |
my $textareaclass; |
my $textareaclass; |
if ($filetype eq 'html') { |
if ($filetype eq 'html') { |
my $context; |
if ($context eq 'syllabus') { |
if ($env{'request.course.id'}) { |
$deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$initialize .= |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
&Apache::lonhtmlcommon::dependencycheck_js(undef,&mt('Syllabus'), |
if ($uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E}) { |
$uri,undef, |
$context = 'syllabus'; |
"/public/$cdom/$cnum/syllabus"). |
$deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; |
"\n"; |
$initialize .= |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
&Apache::lonhtmlcommon::dependencycheck_js(undef,&mt('Syllabus'), |
$textareaclass = 'class="LC_richDefaultOn"'; |
$uri,undef, |
|
"/public/$cdom/$cnum/syllabus"). |
|
"\n"; |
|
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
|
$textareaclass = 'class="LC_richDefaultOn"'; |
|
} |
|
} |
|
} |
|
unless ($context eq 'syllabus') { |
|
if ($symb || $folderpath) { |
|
$deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; |
|
$initialize .= |
|
&Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle, |
|
undef,$folderpath,$uri)."\n"; |
|
} |
} |
|
} elsif ($symb || $folderpath) { |
|
$deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; |
|
$initialize .= |
|
&Apache::lonhtmlcommon::dependencycheck_js($symb,$itemtitle, |
|
undef,$folderpath,$uri)."\n"; |
} |
} |
$dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>'; |
$dragmath_button = '<span id="math_filecont">'.&Apache::lonhtmlcommon::dragmath_button('filecont',1).'</span>'; |
$initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup'); |
$initialize .= "\n".&Apache::lonhtmlcommon::dragmath_js('EditMathPopup'); |
Line 1569 FULLPAGE
|
Line 1579 FULLPAGE
|
$add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; |
$add_to_onresize = "resize_textarea('$textarea_id','LC_aftertextarea');"; |
|
|
if ($filetype eq 'html') { |
if ($filetype eq 'html') { |
$xml_help=&Apache::loncommon::helpLatexCheatsheet(); |
my $not_author; |
|
if ($uri =~ m{^/uploaded/}) { |
|
$not_author = 1; |
|
} |
|
$xml_help=&Apache::loncommon::helpLatexCheatsheet(undef,undef,$not_author); |
} |
} |
|
|
my $titledisplay=&display_title(); |
my $titledisplay=&display_title(); |
Line 1593 FULLPAGE
|
Line 1607 FULLPAGE
|
} |
} |
} |
} |
} |
} |
|
my $undo; |
|
unless ($uri =~ m{^/uploaded/}) { |
|
$undo = '<input type="submit" name="Undo" accesskey="u" value="'.$lt{'un'}.'" />'."\n"; |
|
} |
my $editfooter=(<<ENDFOOTER); |
my $editfooter=(<<ENDFOOTER); |
$initialize |
$initialize |
<a name="editsection" /> |
<a name="editsection" /> |
<form $form_events method="post" name="xmledit"> |
<form $form_events method="post" name="xmledit" action="$action"> |
<div class="LC_edit_problem_editxml_header"> |
<div class="LC_edit_problem_editxml_header"> |
<table class="LC_edit_problem_header_title"><tr><td> |
<table class="LC_edit_problem_header_title"><tr><td> |
$filename |
$filename |
Line 1606 $initialize
|
Line 1624 $initialize
|
</table> |
</table> |
<div class="LC_edit_problem_discards"> |
<div class="LC_edit_problem_discards"> |
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
<input type="submit" name="discardview" accesskey="d" value="$lt{'dv'}" /> |
<input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" /> |
$undo $htmlerror $deps_button $dragmath_button |
$htmlerror $deps_button $dragmath_button |
|
</div> |
</div> |
<div class="LC_edit_problem_saves"> |
<div class="LC_edit_problem_saves"> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
<input type="submit" name="savethisfile" accesskey="s" value="$lt{'st'}" /> |
Line 1620 $initialize
|
Line 1637 $initialize
|
$titledisplay |
$titledisplay |
</div> |
</div> |
</form> |
</form> |
</body> |
|
ENDFOOTER |
ENDFOOTER |
return ($editfooter,$add_to_onload,$add_to_onresize);; |
return ($editfooter,$add_to_onload,$add_to_onresize);; |
} |
} |
Line 1834 ENDNOTFOUND
|
Line 1850 ENDNOTFOUND
|
unless ($env{'request.state'} eq 'published') { |
unless ($env{'request.state'} eq 'published') { |
if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'}))) |
if ($env{'form.editmode'} && (!($env{'form.viewmode'})) && (!($env{'form.discardview'}))) |
{ |
{ |
my ($displayfile,$url,$symb,$itemtitle); |
my ($displayfile,$url,$symb,$itemtitle,$action); |
$displayfile=$request->uri; |
$displayfile=$request->uri; |
if ($request->uri =~ m{^/uploaded/}) { |
if ($request->uri =~ m{^/uploaded/}) { |
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
Line 1845 ENDNOTFOUND
|
Line 1861 ENDNOTFOUND
|
my $filename = $1; |
my $filename = $1; |
if ($1 eq 'loncapa.html') { |
if ($1 eq 'loncapa.html') { |
$displayfile = &mt('Syllabus (minimal template)'); |
$displayfile = &mt('Syllabus (minimal template)'); |
|
$action = $request->uri.'?forceedit=1'; |
} else { |
} else { |
$displayfile = &mt('Syllabus file: [_1]',$1); |
$displayfile = &mt('Syllabus file: [_1]',$1); |
} |
} |
Line 1863 ENDNOTFOUND
|
Line 1880 ENDNOTFOUND
|
|
|
my ($edit_info, $add_to_onload, $add_to_onresize)= |
my ($edit_info, $add_to_onload, $add_to_onresize)= |
&inserteditinfo($filecontents,$filetype,$displayfile,$symb, |
&inserteditinfo($filecontents,$filetype,$displayfile,$symb, |
$itemtitle,$env{'form.folderpath'},$request->uri); |
$itemtitle,$env{'form.folderpath'},$request->uri,$action); |
|
|
my %options = |
my %options = |
('add_entries' => |
('add_entries' => |
Line 2287 sub description {
|
Line 2304 sub description {
|
sub helpinfo { |
sub helpinfo { |
my ($token)=@_; |
my ($token)=@_; |
my $tag = &get_tag($token); |
my $tag = &get_tag($token); |
return ($insertlist{$tag.'.helpfile'}, $insertlist{$tag.'.helpdesc'}); |
return ($insertlist{$tag.'.helpfile'}, &mt($insertlist{$tag.'.helpdesc'})); |
} |
} |
|
|
sub get_tag { |
sub get_tag { |