version 1.1075.2.41, 2013/07/05 19:53:11
|
version 1.1127, 2013/05/10 16:09:58
|
Line 72 use Apache::lonuserstate();
|
Line 72 use Apache::lonuserstate();
|
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
use DateTime::TimeZone; |
use DateTime::TimeZone; |
use DateTime::Locale::Catalog; |
use DateTime::Locale::Catalog; |
|
use Text::Aspell; |
use Authen::Captcha; |
use Authen::Captcha; |
use Captcha::reCAPTCHA; |
use Captcha::reCAPTCHA; |
|
|
Line 158 sub ssi_with_retries {
|
Line 159 sub ssi_with_retries {
|
# ----------------------------------------------- Filetypes/Languages/Copyright |
# ----------------------------------------------- Filetypes/Languages/Copyright |
my %language; |
my %language; |
my %supported_language; |
my %supported_language; |
|
my %supported_codes; |
my %latex_language; # For choosing hyphenation in <transl..> |
my %latex_language; # For choosing hyphenation in <transl..> |
my %latex_language_bykey; # for choosing hyphenation from metadata |
my %latex_language_bykey; # for choosing hyphenation from metadata |
my %cprtag; |
my %cprtag; |
Line 192 BEGIN {
|
Line 194 BEGIN {
|
while (my $line = <$fh>) { |
while (my $line = <$fh>) { |
next if ($line=~/^\#/); |
next if ($line=~/^\#/); |
chomp($line); |
chomp($line); |
my ($key,$two,$country,$three,$enc,$val,$sup,$latex)=(split(/\t/,$line)); |
my ($key,$code,$country,$three,$enc,$val,$sup,$latex)=(split(/\t/,$line)); |
$language{$key}=$val.' - '.$enc; |
$language{$key}=$val.' - '.$enc; |
if ($sup) { |
if ($sup) { |
$supported_language{$key}=$sup; |
$supported_language{$key}=$sup; |
|
$supported_codes{$key} = $code; |
} |
} |
if ($latex) { |
if ($latex) { |
$latex_language_bykey{$key} = $latex; |
$latex_language_bykey{$key} = $latex; |
$latex_language{$two} = $latex; |
$latex_language{$code} = $latex; |
} |
} |
} |
} |
close($fh); |
close($fh); |
Line 663 if (!Array.prototype.indexOf) {
|
Line 666 if (!Array.prototype.indexOf) {
|
var n = 0; |
var n = 0; |
if (arguments.length > 0) { |
if (arguments.length > 0) { |
n = Number(arguments[1]); |
n = Number(arguments[1]); |
if (n !== n) { // shortcut for verifying if it's NaN |
if (n !== n) { // shortcut for verifying if it is NaN |
n = 0; |
n = 0; |
} else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { |
} else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { |
n = (n > 0 || -1) * Math.floor(Math.abs(n)); |
n = (n > 0 || -1) * Math.floor(Math.abs(n)); |
Line 899 sub check_uncheck_jscript {
|
Line 902 sub check_uncheck_jscript {
|
function checkAll(field) { |
function checkAll(field) { |
if (field.length > 0) { |
if (field.length > 0) { |
for (i = 0; i < field.length; i++) { |
for (i = 0; i < field.length; i++) { |
if (!field[i].disabled) { |
if (!field[i].disabled) { |
field[i].checked = true; |
field[i].checked = true; |
} |
} |
} |
} |
} else { |
} else { |
if (!field.disabled) { |
if (!field.disabled) { |
field.checked = true; |
field.checked = true; |
} |
} |
} |
} |
Line 1014 sub select_language {
|
Line 1017 sub select_language {
|
|
|
=pod |
=pod |
|
|
|
|
|
=item * &list_languages() |
|
|
|
Returns an array reference that is suitable for use in language prompters. |
|
Each array element is itself a two element array. The first element |
|
is the language code. The second element a descsriptiuon of the |
|
language itself. This is suitable for use in e.g. |
|
&Apache::edit::select_arg (once dereferenced that is). |
|
|
|
=cut |
|
|
|
sub list_languages { |
|
my @lang_choices; |
|
|
|
foreach my $id (&languageids()) { |
|
my $code = &supportedlanguagecode($id); |
|
if ($code) { |
|
my $selector = $supported_codes{$id}; |
|
my $description = &plainlanguagedescription($id); |
|
push (@lang_choices, [$selector, $description]); |
|
} |
|
} |
|
return \@lang_choices; |
|
} |
|
|
|
=pod |
|
|
=item * &linked_select_forms(...) |
=item * &linked_select_forms(...) |
|
|
linked_select_forms returns a string containing a <script></script> block |
linked_select_forms returns a string containing a <script></script> block |
Line 2161 sub select_level_form {
|
Line 2191 sub select_level_form {
|
|
|
=pod |
=pod |
|
|
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoma,$excdoms) |
=item * &select_dom_form($defdom,$name,$includeempty,$showdomdesc,$onchange,$incdoms,$excdoms) |
|
|
Returns a string containing a <select name='$name' size='1'> form to |
Returns a string containing a <select name='$name' size='1'> form to |
allow a user to select the domain to preform an operation in. |
allow a user to select the domain to preform an operation in. |
Line 2176 The optional $onchange argument specifie
|
Line 2206 The optional $onchange argument specifie
|
|
|
The optional $incdoms is a reference to an array of domains which will be the only available options. |
The optional $incdoms is a reference to an array of domains which will be the only available options. |
|
|
The optional $excdoms is a reference to an array of domains which will be excluded from the available options. |
The optional $excdoms is a reference to an array of domains which will be excluded from the available options. |
|
|
=cut |
=cut |
|
|
Line 2194 sub select_dom_form {
|
Line 2224 sub select_dom_form {
|
} |
} |
if ($includeempty) { @domains=('',@domains); } |
if ($includeempty) { @domains=('',@domains); } |
if (ref($excdoms) eq 'ARRAY') { |
if (ref($excdoms) eq 'ARRAY') { |
map { $exclude{$_} = 1; } @{$excdoms}; |
map { $exclude{$_} = 1; } @{$excdoms}; |
} |
} |
my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange>\n"; |
my $selectdomain = "<select name=\"$name\" size=\"1\"$onchange>\n"; |
foreach my $dom (@domains) { |
foreach my $dom (@domains) { |
Line 2527 sub authform_nochange {
|
Line 2557 sub authform_nochange {
|
kerb_def_dom => 'MSU.EDU', |
kerb_def_dom => 'MSU.EDU', |
@_, |
@_, |
); |
); |
my ($authnum,%can_assign) = &get_assignable_auth($in{'domain'}); |
my ($authnum,%can_assign) = &get_assignable_auth($in{'domain'}); |
my $result; |
my $result; |
if (!$authnum) { |
if (!$authnum) { |
$result = &mt('Under your current role you are not permitted to change login settings for this user'); |
$result = &mt('Under your current role you are not permitted to change login settings for this user'); |
Line 3023 sub get_related_words {
|
Line 3053 sub get_related_words {
|
untie %thesaurus_db; |
untie %thesaurus_db; |
return @Words; |
return @Words; |
} |
} |
|
############################################################### |
|
# |
|
# Spell checking |
|
# |
|
|
|
=pod |
|
|
|
=head1 Spell checking |
|
|
|
=over 4 |
|
|
|
=item * &check_spelling($wordlist $language) |
|
|
|
Takes a string containing words and feeds it to an external |
|
spellcheck program via a pipeline. Returns a string containing |
|
them mis-spelled words. |
|
|
|
Parameters: |
|
|
|
=over 4 |
|
|
|
=item - $wordlist |
|
|
|
String that will be fed into the spellcheck program. |
|
|
|
=item - $language |
|
|
|
Language string that specifies the language for which the spell |
|
check will be performed. |
|
|
|
=back |
|
|
|
=back |
|
|
|
Note: This sub assumes that aspell is installed. |
|
|
|
|
|
=cut |
|
|
|
|
=pod |
=pod |
|
|
Line 3030 sub get_related_words {
|
Line 3099 sub get_related_words {
|
|
|
=cut |
=cut |
|
|
|
sub check_spelling { |
|
my ($wordlist, $language) = @_; |
|
my @misspellings; |
|
|
|
# Generate the speller and set the langauge. |
|
# if explicitly selected: |
|
|
|
my $speller = Text::Aspell->new; |
|
if ($language) { |
|
$speller->set_option('lang', $language); |
|
} |
|
|
|
# Turn the word list into an array of words by splittingon whitespace |
|
|
|
my @words = split(/\s+/, $wordlist); |
|
|
|
foreach my $word (@words) { |
|
if(! $speller->check($word)) { |
|
push(@misspellings, $word); |
|
} |
|
} |
|
return join(' ', @misspellings); |
|
|
|
} |
|
|
# -------------------------------------------------------------- Plaintext name |
# -------------------------------------------------------------- Plaintext name |
=pod |
=pod |
|
|
Line 4838 sub designparm {
|
Line 4932 sub designparm {
|
|
|
Inputs: $url (usually will be undef). |
Inputs: $url (usually will be undef). |
|
|
Returns: Path to Authoring Space containing the resource or |
Returns: Path to Construction Space containing the resource or |
directory being viewed (or for which action is being taken). |
directory being viewed (or for which action is being taken). |
If $url is provided, and begins /priv/<domain>/<uname> |
If $url is provided, and begins /priv/<domain>/<uname> |
the path will be that portion of the $context argument. |
the path will be that portion of the $context argument. |
Line 4901 Input: (optional) filename from which br
|
Line 4995 Input: (optional) filename from which br
|
is appropriate for use in building the breadcrumb trail. |
is appropriate for use in building the breadcrumb trail. |
|
|
Returns: HTML div with CSTR path and recent box |
Returns: HTML div with CSTR path and recent box |
To be included on Authoring Space pages |
To be included on Construction Space pages |
|
|
=cut |
=cut |
|
|
Line 4932 sub CSTR_pageheader {
|
Line 5026 sub CSTR_pageheader {
|
my $output = |
my $output = |
'<div>' |
'<div>' |
.&Apache::loncommon::help_open_menu('','',3,'Authoring') #FIXME: Broken? Where is it? |
.&Apache::loncommon::help_open_menu('','',3,'Authoring') #FIXME: Broken? Where is it? |
.'<b>'.&mt('Authoring Space:').'</b> ' |
.'<b>'.&mt('Construction Space:').'</b> ' |
.'<form name="dirs" method="post" action="'.$formaction |
.'<form name="dirs" method="post" action="'.$formaction |
.'" target="_top">' #FIXME lonpubdir: target="_parent" |
.'" target="_top">' #FIXME lonpubdir: target="_parent" |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv/'.$udom,undef,undef); |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv/'.$udom,undef,undef); |
Line 4991 Inputs:
|
Line 5085 Inputs:
|
|
|
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value |
=item * $bgcolor, used to override the bgcolor on a webpage to a specific value |
|
|
=item * $no_inline_link, if true and in remote mode, don't show the |
|
'Switch To Inline Menu' link |
|
|
|
=item * $args, optional argument valid values are |
=item * $args, optional argument valid values are |
no_auto_mt_title -> prevents &mt()ing the title arg |
no_auto_mt_title -> prevents &mt()ing the title arg |
inherit_jsmath -> when creating popup window in a page, |
inherit_jsmath -> when creating popup window in a page, |
Line 5015 other decorations will be returned.
|
Line 5106 other decorations will be returned.
|
|
|
sub bodytag { |
sub bodytag { |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg, |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg, |
$no_nav_bar,$bgcolor,$no_inline_link,$args,$advtoolsref)=@_; |
$no_nav_bar,$bgcolor,$args,$advtoolsref)=@_; |
|
|
my $public; |
my $public; |
if ((($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) |
if ((($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) |
Line 5064 sub bodytag {
|
Line 5155 sub bodytag {
|
my $bodytag = "<body $extra_body_attr>". |
my $bodytag = "<body $extra_body_attr>". |
&Apache::lontexconvert::init_math_support($args->{'inherit_jsmath'}); |
&Apache::lontexconvert::init_math_support($args->{'inherit_jsmath'}); |
|
|
&get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); |
if ($bodyonly) { |
|
|
if (($bodyonly) || ($no_nav_bar) || ($env{'form.inhibitmenu'} eq 'yes')) { |
|
return $bodytag; |
return $bodytag; |
} |
} |
|
|
|
my $name = &plainname($env{'user.name'},$env{'user.domain'}); |
if ($public) { |
if ($public) { |
undef($role); |
undef($role); |
|
} else { |
|
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}, |
|
undef,'LC_menubuttons_link'); |
} |
} |
|
|
my $titleinfo = '<h1>'.$title.'</h1>'; |
my $titleinfo = '<h1>'.$title.'</h1>'; |
Line 5087 sub bodytag {
|
Line 5180 sub bodytag {
|
} |
} |
|
|
$role = '<span class="LC_nobreak">('.$role.')</span>' if $role; |
$role = '<span class="LC_nobreak">('.$role.')</span>' if $role; |
|
&get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['inhibitmenu']); |
|
|
if ($env{'request.state'} eq 'construct') { $forcereg=1; } |
if ($no_nav_bar || $env{'form.inhibitmenu'} eq 'yes') { |
|
return $bodytag; |
|
} |
|
|
my $funclist; |
if ($env{'request.state'} eq 'construct') { $forcereg=1; } |
if (($env{'environment.remote'} eq 'on') && ($env{'request.state'} ne 'construct')) { |
|
$bodytag .= Apache::lonhtmlcommon::scripttag(Apache::lonmenu::utilityfunctions(), 'start')."\n". |
|
Apache::lonmenu::serverform(); |
|
my $forbodytag; |
|
&Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, |
|
$forcereg,$args->{'group'}, |
|
$args->{'bread_crumbs'}, |
|
$advtoolsref,'',\$forbodytag); |
|
unless (ref($args->{'bread_crumbs'}) eq 'ARRAY') { |
|
$funclist = $forbodytag; |
|
} |
|
} else { |
|
|
|
# if ($env{'request.state'} eq 'construct') { |
# if ($env{'request.state'} eq 'construct') { |
# $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls |
# $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls |
# } |
# } |
|
|
$bodytag .= Apache::lonhtmlcommon::scripttag( |
|
Apache::lonmenu::utilityfunctions(), 'start'); |
|
|
|
my ($left,$right) = Apache::lonmenu::primary_menu(); |
|
|
|
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { |
if ($env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { |
if ($dc_info) { |
if ($dc_info) { |
$dc_info = qq|<span class="LC_cusr_subheading">$dc_info</span>|; |
$dc_info = qq|<span class="LC_cusr_subheading">$dc_info</span>|; |
} |
} |
$bodytag .= qq|<div id="LC_nav_bar">$left $role<br /> |
$bodytag .= qq|<div id="LC_nav_bar">$name $role<br /> |
<em>$realm</em> $dc_info</div>|; |
<em>$realm</em> $dc_info</div>|; |
return $bodytag; |
return $bodytag; |
} |
} |
|
|
unless ($env{'request.symb'} =~ m/\.page___\d+___/) { |
unless ($env{'request.symb'} =~ m/\.page___\d+___/) { |
$bodytag .= qq|<div id="LC_nav_bar">$left $role</div>|; |
$bodytag .= qq|<div id="LC_nav_bar">$name $role</div>|; |
} |
} |
|
|
$bodytag .= $right; |
$bodytag .= Apache::lonhtmlcommon::scripttag( |
|
Apache::lonmenu::utilityfunctions(), 'start'); |
|
|
|
$bodytag .= Apache::lonmenu::primary_menu(); |
|
|
if ($dc_info) { |
if ($dc_info) { |
$dc_info = &dc_courseid_toggle($dc_info); |
$dc_info = &dc_courseid_toggle($dc_info); |
Line 5143 sub bodytag {
|
Line 5225 sub bodytag {
|
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$bodytag .= &Apache::lonmenu::innerregister($forcereg, |
$bodytag .= &Apache::lonmenu::innerregister($forcereg, |
$args->{'bread_crumbs'}); |
$args->{'bread_crumbs'}); |
} elsif ($forcereg) { |
} elsif ($forcereg) { |
$bodytag .= &Apache::lonmenu::innerregister($forcereg,undef, |
$bodytag .= &Apache::lonmenu::innerregister($forcereg,undef, |
$args->{'group'}); |
$args->{'group'}); |
} else { |
} else { |
my $forbodytag; |
$bodytag .= |
&Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, |
&Apache::lonmenu::prepare_functions($env{'request.noversionuri'}, |
$forcereg,$args->{'group'}, |
$forcereg,$args->{'group'}, |
$args->{'bread_crumbs'}, |
$args->{'bread_crumbs'}, |
$advtoolsref,'',\$forbodytag); |
$advtoolsref); |
unless (ref($args->{'bread_crumbs'}) eq 'ARRAY') { |
|
$bodytag .= $forbodytag; |
|
} |
|
} |
} |
}else{ |
}else{ |
# this is to seperate menu from content when there's no secondary |
# this is to seperate menu from content when there's no secondary |
Line 5164 sub bodytag {
|
Line 5243 sub bodytag {
|
} |
} |
|
|
return $bodytag; |
return $bodytag; |
} |
|
|
|
# |
|
# Top frame rendering, Remote is up |
|
# |
|
|
|
my $imgsrc = $img; |
|
if ($img =~ /^\/adm/) { |
|
$imgsrc = &lonhttpdurl($img); |
|
} |
|
my $upperleft='<img src="'.$imgsrc.'" alt="'.$function.'" />'; |
|
|
|
# Explicit link to get inline menu |
|
my $menu= ($no_inline_link?'' |
|
:'<a href="/adm/remote?action=collapse" target="_top">'.&mt('Switch to Inline Menu Mode').'</a>'); |
|
|
|
if ($dc_info) { |
|
$dc_info = qq|<span class="LC_cusr_subheading">($dc_info)</span>|; |
|
} |
|
|
|
my $name = &plainname($env{'user.name'},$env{'user.domain'}); |
|
unless ($public) { |
|
$name = &aboutmewrapper($name,$env{'user.name'},$env{'user.domain'}, |
|
undef,'LC_menubuttons_link'); |
|
} |
|
|
|
unless ($env{'form.inhibitmenu'}) { |
|
$bodytag .= qq|<div id="LC_nav_bar">$name $role</div> |
|
<ol class="LC_primary_menu LC_floatright LC_right"> |
|
<li>$menu</li> |
|
</ol><div id="LC_realm"> $realm $dc_info</div>|; |
|
} |
|
if ($env{'request.state'} eq 'construct') { |
|
if (!$public){ |
|
if ($env{'request.state'} eq 'construct') { |
|
$funclist = &Apache::lonhtmlcommon::scripttag( |
|
&Apache::lonmenu::utilityfunctions(), 'start'). |
|
&Apache::lonhtmlcommon::scripttag('','end'). |
|
&Apache::lonmenu::innerregister($forcereg, |
|
$args->{'bread_crumbs'}); |
|
} |
|
} |
|
} |
|
return $bodytag."\n".$funclist; |
|
} |
} |
|
|
sub dc_courseid_toggle { |
sub dc_courseid_toggle { |
Line 5239 sub make_attr_string {
|
Line 5274 sub make_attr_string {
|
delete($attr_ref->{$key}); |
delete($attr_ref->{$key}); |
} |
} |
} |
} |
if ($env{'environment.remote'} eq 'on') { |
$attr_ref->{'onload'} = $on_load; |
$attr_ref->{'onload'} = |
$attr_ref->{'onunload'}= $on_unload; |
&Apache::lonmenu::loadevents(). $on_load; |
|
$attr_ref->{'onunload'}= |
|
&Apache::lonmenu::unloadevents().$on_unload; |
|
} else { |
|
$attr_ref->{'onload'} = $on_load; |
|
$attr_ref->{'onunload'}= $on_unload; |
|
} |
|
} |
} |
|
|
my $attr_string; |
my $attr_string; |
Line 5382 form, .inline {
|
Line 5410 form, .inline {
|
vertical-align:middle; |
vertical-align:middle; |
} |
} |
|
|
.LC_floatleft { |
|
float: left; |
|
} |
|
|
|
.LC_floatright { |
|
float: right; |
|
} |
|
|
|
.LC_400Box { |
.LC_400Box { |
width:400px; |
width:400px; |
} |
} |
Line 6479 div.LC_createcourse {
|
Line 6499 div.LC_createcourse {
|
} |
} |
|
|
.LC_dccid { |
.LC_dccid { |
float: right; |
|
margin: 0.2em 0 0 0; |
margin: 0.2em 0 0 0; |
padding: 0; |
padding: 0; |
font-size: 90%; |
font-size: 90%; |
Line 6577 fieldset > legend {
|
Line 6596 fieldset > legend {
|
} |
} |
|
|
ol.LC_primary_menu { |
ol.LC_primary_menu { |
|
float: right; |
margin: 0; |
margin: 0; |
padding: 0; |
padding: 0; |
background-color: $pgbg_or_bgcolor; |
background-color: $pgbg_or_bgcolor; |
Line 6688 ul#LC_secondary_menu li {
|
Line 6708 ul#LC_secondary_menu li {
|
font-weight: bold; |
font-weight: bold; |
line-height: 1.8em; |
line-height: 1.8em; |
border-right: 1px solid black; |
border-right: 1px solid black; |
vertical-align: middle; |
|
float: left; |
float: left; |
} |
} |
|
|
Line 7248 sub headtag {
|
Line 7267 sub headtag {
|
if (!$args->{'frameset'}) { |
if (!$args->{'frameset'}) { |
$result .= &Apache::lonhtmlcommon::htmlareaheaders(); |
$result .= &Apache::lonhtmlcommon::htmlareaheaders(); |
} |
} |
if ($args->{'force_register'}) { |
if ($args->{'force_register'} && $env{'request.noversionuri'} !~ m{^/res/adm/pages/}) { |
$result .= &Apache::lonmenu::registerurl(1); |
$result .= Apache::lonxml::display_title(); |
} |
} |
if (!$args->{'no_nav_bar'} |
if (!$args->{'no_nav_bar'} |
&& !$args->{'only_body'} |
&& !$args->{'only_body'} |
Line 7458 $args - additional optional args support
|
Line 7477 $args - additional optional args support
|
skip_phases -> hash ref of |
skip_phases -> hash ref of |
head -> skip the <html><head> generation |
head -> skip the <html><head> generation |
body -> skip all <body> generation |
body -> skip all <body> generation |
no_inline_link -> if true and in remote mode, don't show the |
|
'Switch To Inline Menu' link |
|
no_auto_mt_title -> prevent &mt()ing the title arg |
no_auto_mt_title -> prevent &mt()ing the title arg |
inherit_jsmath -> when creating popup window in a page, |
inherit_jsmath -> when creating popup window in a page, |
should it have jsmath forced on by the |
should it have jsmath forced on by the |
current page |
current page |
bread_crumbs -> Array containing breadcrumbs |
bread_crumbs -> Array containing breadcrumbs |
bread_crumbs_component -> if exists show it as headline else show only the breadcrumbs |
bread_crumbs_component -> if exists show it as headline else show only the breadcrumbs |
group -> includes the current group, if page is for a |
group -> includes the current group, if page is for a |
specific group |
specific group |
|
|
=back |
=back |
|
|
Line 7497 sub start_page {
|
Line 7514 sub start_page {
|
$args->{'function'}, $args->{'add_entries'}, |
$args->{'function'}, $args->{'add_entries'}, |
$args->{'only_body'}, $args->{'domain'}, |
$args->{'only_body'}, $args->{'domain'}, |
$args->{'force_register'}, $args->{'no_nav_bar'}, |
$args->{'force_register'}, $args->{'no_nav_bar'}, |
$args->{'bgcolor'}, $args->{'no_inline_link'}, |
$args->{'bgcolor'}, $args, |
$args, \@advtools); |
\@advtools); |
} |
} |
} |
} |
|
|
Line 7538 sub start_page {
|
Line 7555 sub start_page {
|
}else{ |
}else{ |
$result .= &Apache::lonhtmlcommon::breadcrumbs(); |
$result .= &Apache::lonhtmlcommon::breadcrumbs(); |
} |
} |
} elsif (($env{'environment.remote'} eq 'on') && |
|
($env{'form.inhibitmenu'} ne 'yes') && |
|
($env{'request.noversionuri'} =~ m{^/res/}) && |
|
($env{'request.noversionuri'} !~ m{^/res/adm/pages/})) { |
|
$result .= '<div style="padding:0;margin:0;clear:both"><hr /></div>'; |
|
} |
} |
return $result; |
return $result; |
} |
} |
Line 7806 sub LCprogressbar {
|
Line 7818 sub LCprogressbar {
|
$LCcurrentid=$$.'_'.$LCidcnt; |
$LCcurrentid=$$.'_'.$LCidcnt; |
my $starting=&mt('Starting'); |
my $starting=&mt('Starting'); |
my $content=(<<ENDPROGBAR); |
my $content=(<<ENDPROGBAR); |
|
<p> |
<div id="progressbar$LCcurrentid"> |
<div id="progressbar$LCcurrentid"> |
<span class="pblabel">$starting</span> |
<span class="pblabel">$starting</span> |
</div> |
</div> |
|
</p> |
ENDPROGBAR |
ENDPROGBAR |
&r_print($r,$content.&LCprogressbar_script($LCcurrentid)); |
&r_print($r,$content.&LCprogressbar_script($LCcurrentid)); |
} |
} |
Line 8234 sub get_sections {
|
Line 8248 sub get_sections {
|
} |
} |
} |
} |
|
|
if ($check_students) { |
if ($check_students) { |
my ($classlist) = &Apache::loncoursedata::get_classlist($cdom,$cnum); |
my ($classlist) = &Apache::loncoursedata::get_classlist($cdom,$cnum); |
my $sec_index = &Apache::loncoursedata::CL_SECTION(); |
my $sec_index = &Apache::loncoursedata::CL_SECTION(); |
my $status_index = &Apache::loncoursedata::CL_STATUS(); |
my $status_index = &Apache::loncoursedata::CL_STATUS(); |
Line 8548 sub get_user_info {
|
Line 8562 sub get_user_info {
|
|
|
=item * &get_user_quota() |
=item * &get_user_quota() |
|
|
Retrieves quota assigned for storage of user files. |
Retrieves quota assigned for storage of portfolio files for a user |
Default is to report quota for portfolio files. |
|
|
|
Incoming parameters: |
Incoming parameters: |
1. user's username |
1. user's username |
2. user's domain |
2. user's domain |
3. quota name - portfolio, author, or course |
|
(if no quota name provided, defaults to portfolio). |
|
|
|
Returns: |
Returns: |
1. Disk quota (in Mb) assigned to student. |
1. Disk quota (in Mb) assigned to student. |
Line 8569 Returns:
|
Line 8580 Returns:
|
|
|
If a value has been stored in the user's environment, |
If a value has been stored in the user's environment, |
it will return that, otherwise it returns the maximal default |
it will return that, otherwise it returns the maximal default |
defined for the user's institutional status(es) in the domain. |
defined for the user's instituional status(es) in the domain. |
|
|
=cut |
=cut |
|
|
Line 8577 defined for the user's institutional sta
|
Line 8588 defined for the user's institutional sta
|
|
|
|
|
sub get_user_quota { |
sub get_user_quota { |
my ($uname,$udom,$quotaname) = @_; |
my ($uname,$udom) = @_; |
my ($quota,$quotatype,$settingstatus,$defquota); |
my ($quota,$quotatype,$settingstatus,$defquota); |
if (!defined($udom)) { |
if (!defined($udom)) { |
$udom = $env{'user.domain'}; |
$udom = $env{'user.domain'}; |
Line 8592 sub get_user_quota {
|
Line 8603 sub get_user_quota {
|
$defquota = 0; |
$defquota = 0; |
} else { |
} else { |
my $inststatus; |
my $inststatus; |
if ($quotaname eq 'course') { |
if ($udom eq $env{'user.domain'} && $uname eq $env{'user.name'}) { |
if (($env{'course.'.$udom.'_'.$uname.'.num'} eq $uname) && |
$quota = $env{'environment.portfolioquota'}; |
($env{'course.'.$udom.'_'.$uname.'.domain'} eq $udom)) { |
$inststatus = $env{'environment.inststatus'}; |
$quota = $env{'course.'.$udom.'_'.$uname.'.internal.uploadquota'}; |
} else { |
} else { |
my %userenv = |
my %cenv = &Apache::lonnet::coursedescription("$udom/$uname"); |
&Apache::lonnet::get('environment',['portfolioquota', |
$quota = $cenv{'internal.uploadquota'}; |
'inststatus'],$udom,$uname); |
} |
my ($tmp) = keys(%userenv); |
|
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
|
$quota = $userenv{'portfolioquota'}; |
|
$inststatus = $userenv{'inststatus'}; |
|
} else { |
|
undef(%userenv); |
|
} |
|
} |
|
($defquota,$settingstatus) = &default_quota($udom,$inststatus); |
|
if ($quota eq '') { |
|
$quota = $defquota; |
|
$quotatype = 'default'; |
} else { |
} else { |
if ($udom eq $env{'user.domain'} && $uname eq $env{'user.name'}) { |
$quotatype = 'custom'; |
if ($quotaname eq 'author') { |
|
$quota = $env{'environment.authorquota'}; |
|
} else { |
|
$quota = $env{'environment.portfolioquota'}; |
|
} |
|
$inststatus = $env{'environment.inststatus'}; |
|
} else { |
|
my %userenv = |
|
&Apache::lonnet::get('environment',['portfolioquota', |
|
'authorquota','inststatus'],$udom,$uname); |
|
my ($tmp) = keys(%userenv); |
|
if ($tmp !~ /^(con_lost|error|no_such_host)/i) { |
|
if ($quotaname eq 'author') { |
|
$quota = $userenv{'authorquota'}; |
|
} else { |
|
$quota = $userenv{'portfolioquota'}; |
|
} |
|
$inststatus = $userenv{'inststatus'}; |
|
} else { |
|
undef(%userenv); |
|
} |
|
} |
|
} |
|
if ($quota eq '' || wantarray) { |
|
if ($quotaname eq 'course') { |
|
my %domdefs = &Apache::lonnet::get_domain_defaults($udom); |
|
$defquota = $domdefs{'uploadquota'}; |
|
} else { |
|
($defquota,$settingstatus) = &default_quota($udom,$inststatus,$quotaname); |
|
} |
|
if ($quota eq '') { |
|
$quota = $defquota; |
|
$quotatype = 'default'; |
|
} else { |
|
$quotatype = 'custom'; |
|
} |
|
} |
} |
} |
} |
if (wantarray) { |
if (wantarray) { |
Line 8662 Incoming parameters:
|
Line 8648 Incoming parameters:
|
status types (e.g., faculty, staff, student etc.) |
status types (e.g., faculty, staff, student etc.) |
which apply to the user for whom the default is being retrieved. |
which apply to the user for whom the default is being retrieved. |
If the institutional status string in undefined, the domain |
If the institutional status string in undefined, the domain |
default quota will be returned. |
default quota will be returned. |
3. quota name - portfolio, author, or course |
|
(if no quota name provided, defaults to portfolio). |
|
|
|
Returns: |
Returns: |
1. Default disk quota (in Mb) for user portfolios in the domain. |
1. Default disk quota (in Mb) for user portfolios in the domain. |
Line 8688 default quota returned.
|
Line 8672 default quota returned.
|
|
|
|
|
sub default_quota { |
sub default_quota { |
my ($udom,$inststatus,$quotaname) = @_; |
my ($udom,$inststatus) = @_; |
my ($defquota,$settingstatus); |
my ($defquota,$settingstatus); |
my %quotahash = &Apache::lonnet::get_dom('configuration', |
my %quotahash = &Apache::lonnet::get_dom('configuration', |
['quotas'],$udom); |
['quotas'],$udom); |
my $key = 'defaultquota'; |
|
if ($quotaname eq 'author') { |
|
$key = 'authorquota'; |
|
} |
|
if (ref($quotahash{'quotas'}) eq 'HASH') { |
if (ref($quotahash{'quotas'}) eq 'HASH') { |
if ($inststatus ne '') { |
if ($inststatus ne '') { |
my @statuses = map { &unescape($_); } split(/:/,$inststatus); |
my @statuses = map { &unescape($_); } split(/:/,$inststatus); |
foreach my $item (@statuses) { |
foreach my $item (@statuses) { |
if (ref($quotahash{'quotas'}{$key}) eq 'HASH') { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
if ($quotahash{'quotas'}{$key}{$item} ne '') { |
if ($quotahash{'quotas'}{'defaultquota'}{$item} ne '') { |
if ($defquota eq '') { |
if ($defquota eq '') { |
$defquota = $quotahash{'quotas'}{$key}{$item}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
} elsif ($quotahash{'quotas'}{$key}{$item} > $defquota) { |
} elsif ($quotahash{'quotas'}{'defaultquota'}{$item} > $defquota) { |
$defquota = $quotahash{'quotas'}{$key}{$item}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{$item}; |
$settingstatus = $item; |
$settingstatus = $item; |
} |
} |
} |
} |
} elsif ($key eq 'defaultquota') { |
} else { |
if ($quotahash{'quotas'}{$item} ne '') { |
if ($quotahash{'quotas'}{$item} ne '') { |
if ($defquota eq '') { |
if ($defquota eq '') { |
$defquota = $quotahash{'quotas'}{$item}; |
$defquota = $quotahash{'quotas'}{$item}; |
Line 8724 sub default_quota {
|
Line 8704 sub default_quota {
|
} |
} |
} |
} |
if ($defquota eq '') { |
if ($defquota eq '') { |
if (ref($quotahash{'quotas'}{$key}) eq 'HASH') { |
if (ref($quotahash{'quotas'}{'defaultquota'}) eq 'HASH') { |
$defquota = $quotahash{'quotas'}{$key}{'default'}; |
$defquota = $quotahash{'quotas'}{'defaultquota'}{'default'}; |
} elsif ($key eq 'defaultquota') { |
} else { |
$defquota = $quotahash{'quotas'}{'default'}; |
$defquota = $quotahash{'quotas'}{'default'}; |
} |
} |
$settingstatus = 'default'; |
$settingstatus = 'default'; |
} |
} |
} else { |
} else { |
$settingstatus = 'default'; |
$settingstatus = 'default'; |
if ($quotaname eq 'author') { |
$defquota = 20; |
$defquota = 500; |
|
} else { |
|
$defquota = 20; |
|
} |
|
} |
} |
if (wantarray) { |
if (wantarray) { |
return ($defquota,$settingstatus); |
return ($defquota,$settingstatus); |
Line 8746 sub default_quota {
|
Line 8722 sub default_quota {
|
} |
} |
} |
} |
|
|
############################################### |
|
|
|
=pod |
|
|
|
=item * &excess_filesize_authorspace() |
|
|
|
Returns warning message if upload of file to authoring space, or copying |
|
of existing file within authoring space will cause quota to be exceeded. |
|
|
|
Inputs: 6 |
|
1. username |
|
2. domain |
|
3. directory path for top level of current authoring space |
|
4. filename of file for which action is being requested |
|
5. filesize (kB) of file |
|
6. action being taken: copy or upload. |
|
|
|
Returns: 1 scalar: HTML to display containing warning if quota would be exceeded, |
|
otherwise return null. |
|
|
|
=cut |
|
|
|
sub excess_filesize_authorspace { |
|
my ($uname,$udom,$authorspace,$filename,$filesize,$action) = @_; |
|
my $disk_quota = &Apache::loncommon::get_user_quota($uname,$udom,'author'); #expressed in MB |
|
$disk_quota = int($disk_quota * 1000); |
|
my $current_disk_usage = &Apache::lonnet::diskusage($udom,$uname,$authorspace); |
|
if (($current_disk_usage + $filesize) > $disk_quota) { |
|
return '<p><span class="LC_warning">'. |
|
&mt("Unable to $action [_1]. (size = [_2] kilobytes). Disk quota will be exceeded.", |
|
'<span class="LC_filename">'.$filename.'</span>',$filesize).'</span>'. |
|
'<br />'.&mt('Disk quota is [_1] kilobytes. Your current disk usage is [_2] kilobytes.', |
|
$disk_quota,$current_disk_usage). |
|
'</p>'; |
|
} |
|
return; |
|
} |
|
|
|
############################################### |
|
|
|
|
|
sub get_secgrprole_info { |
sub get_secgrprole_info { |
my ($cdom,$cnum,$needroles,$type) = @_; |
my ($cdom,$cnum,$needroles,$type) = @_; |
my %sections_count = &get_sections($cdom,$cnum); |
my %sections_count = &get_sections($cdom,$cnum); |
Line 9638 sub ask_for_embedded_content {
|
Line 9573 sub ask_for_embedded_content {
|
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
} |
} |
if (($actionurl eq '/adm/portfolio') || |
if (($actionurl eq '/adm/portfolio') || |
($actionurl eq '/adm/coursegrp_portfolio')) { |
($actionurl eq '/adm/coursegrp_portfolio')) { |
my $current_path='/'; |
my $current_path='/'; |
if ($env{'form.currentpath'}) { |
if ($env{'form.currentpath'}) { |
Line 9670 sub ask_for_embedded_content {
|
Line 9605 sub ask_for_embedded_content {
|
$toplevel = $url; |
$toplevel = $url; |
if ($args->{'context'} eq 'paste') { |
if ($args->{'context'} eq 'paste') { |
($cdom,$cnum) = ($url =~ m{^\Q/uploaded/\E($match_domain)/($match_courseid)/}); |
($cdom,$cnum) = ($url =~ m{^\Q/uploaded/\E($match_domain)/($match_courseid)/}); |
($path) = |
($path) = |
($toplevel =~ m{^(\Q/uploaded/$cdom/$cnum/\E(?:docs|supplemental)/(?:default|\d+)/\d+)/}); |
($toplevel =~ m{^(\Q/uploaded/$cdom/$cnum/\E(?:docs|supplemental)/(?:default|\d+)/\d+)/}); |
$fileloc = &Apache::lonnet::filelocation('',$toplevel); |
$fileloc = &Apache::lonnet::filelocation('',$toplevel); |
$fileloc =~ s{^/}{}; |
$fileloc =~ s{^/}{}; |
} |
} |
} |
} |
} elsif ($actionurl eq '/adm/dependencies') { |
} elsif ($actionurl eq '/adm/dependencies') { |
if ($env{'request.course.id'} ne '') { |
if ($env{'request.course.id'} ne '') { |
if (ref($args) eq 'HASH') { |
if (ref($args) eq 'HASH') { |
$url = $args->{'docs_url'}; |
$url = $args->{'docs_url'}; |
$title = $args->{'docs_title'}; |
$title = $args->{'docs_title'}; |
$toplevel = $url; |
$toplevel = $url; |
unless ($toplevel =~ m{^/}) { |
unless ($toplevel =~ m{^/}) { |
$toplevel = "/$url"; |
$toplevel = "/$url"; |
} |
} |
Line 9751 sub ask_for_embedded_content {
|
Line 9686 sub ask_for_embedded_content {
|
my $dirptr = 16384; |
my $dirptr = 16384; |
foreach my $path (keys(%subdependencies)) { |
foreach my $path (keys(%subdependencies)) { |
$currsubfile{$path} = {}; |
$currsubfile{$path} = {}; |
if (($actionurl eq '/adm/portfolio') || |
if (($actionurl eq '/adm/portfolio') || |
($actionurl eq '/adm/coursegrp_portfolio')) { |
($actionurl eq '/adm/coursegrp_portfolio')) { |
my ($sublistref,$listerror) = |
my ($sublistref,$listerror) = |
&Apache::lonnet::dirlist($url.$path,$udom,$uname,$getpropath); |
&Apache::lonnet::dirlist($url.$path,$udom,$uname,$getpropath); |
if (ref($sublistref) eq 'ARRAY') { |
if (ref($sublistref) eq 'ARRAY') { |
Line 9894 sub ask_for_embedded_content {
|
Line 9829 sub ask_for_embedded_content {
|
$counter = scalar(keys(%existing)); |
$counter = scalar(keys(%existing)); |
$numpathchg = scalar(keys(%pathchanges)); |
$numpathchg = scalar(keys(%pathchanges)); |
return ($output,$counter,$numpathchg,\%existing); |
return ($output,$counter,$numpathchg,\%existing); |
} elsif (($actionurl eq "/public/$cdom/$cnum/syllabus") && |
} elsif (($actionurl eq "/public/$cdom/$cnum/syllabus") && |
(ref($args) eq 'HASH') && ($args->{'context'} eq 'rewrites')) { |
(ref($args) eq 'HASH') && ($args->{'context'} eq 'rewrites')) { |
$counter = scalar(keys(%existing)); |
$counter = scalar(keys(%existing)); |
$numpathchg = scalar(keys(%pathchanges)); |
$numpathchg = scalar(keys(%pathchanges)); |
Line 10440 sub modify_html_refs {
|
Line 10375 sub modify_html_refs {
|
} |
} |
my (%allfiles,%codebase,$output,$content); |
my (%allfiles,%codebase,$output,$content); |
my @changes = &get_env_multiple('form.namechange'); |
my @changes = &get_env_multiple('form.namechange'); |
unless ((@changes > 0) || ($context eq 'syllabus')) { |
unless ((@changes > 0) || ($context eq 'syllabus')) { |
if (wantarray) { |
if (wantarray) { |
return ('',0,0); |
return ('',0,0); |
} else { |
} else { |
Line 10574 sub modify_html_refs {
|
Line 10509 sub modify_html_refs {
|
} |
} |
} |
} |
if ($rewrites) { |
if ($rewrites) { |
my $saveresult; |
my $saveresult; |
my $url = &Apache::lonnet::store_edited_file($container,$content,$udom,$uname,\$saveresult); |
my $url = &Apache::lonnet::store_edited_file($container,$content,$udom,$uname,\$saveresult); |
if ($url eq $container) { |
if ($url eq $container) { |
my ($fname) = ($container =~ m{/([^/]+)$}); |
my ($fname) = ($container =~ m{/([^/]+)$}); |
Line 11583 sub process_extracted_files {
|
Line 11518 sub process_extracted_files {
|
$folders{'0'} = $items[-2]; |
$folders{'0'} = $items[-2]; |
if ($env{'form.folderpath'} =~ /\:1$/) { |
if ($env{'form.folderpath'} =~ /\:1$/) { |
$containers{'0'}='page'; |
$containers{'0'}='page'; |
} else { |
} else { |
$containers{'0'}='sequence'; |
$containers{'0'}='sequence'; |
} |
} |
} |
} |
Line 11703 sub process_extracted_files {
|
Line 11638 sub process_extracted_files {
|
} |
} |
} |
} |
} else { |
} else { |
$warning .= &mt('Item extracted from archive: [_1] has unexpected path.',$path).'<br />'; |
$warning .= &mt('Item extracted from archive: [_1] has unexpected path.',$path).'<br />'; |
} |
} |
} |
} |
for (my $i=1; $i<=$numitems; $i++) { |
for (my $i=1; $i<=$numitems; $i++) { |
Line 11725 sub process_extracted_files {
|
Line 11660 sub process_extracted_files {
|
} |
} |
if ($itemidx eq '') { |
if ($itemidx eq '') { |
$itemidx = 0; |
$itemidx = 0; |
} |
} |
if (grep(/^\Q$referrer{$i}\E$/,@archdirs)) { |
if (grep(/^\Q$referrer{$i}\E$/,@archdirs)) { |
if ($mapinner{$referrer{$i}}) { |
if ($mapinner{$referrer{$i}}) { |
$fullpath = "$prefix$dir/$docstype/$mapinner{$referrer{$i}}"; |
$fullpath = "$prefix$dir/$docstype/$mapinner{$referrer{$i}}"; |
Line 11772 sub process_extracted_files {
|
Line 11707 sub process_extracted_files {
|
$showpath = "$relpath/$title"; |
$showpath = "$relpath/$title"; |
} else { |
} else { |
$showpath = "/$title"; |
$showpath = "/$title"; |
} |
} |
$result .= '<li>'.&mt('[_1] included as a dependency',$showpath).'</li>'."\n"; |
$result .= '<li>'.&mt('[_1] included as a dependency',$showpath).'</li>'."\n"; |
} |
} |
unless ($ishome) { |
unless ($ishome) { |
my $fetch = "$fullpath/$title"; |
my $fetch = "$fullpath/$title"; |
$fetch =~ s/^\Q$prefix$dir\E//; |
$fetch =~ s/^\Q$prefix$dir\E//; |
$prompttofetch{$fetch} = 1; |
$prompttofetch{$fetch} = 1; |
} |
} |
} |
} |
Line 11787 sub process_extracted_files {
|
Line 11722 sub process_extracted_files {
|
$path,$env{'form.archive_content_'.$referrer{$i}}).'<br />'; |
$path,$env{'form.archive_content_'.$referrer{$i}}).'<br />'; |
} |
} |
} else { |
} else { |
$warning .= &mt('Item extracted from archive: [_1] has unexpected path.',$path).'<br />'; |
$warning .= &mt('Item extracted from archive: [_1] has unexpected path.',$path).'<br />'; |
} |
} |
} |
} |
if (keys(%todelete)) { |
if (keys(%todelete)) { |
Line 11893 sub get_folder_hierarchy {
|
Line 11828 sub get_folder_hierarchy {
|
my @pcs = split(/,/,$pcslist); |
my @pcs = split(/,/,$pcslist); |
foreach my $pc (@pcs) { |
foreach my $pc (@pcs) { |
if ($pc == 1) { |
if ($pc == 1) { |
push(@pathitems,&mt('Main Content')); |
push(@pathitems,&mt('Main Course Documents')); |
} else { |
} else { |
my $res = $navmap->getByMapPc($pc); |
my $res = $navmap->getByMapPc($pc); |
if (ref($res)) { |
if (ref($res)) { |
Line 11908 sub get_folder_hierarchy {
|
Line 11843 sub get_folder_hierarchy {
|
} |
} |
if ($showitem) { |
if ($showitem) { |
if ($mapres->{ID} eq '0.0') { |
if ($mapres->{ID} eq '0.0') { |
push(@pathitems,&mt('Main Content')); |
push(@pathitems,&mt('Main Course Documents')); |
} else { |
} else { |
my $maptitle = $mapres->compTitle(); |
my $maptitle = $mapres->compTitle(); |
$maptitle =~ s/\W+/_/g; |
$maptitle =~ s/\W+/_/g; |
Line 13509 sub commit_studentrole {
|
Line 13444 sub commit_studentrole {
|
} |
} |
} |
} |
} else { |
} else { |
if ($secchange) { |
if ($secchange) { |
$$logmsg .= &mt('Error when attempting section change for [_1] from old section "[_2]" to new section: "[_3]" in course [_4] -error:',$uname,$oldsec,$sec,$cid).' '.$modify_section_result.$linefeed; |
$$logmsg .= &mt('Error when attempting section change for [_1] from old section "[_2]" to new section: "[_3]" in course [_4] -error:',$uname,$oldsec,$sec,$cid).' '.$modify_section_result.$linefeed; |
} else { |
} else { |
$$logmsg .= &mt('Error when attempting to modify role for [_1] for section: "[_2]" in course [_3] -error:',$uname,$sec,$cid).' '.$modify_section_result.$linefeed; |
$$logmsg .= &mt('Error when attempting to modify role for [_1] for section: "[_2]" in course [_3] -error:',$uname,$sec,$cid).' '.$modify_section_result.$linefeed; |
Line 14221 sub init_user_environment {
|
Line 14156 sub init_user_environment {
|
my %reqauthor = &Apache::lonnet::get('requestauthor',['author_status','author'], |
my %reqauthor = &Apache::lonnet::get('requestauthor',['author_status','author'], |
$domain,$username); |
$domain,$username); |
my $reqstatus = $reqauthor{'author_status'}; |
my $reqstatus = $reqauthor{'author_status'}; |
if ($reqstatus eq 'approval' || $reqstatus eq 'approved') { |
if ($reqstatus eq 'approval' || $reqstatus eq 'approved') { |
if (ref($reqauthor{'author'}) eq 'HASH') { |
if (ref($reqauthor{'author'}) eq 'HASH') { |
$userenv{'requestauthorqueued'} = $reqstatus.':'. |
$userenv{'requestauthorqueued'} = $reqstatus.':'. |
$reqauthor{'author'}{'timestamp'}; |
$reqauthor{'author'}{'timestamp'}; |
Line 14469 sub symb_to_docspath {
|
Line 14404 sub symb_to_docspath {
|
$path =~ s/^\&//; |
$path =~ s/^\&//; |
my $maptitle = $mapresobj->title(); |
my $maptitle = $mapresobj->title(); |
if ($mapurl eq 'default') { |
if ($mapurl eq 'default') { |
$maptitle = 'Main Content'; |
$maptitle = 'Main Course Documents'; |
} |
} |
$path .= (($path ne '')? '&' : ''). |
$path .= (($path ne '')? '&' : ''). |
&Apache::lonhtmlcommon::entity_encode($mapurl).'&'. |
&Apache::lonhtmlcommon::entity_encode($mapurl).'&'. |
Line 14483 sub symb_to_docspath {
|
Line 14418 sub symb_to_docspath {
|
my $maptitle = &Apache::lonnet::gettitle($mapurl); |
my $maptitle = &Apache::lonnet::gettitle($mapurl); |
my $ispage = (($type eq 'page')? 1 : ''); |
my $ispage = (($type eq 'page')? 1 : ''); |
if ($mapurl eq 'default') { |
if ($mapurl eq 'default') { |
$maptitle = 'Main Content'; |
$maptitle = 'Main Course Documents'; |
} |
} |
$path = &Apache::lonhtmlcommon::entity_encode($mapurl).'&'. |
$path = &Apache::lonhtmlcommon::entity_encode($mapurl).'&'. |
&Apache::lonhtmlcommon::entity_encode($maptitle).':::::'.$ispage; |
&Apache::lonhtmlcommon::entity_encode($maptitle).':::::'.$ispage; |
} |
} |
unless ($mapurl eq 'default') { |
unless ($mapurl eq 'default') { |
$path = 'default&'. |
$path = 'default&'. |
&Apache::lonhtmlcommon::entity_encode('Main Content'). |
&Apache::lonhtmlcommon::entity_encode('Main Course Documents'). |
':::::&'.$path; |
':::::&'.$path; |
} |
} |
return $path; |
return $path; |
Line 14503 sub captcha_display {
|
Line 14438 sub captcha_display {
|
if ($captcha eq 'original') { |
if ($captcha eq 'original') { |
$output = &create_captcha(); |
$output = &create_captcha(); |
unless ($output) { |
unless ($output) { |
$error = 'captcha'; |
$error = 'captcha'; |
} |
} |
} elsif ($captcha eq 'recaptcha') { |
} elsif ($captcha eq 'recaptcha') { |
$output = &create_recaptcha($pubkey); |
$output = &create_recaptcha($pubkey); |
unless ($output) { |
unless ($output) { |
$error = 'recaptcha'; |
$error = 'recaptcha'; |
} |
} |
} |
} |
return ($output,$error); |
return ($output,$error); |
Line 14633 sub create_recaptcha {
|
Line 14568 sub create_recaptcha {
|
return $captcha->get_options_setter({theme => 'white'})."\n". |
return $captcha->get_options_setter({theme => 'white'})."\n". |
$captcha->get_html($pubkey). |
$captcha->get_html($pubkey). |
&mt('If either word is hard to read, [_1] will replace them.', |
&mt('If either word is hard to read, [_1] will replace them.', |
'<img src="/res/adm/pages/refresh.gif" alt="reCAPTCHA refresh" />'). |
'<image src="/res/adm/pages/refresh.gif" alt="reCAPTCHA refresh" />'). |
'<br /><br />'; |
'<br /><br />'; |
} |
} |
|
|