version 1.1075.2.161.2.21, 2024/02/28 01:21:29
|
version 1.1075.2.161.2.28, 2024/09/07 18:47:20
|
Line 3452 sub passwd_validation_js {
|
Line 3452 sub passwd_validation_js {
|
} else { |
} else { |
$alertmsg = &mt('A secret did not satisfy requirement(s):').'\n\n'; |
$alertmsg = &mt('A secret did not satisfy requirement(s):').'\n\n'; |
} |
} |
|
} elsif ($context eq 'ltitools') { |
|
my %domconfig = &Apache::lonnet::get_dom('configuration',['toolsec'],$domain); |
|
if (ref($domconfig{'toolsec'}) eq 'HASH') { |
|
if (ref($domconfig{'toolsec'}{'rules'}) eq 'HASH') { |
|
%passwdconf = %{$domconfig{'toolsec'}{'rules'}}; |
|
} |
|
} |
|
if ($id eq 'add') { |
|
$alertmsg = &mt('Secret for added external tool did not satisfy requirement(s):').'\n\n'; |
|
} elsif ($id =~ /^\d+$/) { |
|
my $pos = $id+1; |
|
$alertmsg = &mt('Secret for external tool [_1] did not satisfy requirement(s):','#'.$pos).'\n\n'; |
|
} else { |
|
$alertmsg = &mt('A secret did not satisfy requirement(s):').'\n\n'; |
|
} |
} else { |
} else { |
%passwdconf = &Apache::lonnet::get_passwdconf($domain); |
%passwdconf = &Apache::lonnet::get_passwdconf($domain); |
$alertmsg = &mt('Initial password did not satisfy requirement(s):').'\n\n'; |
$alertmsg = &mt('Initial password did not satisfy requirement(s):').'\n\n'; |
Line 5968 Input: (optional) filename from which br
|
Line 5983 Input: (optional) filename from which br
|
If page header is being requested for use in a frameset, then |
If page header is being requested for use in a frameset, then |
the second (option) argument -- frameset will be true, and |
the second (option) argument -- frameset will be true, and |
the target attribute set for links should be target="_parent". |
the target attribute set for links should be target="_parent". |
|
If $title is supplied as the third arg, that will be used to |
|
the left of the breadcrumbs tail for the current path. |
|
|
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 Authoring Space pages |
Line 5975 Returns: HTML div with CSTR path and rec
|
Line 5992 Returns: HTML div with CSTR path and rec
|
=cut |
=cut |
|
|
sub CSTR_pageheader { |
sub CSTR_pageheader { |
my ($trailfile,$frameset) = @_; |
my ($trailfile,$frameset,$title) = @_; |
if ($trailfile eq '') { |
if ($trailfile eq '') { |
$trailfile = $env{'request.filename'}; |
$trailfile = $env{'request.filename'}; |
} |
} |
Line 5998 sub CSTR_pageheader {
|
Line 6015 sub CSTR_pageheader {
|
$lastitem = $thisdisfn; |
$lastitem = $thisdisfn; |
} |
} |
|
|
|
if ($title eq '') { |
|
$title = &mt('Authoring Space'); |
|
} |
|
|
my ($target,$crumbtarget) = (' target="_top"','_top'); |
my ($target,$crumbtarget) = (' target="_top"','_top'); |
if ($frameset) { |
if ($frameset) { |
$target = ' target="_parent"'; |
$target = ' target="_parent"'; |
Line 6013 sub CSTR_pageheader {
|
Line 6034 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>'.$title.'</b> ' |
.'<form name="dirs" method="post" action="'.$formaction.'"'.$target.'>' |
.'<form name="dirs" method="post" action="'.$formaction.'"'.$target.'>' |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,$crumbtarget,'/priv/'.$udom,undef,undef); |
.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,$crumbtarget,'/priv/'.$udom,undef,undef); |
|
|
Line 6069 sub nocodemirror {
|
Line 6090 sub nocodemirror {
|
Input: $uri (optional) |
Input: $uri (optional) |
|
|
Returns: %editors hash in which keys are editors |
Returns: %editors hash in which keys are editors |
permitted in current Authoring Space. |
permitted in current Authoring Space, |
|
or in current course for web pages |
|
created in a course. |
|
|
Value for each key is 1. Possible keys |
Value for each key is 1. Possible keys |
are: edit, xml, and daxe. If no specific |
are: edit, xml, and daxe. |
|
|
|
For a regular Authoring Space, if no specific |
set of editors has been set for the Author |
set of editors has been set for the Author |
who owns the Authoring Space, then the |
who owns the Authoring Space, then the |
domain default will be used. If no domain |
domain default will be used. If no domain |
default has been set, then the keys will be |
default has been set, then the keys will be |
edit and xml. |
edit and xml. |
|
|
|
For a course author, or for web pages created |
|
in a course, if no specific set of editors has |
|
been set for the course, then the domain |
|
course default will be used. If no domain |
|
course default has been set, then the keys |
|
will be edit and xml. |
|
|
=cut |
=cut |
|
|
sub permitted_editors { |
sub permitted_editors { |
my ($uri) = @_; |
my ($uri) = @_; |
my ($is_author,$is_coauthor,$auname,$audom,%editors); |
my ($is_author,$is_coauthor,$is_course,$auname,$audom,%editors); |
if ($env{'request.role'} =~ m{^au\./}) { |
if ($env{'request.role'} =~ m{^au\./}) { |
$is_author = 1; |
$is_author = 1; |
} elsif ($env{'request.role'} =~ m{^(?:ca|aa)\./($match_domain)/($match_username)}) { |
} elsif ($env{'request.role'} =~ m{^(?:ca|aa)\./($match_domain)/($match_username)}) { |
Line 6096 sub permitted_editors {
|
Line 6129 sub permitted_editors {
|
} |
} |
} |
} |
} elsif ($env{'request.course.id'}) { |
} elsif ($env{'request.course.id'}) { |
if ($env{'request.editurl'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
my ($cdom,$cnum); |
|
$cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
|
$cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
if (($env{'request.editurl'} =~ m{^/priv/\Q$cdom/$cnum\E/}) || |
|
($env{'request.editurl'} =~ m{^/uploaded/\Q$cdom/$cnum\E/(docs|supplemental)/}) || |
|
($uri =~ m{^/uploaded/\Q$cdom/$cnum\E/(docs|supplemental)/})) { |
|
$is_course = 1; |
|
} elsif ($env{'request.editurl'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
($audom,$auname) = ($1,$2); |
($audom,$auname) = ($1,$2); |
} elsif ($env{'request.uri'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
} elsif ($env{'request.uri'} =~ m{^/priv/($match_domain)/($match_username)/}) { |
($audom,$auname) = ($1,$2); |
($audom,$auname) = ($1,$2); |
} elsif (($uri eq '/daxesave') && |
} elsif (($uri eq '/daxesave') && |
|
(($env{'form.path'} =~ m{^/daxeopen/priv/\Q$cdom/$cnum\E/}) || |
|
($env{'form.path'} =~ m{^/daxeopen/uploaded/\Q$cdom/$cnum\E/(docs|supplemental)/}))) { |
|
$is_course = 1; |
|
} elsif (($uri eq '/daxesave') && |
($env{'form.path'} =~ m{^/daxeopen/priv/($match_domain)/($match_username)/})) { |
($env{'form.path'} =~ m{^/daxeopen/priv/($match_domain)/($match_username)/})) { |
($audom,$auname) = ($1,$2); |
($audom,$auname) = ($1,$2); |
} |
} |
if (($audom ne '') && ($auname ne '')) { |
unless ($is_course) { |
if (($env{'user.domain'} eq $audom) && |
if (($audom ne '') && ($auname ne '')) { |
($env{'user.name'} eq $auname)) { |
if (($env{'user.domain'} eq $audom) && |
$is_author = 1; |
($env{'user.name'} eq $auname)) { |
} else { |
$is_author = 1; |
$is_coauthor = 1; |
} else { |
|
$is_coauthor = 1; |
|
} |
} |
} |
} |
} |
} |
} |
Line 6129 sub permitted_editors {
|
Line 6175 sub permitted_editors {
|
xml => 1, |
xml => 1, |
); |
); |
} |
} |
|
} elsif ($is_course) { |
|
if (exists($env{'course.'.$env{'request.course.id'}.'.internal.crseditors'})) { |
|
map { $editors{$_} = 1; } split(/,/,$env{'course.'.$env{'request.course.id'}.'.internal.crseditors'}); |
|
} else { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($env{'course.'.$env{'request.course.id'}.'.domain'}); |
|
if (exists($domdefaults{'crseditors'})) { |
|
map { $editors{$_} = 1; } split(/,/,$domdefaults{'crseditors'}); |
|
} else { |
|
%editors = ( edit => 1, |
|
xml => 1, |
|
); |
|
} |
|
} |
} else { |
} else { |
%editors = ( edit => 1, |
%editors = ( edit => 1, |
xml => 1, |
xml => 1, |
Line 6379 sub bodytag {
|
Line 6438 sub bodytag {
|
$bodytag .= Apache::lonhtmlcommon::scripttag( |
$bodytag .= Apache::lonhtmlcommon::scripttag( |
Apache::lonmenu::utilityfunctions($httphost), 'start'); |
Apache::lonmenu::utilityfunctions($httphost), 'start'); |
|
|
|
my $collapsible; |
if ($args->{'collapsible_header'} ne '') { |
if ($args->{'collapsible_header'} ne '') { |
my $alttext = &mt('menu state: collapsed'); |
$collapsible = 1; |
my $tooltip = &mt('display standard menus'); |
my ($menustate,$tiptext,$divclass); |
|
if ($args->{'start_collapsed'}) { |
|
$menustate = 'collapsed'; |
|
$tiptext = 'display'; |
|
$divclass = 'hidden'; |
|
} else { |
|
$menustate = 'expanded'; |
|
$tiptext = 'hide'; |
|
$divclass = 'shown'; |
|
} |
|
my $alttext = &mt('menu state: '.$menustate); |
|
my $tooltip = &mt($tiptext.' standard menus'); |
$bodytag .= <<"END"; |
$bodytag .= <<"END"; |
<div id="LC_expandingContainer" style="display:inline;"> |
<div id="LC_expandingContainer" style="display:inline;"> |
<div id="LC_collapsible" class="LC_collapse_trigger" style="position: absolute;top: -5px;left: 0px; z-index:101; display:inline;"> |
<div id="LC_collapsible" class="LC_collapse_trigger" style="position: absolute;top: -5px;left: 0px; z-index:101; display:inline;"> |
<a href="#" style="text-decoration:none;"><img class="LC_collapsible_indicator" alt="$alttext" title="$tooltip" src="/res/adm/pages/collapsed.png" style="border:0;margin:0;padding:0;max-width:100%;height:auto" /></a></div> |
<a href="#" style="text-decoration:none;"><img class="LC_collapsible_indicator" alt="$alttext" title="$tooltip" src="/res/adm/pages/$menustate.png" style="border:0;margin:0;padding:0;max-width:100%;height:auto" /></a></div> |
<div class="LC_menus_content hidden"> |
<div class="LC_menus_content $divclass"> |
END |
END |
} |
} |
unless ($args->{'no_primary_menu'}) { |
unless ($args->{'no_primary_menu'}) { |
my ($left,$right) = Apache::lonmenu::primary_menu($crstype,$ltimenu,$menucoll,$menuref, |
my ($left,$right) = Apache::lonmenu::primary_menu($crstype,$ltimenu,$menucoll,$menuref, |
$args->{'links_disabled'}, |
$args->{'links_disabled'}, |
$args->{'links_target'}, |
$args->{'links_target'}, |
$args->{'collapsible_header'}); |
$collapsible); |
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>|; |
Line 6708 form, .inline {
|
Line 6779 form, .inline {
|
} |
} |
|
|
.LC_menus_content.shown{ |
.LC_menus_content.shown{ |
display: inline; |
display: block; |
} |
} |
|
|
.LC_menus_content.hidden { |
.LC_menus_content.hidden { |
Line 9034 OFFLOAD
|
Line 9105 OFFLOAD
|
$title = 'The LearningOnline Network with CAPA'; |
$title = 'The LearningOnline Network with CAPA'; |
} |
} |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); } |
$result .= '<title> LON-CAPA '.$title.'</title>' |
if ($title =~ /^LON-CAPA\s+/) { |
.'<link rel="stylesheet" type="text/css" href="'.$url.'"'; |
$result .= '<title> '.$title.'</title>'; |
|
} else { |
|
$result .= '<title> LON-CAPA '.$title.'</title>'; |
|
} |
|
$result .= "\n".'<link rel="stylesheet" type="text/css" href="'.$url.'"'; |
if (!$args->{'frameset'}) { |
if (!$args->{'frameset'}) { |
$result .= ' /'; |
$result .= ' /'; |
} |
} |
Line 17097 sub init_user_environment {
|
Line 17172 sub init_user_environment {
|
|
|
# See if old ID present, if so, remove |
# See if old ID present, if so, remove |
|
|
my ($filename,$cookie,$userroles,$firstaccenv,$timerintenv); |
my ($filename,$cookie,$userroles,$firstaccenv,$timerintenv, |
|
$coauthorenv); |
my $now=time; |
my $now=time; |
|
|
if ($public) { |
if ($public) { |
Line 17162 sub init_user_environment {
|
Line 17238 sub init_user_environment {
|
|
|
# Initialize roles |
# Initialize roles |
|
|
($userroles,$firstaccenv,$timerintenv) = |
($userroles,$firstaccenv,$timerintenv,$coauthorenv) = |
&Apache::lonnet::rolesinit($domain,$username,$authhost); |
&Apache::lonnet::rolesinit($domain,$username,$authhost); |
} |
} |
# ------------------------------------ Check browser type and MathML capability |
# ------------------------------------ Check browser type and MathML capability |
Line 17241 sub init_user_environment {
|
Line 17317 sub init_user_environment {
|
my %is_adv = ( is_adv => $env{'user.adv'} ); |
my %is_adv = ( is_adv => $env{'user.adv'} ); |
my %domdef = &Apache::lonnet::get_domain_defaults($domain); |
my %domdef = &Apache::lonnet::get_domain_defaults($domain); |
|
|
foreach my $tool ('aboutme','blog','webdav','portfolio','timezone') { |
foreach my $tool ('aboutme','blog','webdav','portfolio','portaccess','timezone') { |
$userenv{'availabletools.'.$tool} = |
$userenv{'availabletools.'.$tool} = |
&Apache::lonnet::usertools_access($username,$domain,$tool,'reload', |
&Apache::lonnet::usertools_access($username,$domain,$tool,'reload', |
undef,\%userenv,\%domdef,\%is_adv); |
undef,\%userenv,\%domdef,\%is_adv); |
} |
} |
Line 17263 sub init_user_environment {
|
Line 17339 sub init_user_environment {
|
} else { |
} else { |
$userenv{'editors'} = 'edit,xml'; |
$userenv{'editors'} = 'edit,xml'; |
} |
} |
|
if ($userenv{'authorarchive'}) { |
|
$userenv{'canarchive'} = 1; |
|
} elsif (($userenv{'authorarchive'} eq '') && |
|
($domdef{'archive'})) { |
|
$userenv{'canarchive'} = 1; |
|
} |
} |
} |
|
|
$userenv{'canrequest.author'} = |
$userenv{'canrequest.author'} = |
Line 17293 sub init_user_environment {
|
Line 17375 sub init_user_environment {
|
if (ref($timerintenv) eq 'HASH') { |
if (ref($timerintenv) eq 'HASH') { |
&_add_to_env(\%disk_env,$timerintenv); |
&_add_to_env(\%disk_env,$timerintenv); |
} |
} |
|
if (ref($coauthorenv) eq 'HASH') { |
|
if (keys(%{$coauthorenv})) { |
|
&_add_to_env(\%disk_env,$coauthorenv); |
|
} |
|
} |
if (ref($args->{'extra_env'})) { |
if (ref($args->{'extra_env'})) { |
&_add_to_env(\%disk_env,$args->{'extra_env'}); |
&_add_to_env(\%disk_env,$args->{'extra_env'}); |
} |
} |