--- loncom/interface/lonmenu.pm 2003/02/13 18:11:26 1.34 +++ loncom/interface/lonmenu.pm 2003/02/14 15:14:37 1.37 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.34 2003/02/13 18:11:26 www Exp $ +# $Id: lonmenu.pm,v 1.37 2003/02/14 15:14:37 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -52,24 +52,43 @@ sub startupremote { return(< +function wheelswitch() { + if (window.status=='|') { + window.status='/'; + } else { + if (window.status=='/') { + window.status='-'; + } else { + if (window.status=='-') { + window.status='\\\\'; + } else { + if (window.status=='\\\\') { window.status='|'; } + } + } + } +} + // ---------------------------------------------------------- The wait function var canceltim; function wait() { if ((menuloaded==1) || (tim==1)) { + window.status='Done.'; if (tim==0) { clearTimeout(canceltim); $configmenu window.location='$lowerurl'; } else { - alert("Remote Control Timed Out."); + alert("Remote Control timed out. It is possible that it was blocked by pop-up window filters."); } } else { - setTimeout('wait();',100); + wheelswitch(); + setTimeout('wait();',200); } } function main() { - canceltim=setTimeout('tim=1;',80000); + canceltim=setTimeout('tim=1;',60000); + window.status='-'; wait(); } @@ -120,32 +139,20 @@ if (window.screen) { ENDRESIZE } $returnval.=(<'.$returnval.''; } -# ============================================================ Switch Menu Item - -sub switchmenu { - my ($row,$col,$imgsrc,$texttop,$textbot,$action,$description)=@_; - if ($ENV{'browser.interface'} eq 'textual') { return ''; } - my $openwin=&openmenu(); - return(< - var swmenu=$openwin - swmenu.switchbutton($row,$col,"$imgsrc","$texttop","$textbot","$action","$description"); - -ENDSMENU -} # ================================================================== Raw Config sub clear { my ($row,$col)=@_; unless ($ENV{'browser.interface'} eq 'textual') { - return qq(swmenu.clearbut($row,$col);); + return "\n".qq(window.status+='.';swmenu.clearbut($row,$col);); } else { return ''; } } @@ -157,11 +164,11 @@ sub switch { $act=~s/\$udom/$udom/g; unless ($ENV{'browser.interface'} eq 'textual') { return "\n". - qq(swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc");); + qq(window.status+='.';swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc");); } else { my $text=$top.' '.$bot; $text=~s/\- //; - return '
'.$text.' '.$desc; + return '
'.$text.' '.$desc; } } @@ -193,7 +200,9 @@ sub rawconfig { my $textualoverride=shift; my $output=''; unless ($ENV{'browser.interface'} eq 'textual') { - $output.="var swmenu=".&openmenu(); + $output.= + "window.status='Opening Remote Control';var swmenu=".&openmenu(). +"\nwindow.status='Configuring Remote Control ';"; } else { unless ($textualoverride) { return ''; } } @@ -264,7 +273,7 @@ sub rawconfig { } } unless ($ENV{'browser.interface'} eq 'textual') { - $output.="swmenu.syncclock(1000*".time.");"; + $output.="\nwindow.status='Synchronizing Time';swmenu.syncclock(1000*".time.");\nwindow.status='Remote Control Configured.';"; } return $output; } @@ -272,13 +281,19 @@ sub rawconfig { # ======================================================================= Close sub close { + if ($ENV{'browser.interface'} eq 'textual') { return ''; } my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; return(< +window.status='Accessing Remote Control'; menu=window.open("/adm/rat/empty.html","$menuname", "height=350,width=150,scrollbars=no,menubar=no"); +window.status='Disabling Remote Control'; +menu.active=0; menu.autologout=0; +window.status='Closing Remote Control'; menu.close(); +window.status='Done.'; ENDCLOSE } @@ -300,7 +315,20 @@ sub handler { my $bodytag=&Apache::loncommon::bodytag('Main Menu'); # ------------------------------------------------------------ Print the screen - $r->print('LON-CAPA Main Menu'.$bodytag); + $r->print(< +LON-CAPA Main Menu + + +$bodytag +ENDHEADER $r->print(&rawconfig(1)); $r->print(''); return OK;