version 1.531.2.19, 2015/04/06 17:02:33
|
version 1.546, 2014/02/06 17:14:33
|
Line 228 sub xmlend {
|
Line 228 sub xmlend {
|
return $discussion; |
return $discussion; |
} |
} |
|
|
sub tokeninputfield { |
|
my $defhost=$Apache::lonnet::perlvar{'lonHostID'}; |
|
$defhost=~tr/a-z/A-Z/; |
|
return (<<ENDINPUTFIELD) |
|
<script type="text/javascript"> |
|
function updatetoken() { |
|
var comp=new Array; |
|
var barcode=unescape(document.tokeninput.barcode.value); |
|
comp=barcode.split('*'); |
|
if (typeof(comp[0])!="undefined") { |
|
document.tokeninput.codeone.value=comp[0]; |
|
} |
|
if (typeof(comp[1])!="undefined") { |
|
document.tokeninput.codetwo.value=comp[1]; |
|
} |
|
if (typeof(comp[2])!="undefined") { |
|
comp[2]=comp[2].toUpperCase(); |
|
document.tokeninput.codethree.value=comp[2]; |
|
} |
|
document.tokeninput.barcode.value=''; |
|
} |
|
</script> |
|
<form method="post" name="tokeninput" action=""> |
|
<table border="2" bgcolor="#FFFFBB"> |
|
<tr><th>DocID Checkin</th></tr> |
|
<tr><td> |
|
<table> |
|
<tr> |
|
<td>Scan in Barcode</td> |
|
<td><input type="text" size="22" name="barcode" |
|
onchange="updatetoken()"/></td> |
|
</tr> |
|
<tr><td><i>or</i> Type in DocID</td> |
|
<td> |
|
<input type="text" size="5" name="codeone" /> |
|
<b><font size="+2">*</font></b> |
|
<input type="text" size="5" name="codetwo" /> |
|
<b><font size="+2">*</font></b> |
|
<input type="text" size="10" name="codethree" value="$defhost" |
|
onchange="this.value=this.value.toUpperCase()" /> |
|
</td></tr> |
|
</table> |
|
</td></tr> |
|
<tr><td><input type="submit" value="Check in DocID" /></td></tr> |
|
</table> |
|
</form> |
|
ENDINPUTFIELD |
|
} |
|
|
|
sub maketoken { |
|
my ($symb,$tuname,$tudom,$tcrsid)=@_; |
|
unless ($symb) { |
|
$symb=&Apache::lonnet::symbread(); |
|
} |
|
unless ($tuname) { |
|
$tuname=$env{'user.name'}; |
|
$tudom=$env{'user.domain'}; |
|
$tcrsid=$env{'request.course.id'}; |
|
} |
|
return &Apache::lonnet::checkout($symb,$tuname,$tudom,$tcrsid); |
|
} |
|
|
|
sub printtokenheader { |
|
my ($target,$token,$tsymb,$tcrsid,$tudom,$tuname)=@_; |
|
unless ($token) { return ''; } |
|
|
|
my ($symb,$courseid,$domain,$name) = &Apache::lonnet::whichuser(); |
|
unless ($tsymb) { |
|
$tsymb=$symb; |
|
} |
|
unless ($tuname) { |
|
$tuname=$name; |
|
$tudom=$domain; |
|
$tcrsid=$courseid; |
|
} |
|
|
|
my $plainname=&Apache::loncommon::plainname($tuname,$tudom); |
|
|
|
if ($target eq 'web') { |
|
my %idhash=&Apache::lonnet::idrget($tudom,($tuname)); |
|
return |
|
'<img align="right" src="/cgi-bin/barcode.png?encode='.$token.'" />'. |
|
&mt('Checked out for').' '.$plainname. |
|
'<br />'.&mt('User').': '.$tuname.' at '.$tudom. |
|
'<br />'.&mt('ID').': '.$idhash{$tuname}. |
|
'<br />'.&mt('CourseID').': '.$tcrsid. |
|
'<br />'.&mt('Course').': '.$env{'course.'.$tcrsid.'.description'}. |
|
'<br />'.&mt('DocID').': '.$token. |
|
'<br />'.&mt('Time').': '.&Apache::lonlocal::locallocaltime().'<hr />'; |
|
} else { |
|
return $token; |
|
} |
|
} |
|
|
|
sub printalltags { |
sub printalltags { |
my $temp; |
my $temp; |
foreach $temp (sort keys %Apache::lonxml::alltags) { |
foreach $temp (sort keys %Apache::lonxml::alltags) { |
&Apache::lonxml::debug("$temp -- ". |
&Apache::lonxml::debug("$temp -- ". |
join(',',@{ $Apache::lonxml::alltags{$temp} })); |
join(',',@{ $Apache::lonxml::alltags{$temp} })); |
} |
} |
} |
} |
|
|
sub xmlparse { |
sub xmlparse { |
Line 463 sub inner_xmlparse {
|
Line 369 sub inner_xmlparse {
|
my $result; |
my $result; |
my $token; |
my $token; |
my $dontpop=0; |
my $dontpop=0; |
my $lastdontpop; |
|
my $lastendtag; |
|
my $startredirection = $Apache::lonxml::redirection; |
my $startredirection = $Apache::lonxml::redirection; |
while ( $#$pars > -1 ) { |
while ( $#$pars > -1 ) { |
while ($token = $$pars['-1']->get_token) { |
while ($token = $$pars['-1']->get_token) { |
Line 560 sub inner_xmlparse {
|
Line 464 sub inner_xmlparse {
|
} |
} |
$result = ''; |
$result = ''; |
|
|
if ($token->[0] eq 'E') { |
if ($token->[0] eq 'E' && !$dontpop) { |
if ($dontpop) { |
&end_tag($stack,$parstack,$token); |
$lastdontpop = $token; |
|
} else { |
|
$lastendtag = $token->[1]; |
|
&end_tag($stack,$parstack,$token); |
|
} |
|
} |
} |
$dontpop=0; |
$dontpop=0; |
} |
} |
if ($#$pars > -1) { |
if ($#$pars > -1) { |
pop @$pars; |
pop @$pars; |
pop @Apache::lonxml::pwd; |
pop @Apache::lonxml::pwd; |
} |
} |
} |
} |
|
|
if (($#$stack == 0) && ($stack->[0] eq 'physnet') && ($target eq 'web') && |
|
($lastendtag eq 'LONCAPA_INTERNAL_TURN_STYLE_ON')) { |
|
if ((ref($lastdontpop) eq 'ARRAY') && ($lastdontpop->[1] eq 'physnet')) { |
|
&end_tag($stack,$parstack,$lastdontpop); |
|
} |
|
} |
|
|
|
# if ($target eq 'meta') { |
# if ($target eq 'meta') { |
# $finaloutput.=&endredirection; |
# $finaloutput.=&endredirection; |
# } |
# } |
Line 922 sub init_safespace {
|
Line 814 sub init_safespace {
|
$safeeval->permit("require"); |
$safeeval->permit("require"); |
$safeinit .= ';$external::target="'.$target.'";'; |
$safeinit .= ';$external::target="'.$target.'";'; |
&Apache::run::run($safeinit,$safeeval); |
&Apache::run::run($safeinit,$safeeval); |
my $rawrndseed = &initialize_rndseed($safeeval); |
&initialize_rndseed($safeeval); |
if ($target eq 'grade') { |
|
$Apache::lonhomework::rawrndseed = $rawrndseed; |
|
} |
|
} |
} |
|
|
sub clean_safespace { |
sub clean_safespace { |
Line 964 sub initialize_rndseed {
|
Line 853 sub initialize_rndseed {
|
my $safeinit = '$external::randomseed="'.$rndseed.'";'; |
my $safeinit = '$external::randomseed="'.$rndseed.'";'; |
&Apache::lonxml::debug("Setting rndseed to $rndseed"); |
&Apache::lonxml::debug("Setting rndseed to $rndseed"); |
&Apache::run::run($safeinit,$safeeval); |
&Apache::run::run($safeinit,$safeeval); |
return $rndseed; |
|
} |
} |
|
|
sub default_homework_load { |
sub default_homework_load { |
Line 1439 sub extlink {
|
Line 1327 sub extlink {
|
if (!$exact) { |
if (!$exact) { |
$res=&Apache::lonnet::hreflocation($Apache::lonxml::pwd[-1],$res); |
$res=&Apache::lonnet::hreflocation($Apache::lonxml::pwd[-1],$res); |
} |
} |
push(@Apache::lonxml::extlinks,$res); |
push(@Apache::lonxml::extlinks,$res) |
} |
} |
|
|
sub writeallows { |
sub writeallows { |
Line 1569 SIMPLECONTENT
|
Line 1457 SIMPLECONTENT
|
|
|
sub verify_html { |
sub verify_html { |
my ($filecontents)=@_; |
my ($filecontents)=@_; |
my ($is_html,$is_xml,$is_physnet); |
my ($is_html,$is_xml); |
if ($filecontents =~/(?:\<|\<\;)\?xml[^\<]*\?(?:\>|\>\;)/is) { |
if ($filecontents =~/(?:\<|\<\;)\?xml[^\<]*\?(?:\>|\>\;)/is) { |
$is_xml = 1; |
$is_xml = 1; |
} elsif ($filecontents =~/(?:\<|\<\;)html(?:\s+[^\<]+|\s*)(?:\>|\>\;)/is) { |
} elsif ($filecontents =~/(?:\<|\<\;)html(?:\s+[^\<]+|\s*)(?:\>|\>\;)/is) { |
$is_html = 1; |
$is_html = 1; |
} elsif ($filecontents =~/(?:\<|\<\;)physnet[^\<]*(?:\>|\>\;)/is) { |
|
$is_physnet = 1; |
|
} |
} |
unless ($is_xml || $is_html || $is_physnet) { |
unless ($is_xml || $is_html) { |
return &mt('File does not have [_1] or [_2] starting tag','<html>','<?xml ?>'); |
return &mt('File does not have [_1] or [_2] starting tag','<html>','<?xml ?>'); |
} |
} |
if ($is_html) { |
if ($is_html) { |
Line 1635 sub inserteditinfo {
|
Line 1521 sub inserteditinfo {
|
my $xml_help = ''; |
my $xml_help = ''; |
my $initialize=''; |
my $initialize=''; |
my $textarea_id = 'filecont'; |
my $textarea_id = 'filecont'; |
my ($dragmath_button,$deps_button,$context,$cnum,$cdom,$add_to_onload, |
my ($dragmath_button,$deps_button); |
$add_to_onresize,$init_dragmath); |
my ($add_to_onload, $add_to_onresize); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
$initialize=&Apache::lonhtmlcommon::spellheader(); |
if ($filetype eq 'html') { |
if (($filetype eq 'html') && (&Apache::lonhtmlcommon::htmlareabrowser())) { |
if ($env{'request.course.id'}) { |
my $lang = &Apache::lonhtmlcommon::htmlarea_lang(); |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my %textarea_args = ( |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
fullpage => 'true', |
if ($uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E}) { |
dragmath => 'math', |
$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') { |
if ($context eq 'syllabus') { |
my $context; |
$deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; |
if ($env{'request.course.id'}) { |
$initialize .= |
my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
&Apache::lonhtmlcommon::dependencycheck_js(undef,&mt('Syllabus'), |
my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
$uri,undef, |
if ($uri =~ m{^\Q/uploaded/$cdom/$cnum/portfolio/syllabus/\E}) { |
"/public/$cdom/$cnum/syllabus"). |
$context = 'syllabus'; |
"\n"; |
$deps_button = &Apache::lonhtmlcommon::dependencies_button()."\n"; |
if (&Apache::lonhtmlcommon::htmlareabrowser()) { |
$initialize .= |
$textareaclass = 'class="LC_richDefaultOn"'; |
&Apache::lonhtmlcommon::dependencycheck_js(undef,&mt('Syllabus'), |
|
$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 1693 FULLPAGE
|
Line 1575 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') { |
my $not_author; |
$xml_help=&Apache::loncommon::helpLatexCheatsheet(); |
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 1721 FULLPAGE
|
Line 1599 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" /> |
Line 1738 $initialize
|
Line 1612 $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'}" /> |
$undo $htmlerror $deps_button $dragmath_button |
<input type="submit" name="Undo" accesskey="u" value="$lt{'un'}" /> |
|
$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 1865 sub handler {
|
Line 1740 sub handler {
|
} |
} |
} |
} |
} |
} |
my $inhibit_menu; |
|
my %mystyle; |
my %mystyle; |
my $result = ''; |
my $result = ''; |
my $filecontents=&Apache::lonnet::getfile($file); |
my $filecontents=&Apache::lonnet::getfile($file); |
Line 1923 ENDNOTFOUND
|
Line 1797 ENDNOTFOUND
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['rawmode']); |
['rawmode']); |
if ($env{'form.rawmode'}) { $result = $filecontents; } |
if ($env{'form.rawmode'}) { $result = $filecontents; } |
if (($env{'request.state'} eq 'construct') && |
|
(($filetype eq 'css') || ($filetype eq 'js')) && ($ENV{'HTTP_REFERER'})) { |
|
if ($ENV{'HTTP_REFERER'} =~ m{^https?\://[^\/]+/priv/$LONCAPA::match_domain/$LONCAPA::match_username/[^\?]+\.(x?html?|swf)(|\?)[^\?]*$}) { |
|
$inhibit_menu = 1; |
|
} |
|
} |
|
if (($filetype ne 'html') && |
if (($filetype ne 'html') && |
(!$env{'form.return_only_error_and_warning_counts'}) && |
(!$env{'form.return_only_error_and_warning_counts'})) { |
(!$inhibit_menu)) { |
|
my $nochgview = 1; |
my $nochgview = 1; |
my $controls = ''; |
my $controls = ''; |
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
Line 1969 ENDNOTFOUND
|
Line 1836 ENDNOTFOUND
|
# |
# |
# Edit action? Insert editing commands |
# Edit action? Insert editing commands |
# |
# |
unless (($env{'request.state'} eq 'published') || ($inhibit_menu)) { |
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,$action); |
my ($displayfile,$url,$symb,$itemtitle,$action); |
Line 2168 sub error {
|
Line 2035 sub error {
|
my $declutter=&Apache::lonnet::declutter($env{'request.filename'}); |
my $declutter=&Apache::lonnet::declutter($env{'request.filename'}); |
my $baseurl = &Apache::lonnet::clutter($declutter); |
my $baseurl = &Apache::lonnet::clutter($declutter); |
my @userlist; |
my @userlist; |
foreach (keys(%users)) { |
foreach (keys %users) { |
my ($user,$domain) = split(/:/, $_); |
my ($user,$domain) = split(/:/, $_); |
push(@userlist,"$user:$domain"); |
push(@userlist,"$user:$domain"); |
my $key=$declutter.'_'.$user.'_'.$domain; |
my $key=$declutter.'_'.$user.'_'.$domain; |
Line 2239 sub add_messages {
|
Line 2106 sub add_messages {
|
|
|
sub get_param { |
sub get_param { |
my ($param,$parstack,$safeeval,$context,$case_insensitive, $noelide) = @_; |
my ($param,$parstack,$safeeval,$context,$case_insensitive, $noelide) = @_; |
|
|
if ( ! $context ) { $context = -1; } |
if ( ! $context ) { $context = -1; } |
my $args =''; |
my $args =''; |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
if ( $#$parstack > (-2-$context) ) { $args=$$parstack[$context]; } |
Line 2246 sub get_param {
|
Line 2114 sub get_param {
|
$args=$Apache::lonxml::style_values.$args; |
$args=$Apache::lonxml::style_values.$args; |
} |
} |
|
|
|
|
if ($noelide) { |
if ($noelide) { |
$args =~ s/'\$/'\\\$/g; |
# $args =~ s/\\'/'/g; |
|
$args =~ s/'\$/'\\\$/g; |
} |
} |
|
|
if ( ! $args ) { return undef; } |
if ( ! $args ) { return undef; } |
if ( $case_insensitive ) { |
if ( $case_insensitive ) { |
if ($args =~ s/(my (?:.*))(\$\Q$param\E[,\)])/$1.lc($2)/ei) { |
if ($args =~ s/(my (?:.*))(\$\Q$param\E[,\)])/$1.lc($2)/ei) { |
|
|
return &Apache::run::run("{$args;".'return $'.$param.'}', |
return &Apache::run::run("{$args;".'return $'.$param.'}', |
$safeeval); #' |
$safeeval); #' |
} else { |
} else { |
Line 2260 sub get_param {
|
Line 2131 sub get_param {
|
} |
} |
} else { |
} else { |
if ( $args =~ /my .*\$\Q$param\E[,\)]/ ) { |
if ( $args =~ /my .*\$\Q$param\E[,\)]/ ) { |
|
|
return &Apache::run::run("{$args;".'return $'.$param.'}', |
return &Apache::run::run("{$args;".'return $'.$param.'}', |
$safeeval); #' |
$safeeval); #' |
} else { |
} else { |