--- loncom/interface/loncommon.pm 2004/09/24 22:07:34 1.214
+++ loncom/interface/loncommon.pm 2004/10/29 18:40:40 1.224
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.214 2004/09/24 22:07:34 albertel Exp $
+# $Id: loncommon.pm,v 1.224 2004/10/29 18:40:40 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -254,6 +254,7 @@ sub browser_and_searcher_javascript {
if (!defined($mode)) { $mode='edit'; }
my $resurl=&lastresurl();
return <
END
}
@@ -483,7 +493,7 @@ sub linked_select_forms {
my $first = "document.$formname.$firstselectname";
# output the javascript to do the changing
my $result = '';
- $result.="
-
+
ENDTEMPLATE
if ($component_help) {
if (!$text) {
@@ -743,8 +757,9 @@ sub help_open_bug {
# Add the graphic
my $title = &mt('Report a Bug');
+ my $bugicon=&lonhttpdurl("/adm/lonMisc/smallBug.gif");
$template .= <<"ENDTEMPLATE";
-
+
ENDTEMPLATE
if ($text ne '') { $template.='' };
return $template;
@@ -787,8 +802,9 @@ sub help_open_faq {
# Add the graphic
my $title = &mt('View the FAQ');
+ my $faqicon=&lonhttpdurl("/adm/lonMisc/smallFAQ.gif");
$template .= <<"ENDTEMPLATE";
-
+
ENDTEMPLATE
if ($text ne '') { $template.='' };
return $template;
@@ -2415,10 +2431,8 @@ sub domainlogo {
my $domain = &determinedomain(shift);
# See if there is a logo
if (-e '/home/httpd/html/adm/lonDomLogos/'.$domain.'.gif') {
- my $lonhttpdPort=$Apache::lonnet::perlvar{'lonhttpdPort'};
- if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; }
- return '';
+ my $logo=&lonhttpdurl("/adm/lonDomLogos/$domain.gif");
+ return '';
} elsif(exists($Apache::lonnet::domaindescription{$domain})) {
return $Apache::lonnet::domaindescription{$domain};
} else {
@@ -2504,7 +2518,7 @@ other decorations will be returned.
=cut
sub bodytag {
- my ($title,$function,$addentries,$bodyonly,$domain,$forcereg)=@_;
+ my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle)=@_;
$title=&mt($title);
$function = &get_users_function() if (!$function);
my $img=&designparm($function.'.img',$domain);
@@ -2550,6 +2564,7 @@ END
return $bodytag;
} elsif ($ENV{'browser.interface'} eq 'textual') {
# Accessibility
+
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',
$forcereg).
'LON-CAPA: '.$title.'
';
@@ -2571,15 +2586,23 @@ END
ENDROLE
+ my $titleinfo = ''.$title.'';
+ if ($customtitle) {
+ $titleinfo = $customtitle;
+ }
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web',
$forcereg).
- ''.$title.
-' | '.$roleinfo.'
';
+ ''.$titleinfo.' | '.$roleinfo.'
';
}
#
# Top frame rendering, Remote is up
#
+ my $titleinfo = ' '.$title.'';
+ if ($customtitle) {
+ $titleinfo = $customtitle;
+ }
return(<
@@ -2589,7 +2612,7 @@ $upperleft
- $title
+$titleinfo
|
$ENV{'environment.firstname'}
@@ -2745,12 +2768,12 @@ returns cache-controlling header code
=cut
sub cacheheader {
- unless ($ENV{'request.method'} eq 'GET') { return ''; }
- my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime);
- my $output .='
+ unless ($ENV{'request.method'} eq 'GET') { return ''; }
+ my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime);
+ my $output .='
';
- return $output;
+ return $output;
}
=pod
@@ -2762,12 +2785,13 @@ specifies header code to not have cache
=cut
sub no_cache {
- my ($r) = @_;
- unless ($ENV{'request.method'} eq 'GET') { return ''; }
- #my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime);
- $r->no_cache(1);
- $r->header_out("Pragma" => "no-cache");
- #$r->header_out("Expires" => $date);
+ my ($r) = @_;
+ if ($ENV{'REQUEST_METHOD'} ne 'GET' &&
+ $ENV{'request.method'} ne 'GET') { return ''; }
+ my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime(time));
+ $r->no_cache(1);
+ $r->header_out("Expires" => $date);
+ $r->header_out("Pragma" => "no-cache");
}
sub content_type {
@@ -3278,7 +3302,11 @@ sub DrawBarGraph {
}
#
my ($height,$width,$xskip,$bar_width) = (200,120,1,15);
- if ($NumBars < 10) {
+ if ($NumBars < 5) {
+ $width = 120+$NumBars*25;
+ $xskip = 1;
+ $bar_width = 25;
+ } elsif ($NumBars < 10) {
$width = 120+$NumBars*15;
$xskip = 1;
$bar_width = 15;
@@ -3561,8 +3589,8 @@ Inputs:
sub chartlink {
my ($linktext, $sname, $sdomain) = @_;
my $link = ''.$linktext.'';
}
@@ -3699,6 +3727,13 @@ sub icon {
return $iconname;
}
+sub lonhttpdurl {
+ my ($url)=@_;
+ my $lonhttpd_port=$Apache::lonnet::perlvar{'lonhttpdPort'};
+ if (!defined($lonhttpd_port)) { $lonhttpd_port='8080'; }
+ return 'http://'.$ENV{'SERVER_NAME'}.':'.$lonhttpd_port.$url;
+}
+
sub connection_aborted {
my ($r)=@_;
$r->print(" ");$r->rflush();
@@ -3706,6 +3741,31 @@ sub connection_aborted {
return $c->aborted();
}
+# Escapes strings that may have embedded 's that will be put into
+# strings as 'strings'.
+sub escape_single {
+ my ($input) = @_;
+ $input =~ s/\\/\\\\/g; # Escape the \'s..(must be first)>
+ $input =~ s/\'/\\\'/g; # Esacpe the 's....
+ return $input;
+}
+
+# Same as escape_single, but escape's "'s This
+# can be used for "strings"
+sub escape_double {
+ my ($input) = @_;
+ $input =~ s/\\/\\\\/g; # Escape the /'s..(must be first)>
+ $input =~ s/\"/\\\"/g; # Esacpe the "s....
+ return $input;
+}
+
+# Escapes the last element of a full URL.
+sub escape_url {
+ my ($url) = @_;
+ my @urlslices = split(/\//, $url);
+ my $lastitem = &Apache::lonnet::escape(pop(@urlslices));
+ return join('/',@urlslices).'/'.$lastitem;
+}
=pod
=back
|