version 1.1025, 2011/10/31 01:14:24
|
version 1.1037, 2011/12/12 02:46:12
|
Line 1186 sub help_open_topic {
|
Line 1186 sub help_open_topic {
|
my ($topic, $text, $stayOnPage, $width, $height, $imgid) = @_; |
my ($topic, $text, $stayOnPage, $width, $height, $imgid) = @_; |
$text = "" if (not defined $text); |
$text = "" if (not defined $text); |
$stayOnPage = 0 if (not defined $stayOnPage); |
$stayOnPage = 0 if (not defined $stayOnPage); |
$width = 350 if (not defined $width); |
$width = 500 if (not defined $width); |
$height = 400 if (not defined $height); |
$height = 400 if (not defined $height); |
my $filename = $topic; |
my $filename = $topic; |
$filename =~ s/ /_/g; |
$filename =~ s/ /_/g; |
Line 1197 sub help_open_topic {
|
Line 1197 sub help_open_topic {
|
$topic=~s/\W/\_/g; |
$topic=~s/\W/\_/g; |
|
|
if (!$stayOnPage) { |
if (!$stayOnPage) { |
$link = "javascript:void(open('/adm/help/${filename}.hlp', 'Help_for_$topic', 'menubar=0,toolbar=1,scrollbars=1,width=$width,height=$height,resizable=yes'))"; |
$link = "javascript:openMyModal('/adm/help/${filename}.hlp',$width,$height,'yes');"; |
|
} elsif ($stayOnPage eq 'popup') { |
|
$link = "javascript:void(open('/adm/help/${filename}.hlp', 'Help_for_$topic', 'menubar=0,toolbar=1,scrollbars=1,width=$width,height=$height,resizable=yes'))"; |
} else { |
} else { |
$link = "/adm/help/${filename}.hlp"; |
$link = "/adm/help/${filename}.hlp"; |
} |
} |
Line 1230 sub help_open_topic {
|
Line 1232 sub help_open_topic {
|
# This is a quicky function for Latex cheatsheet editing, since it |
# This is a quicky function for Latex cheatsheet editing, since it |
# appears in at least four places |
# appears in at least four places |
sub helpLatexCheatsheet { |
sub helpLatexCheatsheet { |
my ($topic,$text,$not_author) = @_; |
my ($topic,$text,$not_author,$stayOnPage) = @_; |
my $out; |
my $out; |
my $addOther = ''; |
my $addOther = ''; |
if ($topic) { |
if ($topic) { |
$addOther = '<span>'.&Apache::loncommon::help_open_topic($topic,&mt($text), |
$addOther = '<span>'.&help_open_topic($topic,&mt($text),$stayOnPage, undef, 600).'</span> '; |
undef, undef, 600). |
|
'</span> '; |
|
} |
} |
$out = '<span>' # Start cheatsheet |
$out = '<span>' # Start cheatsheet |
.$addOther |
.$addOther |
.'<span>' |
.'<span>' |
.&Apache::loncommon::help_open_topic('Greek_Symbols',&mt('Greek Symbols'), |
.&help_open_topic('Greek_Symbols',&mt('Greek Symbols'),$stayOnPage,undef,600) |
undef,undef,600) |
|
.'</span> <span>' |
.'</span> <span>' |
.&Apache::loncommon::help_open_topic('Other_Symbols',&mt('Other Symbols'), |
.&help_open_topic('Other_Symbols',&mt('Other Symbols'),$stayOnPage,undef,600) |
undef,undef,600) |
|
.'</span>'; |
.'</span>'; |
unless ($not_author) { |
unless ($not_author) { |
$out .= ' <span>' |
$out .= ' <span>' |
.&Apache::loncommon::help_open_topic('Authoring_Output_Tags',&mt('Output Tags'), |
.&help_open_topic('Authoring_Output_Tags',&mt('Output Tags'),$stayOnPage,undef,600) |
undef,undef,600) |
|
.'</span>'; |
.'</span>'; |
} |
} |
$out .= '</span>'; # End cheatsheet |
$out .= '</span>'; # End cheatsheet |
Line 4446 sub get_legacy_domconf {
|
Line 4443 sub get_legacy_domconf {
|
close($fh); |
close($fh); |
} |
} |
} |
} |
if (-e '/home/httpd/html/adm/lonDomLogos/'.$udom.'.gif') { |
if (-e $Apache::lonnet::perlvar{'lonDocRoot'}.'/adm/lonDomLogos/'.$udom.'.gif') { |
$legacyhash{$udom.'.login.domlogo'} = "/adm/lonDomLogos/$udom.gif"; |
$legacyhash{$udom.'.login.domlogo'} = "/adm/lonDomLogos/$udom.gif"; |
} |
} |
return %legacyhash; |
return %legacyhash; |
Line 4532 sub designparm {
|
Line 4529 sub designparm {
|
|
|
=item * &authorspace() |
=item * &authorspace() |
|
|
Inputs: ./. |
Inputs: $url (usually will be undef). |
|
|
Returns: Path to the Construction Space of the current user's |
Returns: Path to Construction Space containing the resource or |
accessed author space |
directory being viewed (or for which action is being taken). |
The author space will be that of the current user |
If $url is provided, and begins /priv/<domain>/<uname> |
when accessing the own author space |
the path will be that portion of the $context argument. |
and that of the co-author/assistent co-author |
Otherwise the path will be for the author space of the current |
when accessing the co-author's/assistent co-author's |
user when the current role is author, or for that of the |
space |
co-author/assistant co-author space when the current role |
|
is co-author or assistant co-author. |
|
|
=cut |
=cut |
|
|
sub authorspace { |
sub authorspace { |
|
my ($url) = @_; |
|
if ($url ne '') { |
|
if ($url =~ m{^(/priv/$match_domain/$match_username/)}) { |
|
return $1; |
|
} |
|
} |
my $caname = ''; |
my $caname = ''; |
my $cadom = ''; |
my $cadom = ''; |
if ($env{'request.role'} =~ /^ca|^aa/) { |
if ($env{'request.role'} =~ /^(?:ca|aa)/) { |
($cadom,$caname) = |
($cadom,$caname) = |
($env{'request.role'}=~/($match_domain)\/($match_username)$/); |
($env{'request.role'}=~/($match_domain)\/($match_username)$/); |
} else { |
} elsif ($env{'request.role'} =~ m{^au\./($match_domain)/}) { |
$caname = $env{'user.name'}; |
$caname = $env{'user.name'}; |
$cadom = $env{'user.domain'}; |
$cadom = $env{'user.domain'}; |
} |
} |
return '/priv/'.$cadom.'/'.$caname.'/'; |
if (($caname ne '') && ($cadom ne '')) { |
|
return "/priv/$cadom/$caname/"; |
|
} |
|
return; |
} |
} |
|
|
############################################## |
############################################## |
Line 4582 sub head_subbox {
|
Line 4589 sub head_subbox {
|
|
|
=item * &CSTR_pageheader() |
=item * &CSTR_pageheader() |
|
|
Inputs: ./. |
Input: (optional) filename from which breadcrumb trail is built. |
|
In most cases no input as needed, as $env{'request.filename'} |
|
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 Construction Space pages |
To be included on Construction Space pages |
Line 4590 Returns: HTML div with CSTR path and rec
|
Line 4599 Returns: HTML div with CSTR path and rec
|
=cut |
=cut |
|
|
sub CSTR_pageheader { |
sub CSTR_pageheader { |
# this is for resources; directories have customtitle, and crumbs |
my ($trailfile) = @_; |
# and select recent are created in lonpubdir.pm |
if ($trailfile eq '') { |
|
$trailfile = $env{'request.filename'}; |
|
} |
|
|
|
# this is for resources; directories have customtitle, and crumbs |
|
# and select recent are created in lonpubdir.pm |
|
|
|
my $londocroot = $Apache::lonnet::perlvar{'lonDocRoot'}; |
my ($udom,$uname,$thisdisfn)= |
my ($udom,$uname,$thisdisfn)= |
($env{'request.filename'} =~ m|^/home/httpd/html/priv/([^/]+)/([^/]+)/(.*)$|); |
($trailfile =~ m{^\Q$londocroot\E/priv/([^/]+)/([^/]+)/(.*)$}); |
my $formaction='/priv/'.$udom.'/'.$uname.'/'.$thisdisfn; |
my $formaction = "/priv/$udom/$uname/$thisdisfn"; |
$formaction=~s/\/+/\//g; |
$formaction =~ s{/+}{/}g; |
|
|
my $parentpath = ''; |
my $parentpath = ''; |
my $lastitem = ''; |
my $lastitem = ''; |
Line 5505 span.LC_current_location {
|
Line 5521 span.LC_current_location {
|
background: $pgbg; |
background: $pgbg; |
} |
} |
|
|
|
span.LC_current_nav_location { |
|
font-weight:bold; |
|
background: $sidebg; |
|
} |
|
|
span.LC_parm_menu_item { |
span.LC_parm_menu_item { |
font-size: larger; |
font-size: larger; |
} |
} |
Line 6610 ul.LC_funclist li {
|
Line 6631 ul.LC_funclist li {
|
display: none; |
display: none; |
} |
} |
|
|
|
.LCmodal-overlay { |
|
position:fixed; |
|
top:0; |
|
right:0; |
|
bottom:0; |
|
left:0; |
|
height:100%; |
|
width:100%; |
|
margin:0; |
|
padding:0; |
|
background:#999; |
|
opacity:.75; |
|
filter: alpha(opacity=75); |
|
-moz-opacity: 0.75; |
|
z-index:101; |
|
} |
|
|
|
* html .LCmodal-overlay { |
|
position: absolute; |
|
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); |
|
} |
|
|
|
.LCmodal-window { |
|
position:fixed; |
|
top:50%; |
|
left:50%; |
|
margin:0; |
|
padding:0; |
|
z-index:102; |
|
} |
|
|
|
* html .LCmodal-window { |
|
position:absolute; |
|
} |
|
|
|
.LCclose-window { |
|
position:absolute; |
|
width:32px; |
|
height:32px; |
|
right:8px; |
|
top:8px; |
|
background:transparent url('/res/adm/pages/process-stop.png') no-repeat scroll right top; |
|
text-indent:-99999px; |
|
overflow:hidden; |
|
cursor:pointer; |
|
} |
|
|
END |
END |
} |
} |
|
|
Line 6668 sub headtag {
|
Line 6736 sub headtag {
|
&& !$args->{'only_body'} |
&& !$args->{'only_body'} |
&& !$args->{'frameset'}) { |
&& !$args->{'frameset'}) { |
$result .= &help_menu_js(); |
$result .= &help_menu_js(); |
|
$result.=&modal_window(); |
|
$result.=&wishlist_window(); |
|
} else { |
|
if ($args->{'add_modal'}) { |
|
$result.=&modal_window(); |
|
} |
|
if ($args->{'add_wishlist'}) { |
|
$result.=&wishlist_window(); |
|
} |
} |
} |
|
|
if (ref($args->{'redirect'})) { |
if (ref($args->{'redirect'})) { |
my ($time,$url,$inhibit_continue) = @{$args->{'redirect'}}; |
my ($time,$url,$inhibit_continue) = @{$args->{'redirect'}}; |
$url = &Apache::lonenc::check_encrypt($url); |
$url = &Apache::lonenc::check_encrypt($url); |
Line 6794 $args - additional optional args support
|
Line 6870 $args - additional optional args support
|
sub start_page { |
sub start_page { |
my ($title,$head_extra,$args) = @_; |
my ($title,$head_extra,$args) = @_; |
#&Apache::lonnet::logthis("start_page ".join(':',caller(0))); |
#&Apache::lonnet::logthis("start_page ".join(':',caller(0))); |
#SD |
|
#I don't see why we copy certain elements of %$args to %head_args |
|
#head args is passed to headtag() and this routine only reads those |
|
#keys that are needed. There doesn't happen any writes or any processing |
|
#of other keys. |
|
#proposal: just pass $args to headtag instead of \%head_args and delete |
|
#marked lines |
|
#<- MARK |
|
my %head_args; |
|
foreach my $arg ('redirect','force_register','domain','function', |
|
'bgcolor','frameset','no_nav_bar','only_body', |
|
'no_auto_mt_title') { |
|
if (defined($args->{$arg})) { |
|
$head_args{$arg} = $args->{$arg}; |
|
} |
|
} |
|
#MARK -> |
|
|
|
$env{'internal.start_page'}++; |
$env{'internal.start_page'}++; |
my $result; |
my $result; |
|
|
if (! exists($args->{'skip_phases'}{'head'}) ) { |
if (! exists($args->{'skip_phases'}{'head'}) ) { |
$result .= |
$result .= &xml_begin() . &headtag($title, $head_extra, $args); |
&xml_begin() . &headtag($title,$head_extra,\%head_args); |
|
#replace prev line by |
|
# &xml_begin() . &headtag($title, $head_extra, $args); |
|
} |
} |
|
|
if (! exists($args->{'skip_phases'}{'body'}) ) { |
if (! exists($args->{'skip_phases'}{'body'}) ) { |
Line 6885 sub end_page {
|
Line 6941 sub end_page {
|
} |
} |
$result .= &Apache::lonxml::xmlend($target,$parser); |
$result .= &Apache::lonxml::xmlend($target,$parser); |
} |
} |
|
|
if ($args->{'frameset'}) { |
if ($args->{'frameset'}) { |
$result .= '</frameset>'; |
$result .= '</frameset>'; |
} else { |
} else { |
Line 6904 sub end_page {
|
Line 6959 sub end_page {
|
return $result; |
return $result; |
} |
} |
|
|
|
sub wishlist_window { |
|
return(<<'ENDWISHLIST'); |
|
<script type="text/javascript" lang="javascript"> |
|
// <![CDATA[ |
|
// <!-- BEGIN LON-CAPA Internal |
|
function set_wishlistlink(title, path) { |
|
if (!title) { |
|
title = document.title; |
|
title = title.replace(/^LON-CAPA /,''); |
|
} |
|
if (!path) { |
|
path = location.pathname; |
|
} |
|
Win = window.open('/adm/wishlist?mode=newLink&setTitle='+title+'&setPath='+path, |
|
'wishlistNewLink','width=560,height=350,scrollbars=0'); |
|
} |
|
// END LON-CAPA Internal --> |
|
// ]]> |
|
</script> |
|
ENDWISHLIST |
|
} |
|
|
|
sub modal_window { |
|
return(<<'ENDMODAL'); |
|
<script type="text/javascript" lang="javascript"> |
|
// <![CDATA[ |
|
// <!-- BEGIN LON-CAPA Internal |
|
var modalWindow = { |
|
parent:"body", |
|
windowId:null, |
|
content:null, |
|
width:null, |
|
height:null, |
|
close:function() |
|
{ |
|
$(".LCmodal-window").remove(); |
|
$(".LCmodal-overlay").remove(); |
|
}, |
|
open:function() |
|
{ |
|
var modal = ""; |
|
modal += "<div class=\"LCmodal-overlay\"></div>"; |
|
modal += "<div id=\"" + this.windowId + "\" class=\"LCmodal-window\" style=\"width:" + this.width + "px; height:" + this.height + "px; margin-top:-" + (this.height / 2) + "px; margin-left:-" + (this.width / 2) + "px;\">"; |
|
modal += this.content; |
|
modal += "</div>"; |
|
|
|
$(this.parent).append(modal); |
|
|
|
$(".LCmodal-window").append("<a class=\"LCclose-window\"></a>"); |
|
$(".LCclose-window").click(function(){modalWindow.close();}); |
|
$(".LCmodal-overlay").click(function(){modalWindow.close();}); |
|
} |
|
}; |
|
var openMyModal = function(source,width,height,scrolling) |
|
{ |
|
modalWindow.windowId = "myModal"; |
|
modalWindow.width = width; |
|
modalWindow.height = height; |
|
modalWindow.content = "<iframe width='"+width+"' height='"+height+"' frameborder='0' scrolling='"+scrolling+"' allowtransparency='true' src='" + source + "'></iframe>"; |
|
modalWindow.open(); |
|
}; |
|
// END LON-CAPA Internal --> |
|
// ]]> |
|
</script> |
|
ENDMODAL |
|
} |
|
|
|
sub modal_link { |
|
my ($link,$linktext,$width,$height,$target,$scrolling)=@_; |
|
unless ($width) { $width=480; } |
|
unless ($height) { $height=400; } |
|
unless ($scrolling) { $scrolling='yes'; } |
|
return '<a href="'.$link.'" target="'.$target.'" onclick="openMyModal(\''.$link.'\','.$width.','.$height.',\''.$scrolling.'\'); return false;">'. |
|
$linktext.'</a>'; |
|
} |
|
|
|
sub modal_adhoc_script { |
|
my ($funcname,$width,$height,$content)=@_; |
|
return (<<ENDADHOC); |
|
<script type="text/javascript" lang="javascript"> |
|
// <![CDATA[ |
|
var $funcname = function() |
|
{ |
|
modalWindow.windowId = "myModal"; |
|
modalWindow.width = $width; |
|
modalWindow.height = $height; |
|
modalWindow.content = '$content'; |
|
modalWindow.open(); |
|
}; |
|
// ]]> |
|
</script> |
|
ENDADHOC |
|
} |
|
|
|
sub modal_adhoc_window { |
|
my ($funcname,$width,$height,$content,$linktext)=@_; |
|
my $innerwidth=$width-20; |
|
$content=&js_ready( |
|
&start_page('Dialog',undef,{'only_body'=>1,'bgcolor'=>'#FFFFFF'}). |
|
&start_scrollbox($width.'px',$innerwidth.'px',$height.'px'). |
|
$content. |
|
&end_scrollbox(). |
|
&end_page() |
|
); |
|
return &modal_adhoc_script($funcname,$width,$height,$content). |
|
"<a href=\"javascript:$funcname();void(0);\">".$linktext."</a>"; |
|
} |
|
|
sub html_encode { |
sub html_encode { |
my ($result) = @_; |
my ($result) = @_; |
|
|
Line 6962 sub start_scrollbox {
|
Line 7125 sub start_scrollbox {
|
} |
} |
|
|
sub end_scrollbox { |
sub end_scrollbox { |
return '</td></tr></table>'; |
return '</div></td></tr></table>'; |
} |
} |
|
|
sub simple_error_page { |
sub simple_error_page { |
Line 8451 sub ask_for_embedded_content {
|
Line 8614 sub ask_for_embedded_content {
|
} elsif (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank') || |
} elsif (($actionurl eq '/adm/upload') || ($actionurl eq '/adm/testbank') || |
($actionurl eq '/adm/imsimport')) { |
($actionurl eq '/adm/imsimport')) { |
my ($udom,$uname,$rest) = ($args->{'current_path'} =~ m{/priv/($match_domain)/($match_username)/?(.*)$}); |
my ($udom,$uname,$rest) = ($args->{'current_path'} =~ m{/priv/($match_domain)/($match_username)/?(.*)$}); |
$url = '/home/httpd/html/priv/'.$udom.'/'.$uname.'/'; |
$url = $Apache::lonnet::perlvar{'lonDocRoot'}."/priv/$udom/$uname/"; |
$toplevel = $url; |
$toplevel = $url; |
if ($rest ne '') { |
if ($rest ne '') { |
$url .= $rest; |
$url .= $rest; |
Line 8815 sub upload_embedded {
|
Line 8978 sub upload_embedded {
|
my $fullpath = $dir_root.$dirpath.'/'.$path; |
my $fullpath = $dir_root.$dirpath.'/'.$path; |
my $dest = $fullpath.$fname; |
my $dest = $fullpath.$fname; |
my $url = $url_root.$dirpath.'/'.$path.$fname; |
my $url = $url_root.$dirpath.'/'.$path.$fname; |
my @parts=split(/\//,$fullpath); |
my @parts=split(/\//,"$dirpath/$path"); |
my $count; |
my $count; |
my $filepath = $dir_root; |
my $filepath = $dir_root; |
for ($count=4;$count<=$#parts;$count++) { |
foreach my $subdir (@parts) { |
$filepath .= "/$parts[$count]"; |
$filepath .= "/$subdir"; |
if ((-e $filepath)!=1) { |
if (!-e $filepath) { |
mkdir($filepath,0770); |
mkdir($filepath,0770); |
} |
} |
} |
} |
Line 8939 sub modify_html_refs {
|
Line 9102 sub modify_html_refs {
|
} elsif ($context eq 'coursedoc') { |
} elsif ($context eq 'coursedoc') { |
$container = $env{'form.primaryurl'}; |
$container = $env{'form.primaryurl'}; |
} else { |
} else { |
$container = $env{'form.filename'}; |
$container = $Apache::lonnet::perlvar{'lonDocRoot'}.$env{'form.filename'}; |
} |
} |
my (%allfiles,%codebase,$output,$content); |
my (%allfiles,%codebase,$output,$content); |
my @changes = &get_env_multiple('form.namechange'); |
my @changes = &get_env_multiple('form.namechange'); |