version 1.211, 2004/09/10 08:42:21
|
version 1.225, 2004/11/02 19:01:12
|
Line 254 sub browser_and_searcher_javascript {
|
Line 254 sub browser_and_searcher_javascript {
|
if (!defined($mode)) { $mode='edit'; } |
if (!defined($mode)) { $mode='edit'; } |
my $resurl=&lastresurl(); |
my $resurl=&lastresurl(); |
return <<END; |
return <<END; |
|
// <!-- BEGIN LON-CAPA Internal |
var editbrowser = null; |
var editbrowser = null; |
function openbrowser(formname,elementname,only,omit,titleelement) { |
function openbrowser(formname,elementname,only,omit,titleelement) { |
var url = '$resurl/?'; |
var url = '$resurl/?'; |
Line 265 sub browser_and_searcher_javascript {
|
Line 266 sub browser_and_searcher_javascript {
|
url += 'form=' + formname + '&'; |
url += 'form=' + formname + '&'; |
if (only != null) { |
if (only != null) { |
url += 'only=' + only + '&'; |
url += 'only=' + only + '&'; |
} |
} else { |
|
url += 'only=&'; |
|
} |
if (omit != null) { |
if (omit != null) { |
url += 'omit=' + omit + '&'; |
url += 'omit=' + omit + '&'; |
} |
} else { |
|
url += 'omit=&'; |
|
} |
if (titleelement != null) { |
if (titleelement != null) { |
url += 'titleelement=' + titleelement + '&'; |
url += 'titleelement=' + titleelement + '&'; |
} |
} else { |
|
url += 'titleelement=&'; |
|
} |
url += 'element=' + elementname + ''; |
url += 'element=' + elementname + ''; |
var title = 'Browser'; |
var title = 'Browser'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
var options = 'scrollbars=1,resizable=1,menubar=1,location=1'; |
options += ',width=700,height=600'; |
options += ',width=700,height=600'; |
editbrowser = open(url,title,options,'1'); |
editbrowser = open(url,title,options,'1'); |
editbrowser.focus(); |
editbrowser.focus(); |
Line 290 sub browser_and_searcher_javascript {
|
Line 297 sub browser_and_searcher_javascript {
|
url += 'form=' + formname + '&'; |
url += 'form=' + formname + '&'; |
if (titleelement != null) { |
if (titleelement != null) { |
url += 'titleelement=' + titleelement + '&'; |
url += 'titleelement=' + titleelement + '&'; |
} |
} else { |
|
url += 'titleelement=&'; |
|
} |
url += 'element=' + elementname + ''; |
url += 'element=' + elementname + ''; |
var title = 'Search'; |
var title = 'Search'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
var options = 'scrollbars=1,resizable=1,menubar=0'; |
Line 298 sub browser_and_searcher_javascript {
|
Line 307 sub browser_and_searcher_javascript {
|
editsearcher = open(url,title,options,'1'); |
editsearcher = open(url,title,options,'1'); |
editsearcher.focus(); |
editsearcher.focus(); |
} |
} |
|
// END LON-CAPA Internal --> |
END |
END |
} |
} |
|
|
Line 483 sub linked_select_forms {
|
Line 493 sub linked_select_forms {
|
my $first = "document.$formname.$firstselectname"; |
my $first = "document.$formname.$firstselectname"; |
# output the javascript to do the changing |
# output the javascript to do the changing |
my $result = ''; |
my $result = ''; |
$result.="<script>\n"; |
$result.="<script type=\"text/javascript\">\n"; |
$result.="var select2data = new Object();\n"; |
$result.="var select2data = new Object();\n"; |
$" = '","'; |
$" = '","'; |
my $debug = ''; |
my $debug = ''; |
Line 611 sub help_open_topic {
|
Line 621 sub help_open_topic {
|
|
|
# Add the graphic |
# Add the graphic |
my $title = &mt('Online Help'); |
my $title = &mt('Online Help'); |
|
my $helpicon=&lonhttpdurl("/adm/help/gif/smallHelp.gif"); |
$template .= <<"ENDTEMPLATE"; |
$template .= <<"ENDTEMPLATE"; |
<a href="$link" title="$title"><image src="/adm/help/gif/smallHelp.gif" border="0" alt="(Help: $topic)" /></a> |
<a href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a> |
ENDTEMPLATE |
ENDTEMPLATE |
if ($text ne '') { $template.='</td></tr></table>' }; |
if ($text ne '') { $template.='</td></tr></table>' }; |
return $template; |
return $template; |
Line 670 sub help_open_menu {
|
Line 681 sub help_open_menu {
|
"<table bgcolor='#773311' cellspacing='1' cellpadding='1' border='0'><tr>". |
"<table bgcolor='#773311' cellspacing='1' cellpadding='1' border='0'><tr>". |
"<td bgcolor='#886622'><a href=\"$link\"><font color='#FFFFFF' size='2'>$text</font></a>"; |
"<td bgcolor='#886622'><a href=\"$link\"><font color='#FFFFFF' size='2'>$text</font></a>"; |
} |
} |
|
my $helpicon=&lonhttpdurl("/adm/lonIcons/helpgateway.gif"); |
$template .= <<"ENDTEMPLATE"; |
$template .= <<"ENDTEMPLATE"; |
<script> |
<script type="text/javascript"> |
|
//<!-- BEGIN LON-CAPA Internal |
function helpMenu(caller) { |
function helpMenu(caller) { |
if (caller == 'open') { |
if (caller == 'open') { |
newWindow = window.open("","helpmenu","HEIGHT=$height,WIDTH=$width,resize=yes,scrollbars=yes" ) |
newWindow = window.open("","helpmenu","HEIGHT=$height,WIDTH=$width,resize=yes,scrollbars=yes" ) |
Line 687 function helpMenu(caller) {
|
Line 700 function helpMenu(caller) {
|
caller.focus() |
caller.focus() |
} |
} |
} |
} |
|
// END LON-CAPA Internal --> |
</script> |
</script> |
<a href="$link" title="$title"><image src="/adm/lonIcons/helpgateway.gif" border="0" alt="(Help Menu)" /></a> |
<a href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help Menu)" /></a> |
ENDTEMPLATE |
ENDTEMPLATE |
if ($component_help) { |
if ($component_help) { |
if (!$text) { |
if (!$text) { |
Line 743 sub help_open_bug {
|
Line 757 sub help_open_bug {
|
|
|
# Add the graphic |
# Add the graphic |
my $title = &mt('Report a Bug'); |
my $title = &mt('Report a Bug'); |
|
my $bugicon=&lonhttpdurl("/adm/lonMisc/smallBug.gif"); |
$template .= <<"ENDTEMPLATE"; |
$template .= <<"ENDTEMPLATE"; |
<a href="$link" title="$title"><image src="/adm/lonMisc/smallBug.gif" border="0" alt="(Bug: $topic)" /></a> |
<a href="$link" title="$title"><img src="$bugicon" border="0" alt="(Bug: $topic)" /></a> |
ENDTEMPLATE |
ENDTEMPLATE |
if ($text ne '') { $template.='</td></tr></table>' }; |
if ($text ne '') { $template.='</td></tr></table>' }; |
return $template; |
return $template; |
Line 787 sub help_open_faq {
|
Line 802 sub help_open_faq {
|
|
|
# Add the graphic |
# Add the graphic |
my $title = &mt('View the FAQ'); |
my $title = &mt('View the FAQ'); |
|
my $faqicon=&lonhttpdurl("/adm/lonMisc/smallFAQ.gif"); |
$template .= <<"ENDTEMPLATE"; |
$template .= <<"ENDTEMPLATE"; |
<a href="$link" title="$title"><image src="/adm/lonMisc/smallFAQ.gif" border="0" alt="(FAQ: $topic)" /></a> |
<a href="$link" title="$title"><img src="$faqicon" border="0" alt="(FAQ: $topic)" /></a> |
ENDTEMPLATE |
ENDTEMPLATE |
if ($text ne '') { $template.='</td></tr></table>' }; |
if ($text ne '') { $template.='</td></tr></table>' }; |
return $template; |
return $template; |
Line 1765 if the user does not
|
Line 1781 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 1792 Gets a users screenname and returns it a
|
Line 1819 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 { |
Line 2402 sub domainlogo {
|
Line 2431 sub domainlogo {
|
my $domain = &determinedomain(shift); |
my $domain = &determinedomain(shift); |
# See if there is a logo |
# See if there is a logo |
if (-e '/home/httpd/html/adm/lonDomLogos/'.$domain.'.gif') { |
if (-e '/home/httpd/html/adm/lonDomLogos/'.$domain.'.gif') { |
my $lonhttpdPort=$Apache::lonnet::perlvar{'lonhttpdPort'}; |
my $logo=&lonhttpdurl("/adm/lonDomLogos/$domain.gif"); |
if (!defined($lonhttpdPort)) { $lonhttpdPort='8080'; } |
return '<img src="'.$logo.'" alt="'.$domain.'" />'; |
return '<img src="http://'.$ENV{'HTTP_HOST'}.':'.$lonhttpdPort. |
|
'/adm/lonDomLogos/'.$domain.'.gif" alt="'.$domain.'" />'; |
|
} elsif(exists($Apache::lonnet::domaindescription{$domain})) { |
} elsif(exists($Apache::lonnet::domaindescription{$domain})) { |
return $Apache::lonnet::domaindescription{$domain}; |
return $Apache::lonnet::domaindescription{$domain}; |
} else { |
} else { |
Line 2491 other decorations will be returned.
|
Line 2518 other decorations will be returned.
|
=cut |
=cut |
|
|
sub bodytag { |
sub bodytag { |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg)=@_; |
my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle)=@_; |
$title=&mt($title); |
$title=&mt($title); |
$function = &get_users_function() if (!$function); |
$function = &get_users_function() if (!$function); |
my $img=&designparm($function.'.img',$domain); |
my $img=&designparm($function.'.img',$domain); |
Line 2537 END
|
Line 2564 END
|
return $bodytag; |
return $bodytag; |
} elsif ($ENV{'browser.interface'} eq 'textual') { |
} elsif ($ENV{'browser.interface'} eq 'textual') { |
# Accessibility |
# Accessibility |
|
|
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', |
return $bodytag.&Apache::lonmenu::menubuttons($forcereg,'web', |
$forcereg). |
$forcereg). |
'<h1>LON-CAPA: '.$title.'</h1>'; |
'<h1>LON-CAPA: '.$title.'</h1>'; |
Line 2558 END
|
Line 2586 END
|
</p> |
</p> |
</td> |
</td> |
ENDROLE |
ENDROLE |
|
my $titleinfo = '<font face="Arial, Helvetica, sans-serif" size="+3" color="'. |
|
$font.'"><b>'.$title.'</b></font>'; |
|
if ($customtitle) { |
|
$titleinfo = $customtitle; |
|
} |
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 rowspan="3" 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.'">'.$titleinfo.'</td>'.$roleinfo.'</tr></table>'; |
'</b></font></td>'.$roleinfo.'</tr></table>'; |
|
} |
} |
|
|
# |
# |
# Top frame rendering, Remote is up |
# Top frame rendering, Remote is up |
# |
# |
|
my $titleinfo = ' <font size="5" face="Arial, Helvetica, sans-serif"><b>'.$title.'</b></font>'; |
|
if ($customtitle) { |
|
$titleinfo = $customtitle; |
|
} |
return(<<ENDBODY); |
return(<<ENDBODY); |
$bodytag |
$bodytag |
<table width="100%" cellspacing="0" border="0" cellpadding="0"> |
<table width="100%" cellspacing="0" border="0" cellpadding="0"> |
Line 2576 $upperleft</td>
|
Line 2612 $upperleft</td>
|
</tr> |
</tr> |
<tr> |
<tr> |
<td rowspan="3" bgcolor="$tabbg"> |
<td rowspan="3" bgcolor="$tabbg"> |
<font size="5" face="Arial, Helvetica, sans-serif"><b>$title</b></font> |
$titleinfo |
<td bgcolor="$tabbg" align="right"> |
<td bgcolor="$tabbg" align="right"> |
<font size="2" face="Arial, Helvetica, sans-serif"> |
<font size="2" face="Arial, Helvetica, sans-serif"> |
$ENV{'environment.firstname'} |
$ENV{'environment.firstname'} |
Line 2732 returns cache-controlling header code
|
Line 2768 returns cache-controlling header code
|
=cut |
=cut |
|
|
sub cacheheader { |
sub cacheheader { |
unless ($ENV{'request.method'} eq 'GET') { return ''; } |
unless ($ENV{'request.method'} eq 'GET') { return ''; } |
my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime); |
my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime); |
my $output .='<meta HTTP-EQUIV="Expires" CONTENT="'.$date.'" /> |
my $output .='<meta HTTP-EQUIV="Expires" CONTENT="'.$date.'" /> |
<meta HTTP-EQUIV="Cache-control" CONTENT="no-cache" /> |
<meta HTTP-EQUIV="Cache-control" CONTENT="no-cache" /> |
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />'; |
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />'; |
return $output; |
return $output; |
} |
} |
|
|
=pod |
=pod |
Line 2749 specifies header code to not have cache
|
Line 2785 specifies header code to not have cache
|
=cut |
=cut |
|
|
sub no_cache { |
sub no_cache { |
my ($r) = @_; |
my ($r) = @_; |
unless ($ENV{'request.method'} eq 'GET') { return ''; } |
if ($ENV{'REQUEST_METHOD'} ne 'GET' && |
#my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime); |
$ENV{'request.method'} ne 'GET') { return ''; } |
$r->no_cache(1); |
my $date=strftime("%a, %d %b %Y %H:%M:%S GMT",gmtime(time)); |
$r->header_out("Pragma" => "no-cache"); |
$r->no_cache(1); |
#$r->header_out("Expires" => $date); |
$r->header_out("Expires" => $date); |
|
$r->header_out("Pragma" => "no-cache"); |
} |
} |
|
|
sub content_type { |
sub content_type { |
Line 3255 sub DrawBarGraph {
|
Line 3292 sub DrawBarGraph {
|
if (! @Values || ref($Values[0]) ne 'ARRAY') { |
if (! @Values || ref($Values[0]) ne 'ARRAY') { |
return ''; |
return ''; |
} |
} |
|
# |
|
my @Labels; |
|
if (defined($labels)) { |
|
@Labels = @$labels; |
|
} else { |
|
for (my $i=0;$i<@{$Values[0]};$i++) { |
|
push (@Labels,$i+1); |
|
} |
|
} |
|
# |
my $NumBars = scalar(@{$Values[0]}); |
my $NumBars = scalar(@{$Values[0]}); |
|
if ($NumBars < scalar(@Labels)) { $NumBars = scalar(@Labels); } |
my %ValuesHash; |
my %ValuesHash; |
my $NumSets=1; |
my $NumSets=1; |
foreach my $array (@Values) { |
foreach my $array (@Values) { |
Line 3265 sub DrawBarGraph {
|
Line 3313 sub DrawBarGraph {
|
} |
} |
# |
# |
my ($height,$width,$xskip,$bar_width) = (200,120,1,15); |
my ($height,$width,$xskip,$bar_width) = (200,120,1,15); |
if ($NumBars < 10) { |
if ($NumBars < 3) { |
|
$width = 120+$NumBars*32; |
|
$xskip = 1; |
|
$bar_width = 30; |
|
} elsif ($NumBars < 5) { |
|
$width = 120+$NumBars*20; |
|
$xskip = 1; |
|
$bar_width = 20; |
|
} elsif ($NumBars < 10) { |
$width = 120+$NumBars*15; |
$width = 120+$NumBars*15; |
$xskip = 1; |
$xskip = 1; |
$bar_width = 15; |
$bar_width = 15; |
Line 3283 sub DrawBarGraph {
|
Line 3339 sub DrawBarGraph {
|
$bar_width = 4; |
$bar_width = 4; |
} |
} |
# |
# |
my @Labels; |
|
if (defined($labels)) { |
|
@Labels = @$labels; |
|
} else { |
|
for (my $i=0;$i<@{$Values[0]};$i++) { |
|
push (@Labels,$i+1); |
|
} |
|
} |
|
# |
|
$Max = 1 if ($Max < 1); |
$Max = 1 if ($Max < 1); |
if ( int($Max) < $Max ) { |
if ( int($Max) < $Max ) { |
$Max++; |
$Max++; |
Line 3548 Inputs:
|
Line 3595 Inputs:
|
sub chartlink { |
sub chartlink { |
my ($linktext, $sname, $sdomain) = @_; |
my ($linktext, $sname, $sdomain) = @_; |
my $link = '<a href="/adm/statistics?reportSelected=student_assessment'. |
my $link = '<a href="/adm/statistics?reportSelected=student_assessment'. |
'&SelectedStudent='.&Apache::lonnet::escape($sname.':'.$sdomain). |
'&SelectedStudent='.&Apache::lonnet::escape($sname.':'.$sdomain). |
'&chartoutputmode='.HTML::Entities::encode('html, with all links'). |
'&chartoutputmode='.HTML::Entities::encode('html, with all links'). |
'">'.$linktext.'</a>'; |
'">'.$linktext.'</a>'; |
} |
} |
|
|
Line 3686 sub icon {
|
Line 3733 sub icon {
|
return $iconname; |
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(); |
|
my $c = $r->connection; |
|
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 |
=pod |
|
|
=back |
=back |