version 1.32, 2003/01/31 21:46:36
|
version 1.34, 2003/02/13 18:11:26
|
Line 36 package Apache::lonmenu;
|
Line 36 package Apache::lonmenu;
|
|
|
use strict; |
use strict; |
use Apache::lonnet; |
use Apache::lonnet; |
|
use Apache::Constants qw(:common); |
|
use Apache::loncommon; |
use Apache::File; |
use Apache::File; |
use vars qw(@desklines $readdesk); |
use vars qw(@desklines $readdesk); |
|
|
Line 43 use vars qw(@desklines $readdesk);
|
Line 45 use vars qw(@desklines $readdesk);
|
|
|
sub startupremote { |
sub startupremote { |
my ($lowerurl)=@_; |
my ($lowerurl)=@_; |
|
if ($ENV{'browser.interface'} eq 'textual') { |
|
return ('<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='.$lowerurl.'" />'); |
|
} |
my $configmenu=&rawconfig(); |
my $configmenu=&rawconfig(); |
return(<<ENDREMOTESTARTUP); |
return(<<ENDREMOTESTARTUP); |
<script> |
<script> |
Line 82 ENDSETFLAGS
|
Line 87 ENDSETFLAGS
|
} |
} |
|
|
sub maincall() { |
sub maincall() { |
|
if ($ENV{'browser.interface'} eq 'textual') { return ''; } |
return(<<ENDMAINCALL); |
return(<<ENDMAINCALL); |
<script> |
<script> |
main(); |
main(); |
Line 92 ENDMAINCALL
|
Line 98 ENDMAINCALL
|
|
|
sub reopenmenu { |
sub reopenmenu { |
my $nothing=''; |
my $nothing=''; |
|
if ($ENV{'browser.interface'} eq 'textual') { return ''; } |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; } |
if ($ENV{'browser.type'} eq 'explorer') { $nothing='javascript:void(0);'; } |
return('window.open("'.$nothing.'","'.$menuname.'","",false);'); |
return('window.open("'.$nothing.'","'.$menuname.'","",false);'); |
Line 101 sub reopenmenu {
|
Line 108 sub reopenmenu {
|
|
|
sub open { |
sub open { |
my $returnval=''; |
my $returnval=''; |
|
if ($ENV{'browser.interface'} eq 'textual') { return ''; } |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
unless (shift eq 'unix') { |
unless (shift eq 'unix') { |
# resizing does not work on linux because of virtual desktop sizes |
# resizing does not work on linux because of virtual desktop sizes |
Line 122 ENDOPEN
|
Line 130 ENDOPEN
|
|
|
sub switchmenu { |
sub switchmenu { |
my ($row,$col,$imgsrc,$texttop,$textbot,$action,$description)=@_; |
my ($row,$col,$imgsrc,$texttop,$textbot,$action,$description)=@_; |
|
if ($ENV{'browser.interface'} eq 'textual') { return ''; } |
my $openwin=&openmenu(); |
my $openwin=&openmenu(); |
return(<<ENDSMENU); |
return(<<ENDSMENU); |
<script> |
<script> |
Line 135 ENDSMENU
|
Line 144 ENDSMENU
|
|
|
sub clear { |
sub clear { |
my ($row,$col)=@_; |
my ($row,$col)=@_; |
return qq(swmenu.clearbut($row,$col);); |
unless ($ENV{'browser.interface'} eq 'textual') { |
|
return qq(swmenu.clearbut($row,$col);); |
|
} else { return ''; } |
} |
} |
|
|
# Switch acts on the javascript that is executed when a button is clicked. |
# Switch acts on the javascript that is executed when a button is clicked. |
Line 144 sub switch {
|
Line 155 sub switch {
|
my ($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc)=@_; |
my ($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc)=@_; |
$act=~s/\$uname/$uname/g; |
$act=~s/\$uname/$uname/g; |
$act=~s/\$udom/$udom/g; |
$act=~s/\$udom/$udom/g; |
return "\n". |
unless ($ENV{'browser.interface'} eq 'textual') { |
|
return "\n". |
qq(swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc");); |
qq(swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc");); |
|
} else { |
|
my $text=$top.' '.$bot; |
|
$text=~s/\- //; |
|
return '<br /><a href="'.$act.'">'.$text.'</a> '.$desc; |
|
} |
} |
} |
|
|
sub secondlevel { |
sub secondlevel { |
Line 164 sub secondlevel {
|
Line 181 sub secondlevel {
|
|
|
sub openmenu { |
sub openmenu { |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
|
if ($ENV{'browser.interface'} eq 'textual') { return ''; } |
if ($ENV{'browser.type'} eq 'explorer') { |
if ($ENV{'browser.type'} eq 'explorer') { |
return "window.open('javascript:void(0);','".$menuname."');"; |
return "window.open('javascript:void(0);','".$menuname."');"; |
} else { |
} else { |
Line 172 sub openmenu {
|
Line 190 sub openmenu {
|
} |
} |
|
|
sub rawconfig { |
sub rawconfig { |
my $output="var swmenu=".&openmenu(); |
my $textualoverride=shift; |
|
my $output=''; |
|
unless ($ENV{'browser.interface'} eq 'textual') { |
|
$output.="var swmenu=".&openmenu(); |
|
} else { |
|
unless ($textualoverride) { return ''; } |
|
} |
my $uname=$ENV{'user.name'}; |
my $uname=$ENV{'user.name'}; |
my $udom=$ENV{'user.domain'}; |
my $udom=$ENV{'user.domain'}; |
my $adv=$ENV{'user.adv'}; |
my $adv=$ENV{'user.adv'}; |
Line 239 sub rawconfig {
|
Line 263 sub rawconfig {
|
} |
} |
} |
} |
} |
} |
$output.="swmenu.syncclock(1000*".time.");"; |
unless ($ENV{'browser.interface'} eq 'textual') { |
|
$output.="swmenu.syncclock(1000*".time.");"; |
|
} |
return $output; |
return $output; |
} |
} |
|
|
Line 263 sub footer {
|
Line 289 sub footer {
|
|
|
} |
} |
|
|
|
# ================================================ Handler when called directly |
|
|
|
|
|
sub handler { |
|
my $r = shift; |
|
$r->content_type('text/html'); |
|
$r->send_http_header; |
|
return OK if $r->header_only; |
|
|
|
my $bodytag=&Apache::loncommon::bodytag('Main Menu'); |
|
# ------------------------------------------------------------ Print the screen |
|
$r->print('<html><head><title>LON-CAPA Main Menu</title></head>'.$bodytag); |
|
$r->print(&rawconfig(1)); |
|
$r->print('</body></html>'); |
|
return OK; |
|
} |
|
|
# ================================================================ Main Program |
# ================================================================ Main Program |
|
|
BEGIN { |
BEGIN { |