version 1.191, 2004/05/03 16:07:18
|
version 1.214, 2004/09/24 22:07:34
|
Line 74 my $readit;
|
Line 74 my $readit;
|
my %language; |
my %language; |
my %supported_language; |
my %supported_language; |
my %cprtag; |
my %cprtag; |
|
my %scprtag; |
my %fe; my %fd; |
my %fe; my %fd; |
my %category_extensions; |
my %category_extensions; |
|
|
Line 131 BEGIN {
|
Line 132 BEGIN {
|
close($fh); |
close($fh); |
} |
} |
} |
} |
|
# ------------------------------------------------------------------ source copyrights |
|
{ |
|
my $sourcecopyrightfile = $Apache::lonnet::perlvar{'lonIncludes'}. |
|
'/source_copyright.tab'; |
|
if ( open (my $fh,"<$sourcecopyrightfile") ) { |
|
while (<$fh>) { |
|
next if /^\#/; |
|
chomp; |
|
my ($key,$val)=(split(/\s+/,$_,2)); |
|
$scprtag{$key}=$val; |
|
} |
|
close($fh); |
|
} |
|
} |
|
|
# -------------------------------------------------------------- domain designs |
# -------------------------------------------------------------- domain designs |
|
|
Line 235 of the element the selection from the se
|
Line 250 of the element the selection from the se
|
=cut |
=cut |
|
|
sub browser_and_searcher_javascript { |
sub browser_and_searcher_javascript { |
|
my ($mode)=@_; |
|
if (!defined($mode)) { $mode='edit'; } |
my $resurl=&lastresurl(); |
my $resurl=&lastresurl(); |
return <<END; |
return <<END; |
var editbrowser = null; |
var editbrowser = null; |
Line 244 sub browser_and_searcher_javascript {
|
Line 261 sub browser_and_searcher_javascript {
|
url += 'launch=1&'; |
url += 'launch=1&'; |
} |
} |
url += 'catalogmode=interactive&'; |
url += 'catalogmode=interactive&'; |
url += 'mode=edit&'; |
url += 'mode=$mode&'; |
url += 'form=' + formname + '&'; |
url += 'form=' + formname + '&'; |
if (only != null) { |
if (only != null) { |
url += 'only=' + only + '&'; |
url += 'only=' + only + '&'; |
Line 269 sub browser_and_searcher_javascript {
|
Line 286 sub browser_and_searcher_javascript {
|
url += 'launch=1&'; |
url += 'launch=1&'; |
} |
} |
url += 'catalogmode=interactive&'; |
url += 'catalogmode=interactive&'; |
url += 'mode=edit&'; |
url += 'mode=$mode&'; |
url += 'form=' + formname + '&'; |
url += 'form=' + formname + '&'; |
if (titleelement != null) { |
if (titleelement != null) { |
url += 'titleelement=' + titleelement + '&'; |
url += 'titleelement=' + titleelement + '&'; |
Line 622 sub helpLatexCheatsheet {
|
Line 639 sub helpLatexCheatsheet {
|
.'</td></tr></table>'; |
.'</td></tr></table>'; |
} |
} |
|
|
|
sub help_open_menu { |
|
my ($color,$topic,$component_help,$function,$faq,$bug,$stayOnPage,$width,$height,$text) = @_; |
|
$text = "" if (not defined $text); |
|
$stayOnPage = 0 if (not defined $stayOnPage); |
|
if ($ENV{'browser.interface'} eq 'textual' || |
|
$ENV{'environment.remote'} eq 'off' ) { |
|
$stayOnPage=1; |
|
} |
|
$width = 620 if (not defined $width); |
|
$height = 600 if (not defined $height); |
|
my $link=''; |
|
my $title = &mt('Get help'); |
|
my $origurl = $ENV{'REQUEST_URI'}; |
|
my $timestamp = time; |
|
foreach (\$color,\$function,\$topic,\$component_help,\$faq,\$bug,\$origurl) { |
|
$$_ = &Apache::lonnet::escape($$_); |
|
} |
|
|
|
if (!$stayOnPage) { |
|
$link = "javascript:helpMenu('open')"; |
|
} else { |
|
$link = "javascript:helpMenu('display')"; |
|
} |
|
my $banner_link = "/adm/helpmenu?page=banner&color=$color&function=$function&topic=$topic&component_help=$component_help&faq=$faq&bug=$bug&origurl=$origurl&stamp=$timestamp&stayonpage=$stayOnPage"; |
|
my $details_link = "/adm/helpmenu?page=body&color=$color&function=$function&topic=$topic&component_help=$component_help&faq=$faq&bug=$bug&origurl=$origurl&stamp=$timestamp"; |
|
my $template; |
|
if ($text ne "") { |
|
$template .= |
|
"<table bgcolor='#773311' cellspacing='1' cellpadding='1' border='0'><tr>". |
|
"<td bgcolor='#886622'><a href=\"$link\"><font color='#FFFFFF' size='2'>$text</font></a>"; |
|
} |
|
$template .= <<"ENDTEMPLATE"; |
|
<script> |
|
function helpMenu(caller) { |
|
if (caller == 'open') { |
|
newWindow = window.open("","helpmenu","HEIGHT=$height,WIDTH=$width,resize=yes,scrollbars=yes" ) |
|
caller = newWindow.document |
|
} else { |
|
caller = this.document |
|
} |
|
caller.write("<html><head><title>LON-CAPA Help Menu</title><meta http-equiv='pragma' content='no-cache'></head>") |
|
caller.write("<frameset rows='105,*' border='0'><frame name='bannerframe' src='$banner_link'><frame name='bodyframe' src='$details_link'></frameset>") |
|
caller.write("</html>") |
|
caller.close() |
|
if (caller == newWindow.document) { |
|
caller.focus() |
|
} |
|
} |
|
</script> |
|
<a href="$link" title="$title"><image src="/adm/lonIcons/helpgateway.gif" border="0" alt="(Help Menu)" /></a> |
|
ENDTEMPLATE |
|
if ($component_help) { |
|
if (!$text) { |
|
$template=&help_open_topic($component_help,undef,$stayOnPage, |
|
$width,$height).' '.$template; |
|
} else { |
|
my $help_text; |
|
$help_text=&Apache::lonnet::unescape($topic); |
|
$template='<table><tr><td>'. |
|
&help_open_topic($component_help,$help_text,$stayOnPage, |
|
$width,$height).'</td><td>'.$template. |
|
'</td></tr></table>'; |
|
} |
|
} |
|
if ($text ne '') { $template.='</td></tr></table>' }; |
|
return $template; |
|
} |
|
|
sub help_open_bug { |
sub help_open_bug { |
my ($topic, $text, $stayOnPage, $width, $height) = @_; |
my ($topic, $text, $stayOnPage, $width, $height) = @_; |
unless ($ENV{'user.adv'}) { return ''; } |
unless ($ENV{'user.adv'}) { return ''; } |
Line 727 format.
|
Line 812 format.
|
sub csv_translate { |
sub csv_translate { |
my $text = shift; |
my $text = shift; |
$text =~ s/\"/\"\"/g; |
$text =~ s/\"/\"\"/g; |
$text =~ s/\n//g; |
$text =~ s/\n/ /g; |
return $text; |
return $text; |
} |
} |
|
|
Line 778 sub define_excel_formats {
|
Line 863 sub define_excel_formats {
|
$format->{'h2'} = $workbook->add_format(bold=>1, size=>16); |
$format->{'h2'} = $workbook->add_format(bold=>1, size=>16); |
$format->{'h3'} = $workbook->add_format(bold=>1, size=>14); |
$format->{'h3'} = $workbook->add_format(bold=>1, size=>14); |
$format->{'date'} = $workbook->add_format(num_format=> |
$format->{'date'} = $workbook->add_format(num_format=> |
'mmm d yyyy hh:mm AM/PM'); |
'mm/dd/yyyy hh:mm:ss'); |
return $format; |
return $format; |
} |
} |
|
|
Line 1680 if the user does not
|
Line 1765 if the user does not
|
|
|
sub nickname { |
sub nickname { |
my ($uname,$udom)=@_; |
my ($uname,$udom)=@_; |
my %names=&Apache::lonnet::get('environment', |
my %names; |
['nickname','firstname','middlename','lastname','generation'],$udom,$uname); |
if ($uname eq $ENV{'user.name'} && |
|
$udom eq $ENV{'user.domain'}) { |
|
%names=('nickname' => $ENV{'environment.nickname'} , |
|
'firstname' => $ENV{'environment.firstname'} , |
|
'middlename' => $ENV{'environment.middlename'}, |
|
'lastname' => $ENV{'environment.lastname'} , |
|
'generation' => $ENV{'environment.generation'}); |
|
} else { |
|
%names=&Apache::lonnet::get('environment', |
|
['nickname','firstname','middlename', |
|
'lastname','generation'],$udom,$uname); |
|
} |
my $name=$names{'nickname'}; |
my $name=$names{'nickname'}; |
if ($name) { |
if ($name) { |
$name='"'.$name.'"'; |
$name='"'.$name.'"'; |
Line 1707 Gets a users screenname and returns it a
|
Line 1803 Gets a users screenname and returns it a
|
|
|
sub screenname { |
sub screenname { |
my ($uname,$udom)=@_; |
my ($uname,$udom)=@_; |
my %names= |
if ($uname eq $ENV{'user.name'} && |
&Apache::lonnet::get('environment',['screenname'],$udom,$uname); |
$udom eq $ENV{'user.domain'}) {return $ENV{'environment.screenname'};} |
|
my %names=&Apache::lonnet::get('environment',['screenname'],$udom,$uname); |
return $names{'screenname'}; |
return $names{'screenname'}; |
} |
} |
|
|
|
|
# ------------------------------------------------------------- Message Wrapper |
# ------------------------------------------------------------- Message Wrapper |
|
|
sub messagewrapper { |
sub messagewrapper { |
my ($link,$un,$do)=@_; |
my ($link,$username,$domain)=@_; |
return |
return |
"<a href='/adm/email?compose=individual&recname=$un&recdom=$do'>$link</a>"; |
'<a href="/adm/email?compose=individual&'. |
|
'recname='.$username.'&recdom='.$domain.'" '. |
|
'title="'.&mt('Send message').'">'.$link.'</a>'; |
} |
} |
# --------------------------------------------------------------- Notes Wrapper |
# --------------------------------------------------------------- Notes Wrapper |
|
|
Line 1730 sub noteswrapper {
|
Line 1830 sub noteswrapper {
|
|
|
sub aboutmewrapper { |
sub aboutmewrapper { |
my ($link,$username,$domain,$target)=@_; |
my ($link,$username,$domain,$target)=@_; |
return "<a href='/adm/$domain/$username/aboutme'". |
return '<a href="/adm/'.$domain.'/'.$username.'/aboutme"'. |
($target?" target='$target'":'').">$link</a>"; |
($target?' target="$target"':'').' title="'.&mt('View this users personal page').'">'.$link.'</a>'; |
} |
} |
|
|
# ------------------------------------------------------------ Syllabus Wrapper |
# ------------------------------------------------------------ Syllabus Wrapper |
Line 1742 sub syllabuswrapper {
|
Line 1842 sub syllabuswrapper {
|
if ($fontcolor) { |
if ($fontcolor) { |
$linktext='<font color="'.$fontcolor.'">'.$linktext.'</font>'; |
$linktext='<font color="'.$fontcolor.'">'.$linktext.'</font>'; |
} |
} |
return "<a href='/public/$domain/$coursedir/syllabus'>$linktext</a>"; |
return qq{<a href="/public/$domain/$coursedir/syllabus">$linktext</a>}; |
} |
} |
|
|
|
sub track_student_link { |
|
my ($linktext,$sname,$sdom,$target) = @_; |
|
my $link ="/adm/trackstudent"; |
|
my $title = 'View recent activity'; |
|
if (defined($sname) && $sname !~ /^\s*$/ && |
|
defined($sdom) && $sdom !~ /^\s*$/) { |
|
$link .= "?selected_student=$sname:$sdom"; |
|
$title .= ' of this student'; |
|
} |
|
if (defined($target) && $target !~ /^\s*$/) { |
|
$target = qq{target="$target"}; |
|
} else { |
|
$target = ''; |
|
} |
|
return qq{<a href="$link" title="$title" $target>$linktext</a>}; |
|
} |
|
|
|
|
|
|
=pod |
=pod |
|
|
=back |
=back |
Line 1814 sub copyrightdescription {
|
Line 1933 sub copyrightdescription {
|
|
|
=pod |
=pod |
|
|
|
=item * source_copyrightids() |
|
|
|
returns list of all source copyrights |
|
|
|
=cut |
|
|
|
sub source_copyrightids { |
|
return sort(keys(%scprtag)); |
|
} |
|
|
|
=pod |
|
|
|
=item * source_copyrightdescription() |
|
|
|
returns description of a specified source copyright id |
|
|
|
=cut |
|
|
|
sub source_copyrightdescription { |
|
return &mt($scprtag{shift(@_)}); |
|
} |
|
|
|
=pod |
|
|
=item * filecategories() |
=item * filecategories() |
|
|
returns list of all file categories |
returns list of all file categories |
Line 2201 sub maketime {
|
Line 2344 sub maketime {
|
my %th=@_; |
my %th=@_; |
return POSIX::mktime( |
return POSIX::mktime( |
($th{'seconds'},$th{'minutes'},$th{'hours'}, |
($th{'seconds'},$th{'minutes'},$th{'hours'}, |
$th{'day'},$th{'month'}-1,$th{'year'}-1900,0,0,$th{'dlsav'})); |
$th{'day'},$th{'month'}-1,$th{'year'}-1900,0,0,-1)); |
} |
} |
|
|
######################################### |
######################################### |
Line 2412 END
|
Line 2555 END
|
'<h1>LON-CAPA: '.$title.'</h1>'; |
'<h1>LON-CAPA: '.$title.'</h1>'; |
} elsif ($ENV{'environment.remote'} eq 'off') { |
} elsif ($ENV{'environment.remote'} eq 'off') { |
# No Remote |
# No Remote |
|
my $roleinfo=(<<ENDROLE); |
|
<td bgcolor="$tabbg" align="right"> |
|
<p> |
|
<font size="2" face="Arial, Helvetica, sans-serif"> |
|
$ENV{'environment.firstname'} |
|
$ENV{'environment.middlename'} |
|
$ENV{'environment.lastname'} |
|
$ENV{'environment.generation'} |
|
</font> |
|
<br /> |
|
<font size="2" face="Arial, Helvetica, sans-serif">$role</font> |
|
<br /> |
|
<font size="2" face="Arial, Helvetica, sans-serif">$realm</font> |
|
</p> |
|
</td> |
|
ENDROLE |
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', |
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', |
$forcereg). |
$forcereg). |
'<table bgcolor="'.$pgbg.'" width="100%" border="0" cellspacing="3" cellpadding="3"><tr><td bgcolor="'.$tabbg.'"><font face="Arial, Helvetica, sans-serif" size="+3" color="'.$font.'"><b>'.$title. |
'<table bgcolor="'.$pgbg.'" width="100%" border="0" cellspacing="3" cellpadding="3"><tr><td rowspan="3" bgcolor="'.$tabbg.'"><font face="Arial, Helvetica, sans-serif" size="+3" color="'.$font.'"><b>'.$title. |
'</b></font></td></tr></table>'; |
'</b></font></td>'.$roleinfo.'</tr></table>'; |
} |
} |
|
|
# |
# |
Line 2445 $upperleft</td>
|
Line 2604 $upperleft</td>
|
</td></tr> |
</td></tr> |
<tr> |
<tr> |
<td bgcolor="$tabbg" align="right"><font size="2" face="Arial, Helvetica, sans-serif">$realm</font> </td></tr> |
<td bgcolor="$tabbg" align="right"><font size="2" face="Arial, Helvetica, sans-serif">$realm</font> </td></tr> |
</table><br> |
</table><br /> |
ENDBODY |
ENDBODY |
} |
} |
|
|
Line 3540 sub icon {
|
Line 3699 sub icon {
|
return $iconname; |
return $iconname; |
} |
} |
|
|
|
sub connection_aborted { |
|
my ($r)=@_; |
|
$r->print(" ");$r->rflush(); |
|
my $c = $r->connection; |
|
return $c->aborted(); |
|
} |
|
|
=pod |
=pod |
|
|
=back |
=back |