--- loncom/interface/Attic/lonremote.pm 2003/04/02 22:02:19 1.3 +++ loncom/interface/Attic/lonremote.pm 2009/10/01 22:41:55 1.33 @@ -1,7 +1,7 @@ # The LearningOnline Network # User Authentication Module # -# $Id: lonremote.pm,v 1.3 2003/04/02 22:02:19 www Exp $ +# $Id: lonremote.pm,v 1.33 2009/10/01 22:41:55 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,74 +25,106 @@ # # http://www.lon-capa.org/ # -# 5/21/99,5/22,5/25,5/26,5/27,5/29,6/2,6/11,6/14,6/15 -# 16/11,12/16, -# 1/14,2/24,2/28,2/29,3/7,5/29,5/30,5/31,6/1,6/5,6/29, -# 7/1,7/10,10/2,10/5,10/9,10/26,10/30,11/10, -# 05/28,05/29 Gerd Kortemeyer -# 07/28,08/03 Gerd Kortemeyer -# 8/20 Gerd Kortemeyer +### package Apache::lonremote; use strict; use Apache::Constants qw(:common); use Apache::loncommon(); -use Apache::lonnet(); +use Apache::lonnet; use Apache::lonmenu(); +use Apache::lonlocal; sub launchremote { my ($r,$lowerurl)=@_; &Apache::lonnet::put('environment',{'remote' => 'on'}); - &Apache::lonnet::appenv('environment.remote' => 'on'); + &Apache::lonnet::appenv({'environment.remote' => 'on'}); # -------------------------------------------------------- Menu script and info -# my $windowinfo=&Apache::lonmenu::open($clientos); -# my $startupremote=&Apache::lonmenu::startupremote($lowerurl); -# my $setflags=&Apache::lonmenu::setflags(); -# my $maincall=&Apache::lonmenu::maincall(); - my $bodytag=&Apache::loncommon::bodytag('Launch Remote Control'); + my $brcrum = [{href=>"/adm/preferences",text=>"Set User Preferences"}, + {href=>"/adm/remote?url=/adm/preferences&action=launch",text=>"Launch Remote Control"}]; + my $windowinfo=&Apache::lonmenu::open($env{'browser.os'}); + my $startupremote=&Apache::lonmenu::startupremote($lowerurl); + my $start_page = &Apache::loncommon::start_page('Launch Remote Control', + $startupremote, + {'bread_crumbs' => $brcrum,}); + my $end_page = &Apache::loncommon::end_page(); + my $remoteinfo=&Apache::lonmenu::load_remote_msg($lowerurl); + my $setflags=&Apache::lonmenu::setflags(); + my $maincall=&Apache::lonmenu::maincall(); + my $message='<p class="LC_info">' + .&mt('Launching of the Remote Control menu will fail if pop-up window filters are active.' + .' To use the Remote Control, disable the filter for this site.') + .'</p>'; $r->print(<<ENDLAUNCH); -<html> -<head> -<title>The LearningOnline Network with CAPA</title> -</head> -$bodytag -</body> -</html> +$start_page +$setflags +$windowinfo +$message +$remoteinfo +$maincall +$end_page ENDLAUNCH } sub collapseremote { my ($r,$lowerurl)=@_; # -------------------------------------------------------- Menu script and info - my $bodytag=&Apache::loncommon::bodytag('Collapse Remote Control'); + my $brcrum = [{href=>"/adm/preferences",text=>"Set User Preferences"}, + {href=>"/adm/remote?url=/adm/preferences&action=collapse",text=>"Collapse Remote Control"}]; + my $start_page = + &Apache::loncommon::start_page('Collapse Remote Control', + undef, + {'bread_crumbs' => $brcrum, + 'no_inline_link' => 1,}); + my $end_page = &Apache::loncommon::end_page(); + my $windowinfo=&Apache::lonmenu::close(); +# my $switch='<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='.$lowerurl.'" />'; + my $message='<div class="LC_warning"><b>'.&mt('The external menu (Remote Control) has been disabled, and you will be working with the smaller inline menu.').'</b></div>'."\n". + '<p>'.&mt('You may have either closed the Remote Control window, or it was blocked by a pop-up window filter in your browser.').'<br />'."\n". + &mt('To use the Remote Control, disable the filter for this site, and re-launch the Remote Control.').'</p>'."\n". + '<table><tr><td><fieldset><legend>'.&mt('Actions').'</legend><table><tr>'."\n". + '<td class="LC_menubuttons_text" align="left">'. + '<a class="LC_menubuttons_link" href="/adm/remote?action=launch"><img alt="Launch Remote Control" src="/res/adm/pages/remotecontrol.png" class="LC_noBorder" />'. + &mt('Re-launch Remote Control').'</a></td><td>'.(' 'x3).'</td>'. + '<td class="LC_menubuttons_link" align="right">'. + '<a class="LC_menubuttons_link" href="'.$lowerurl.'"><img alt="Launch Remote Control" src="/res/adm/pages/forw.png" class="LC_noBorder" />'. + &mt('Continue without Remote Control').'</a></td></tr></table>'. + '</fieldset></td></tr></table>'."\n". + '<p>'.&mt('Assuming no pop-up blocking, the Remote Control can be launched at any time from the [_1]Set User Preferences[_2] page, linked to in the [_3]Main Menu[_2].','<a href="/adm/preferences">','</a>','<a href="/adm/menu">').'</span></p>'; $r->print(<<ENDCOLLAPSE); -<html> -<head> -<title>The LearningOnline Network with CAPA</title> -</head> -$bodytag -</body> -</html> +$start_page +$windowinfo +$message +$end_page ENDCOLLAPSE - &Apache::lonnet::put('environment',{'remote' => 'off'}); - &Apache::lonnet::appenv('environment.remote' => 'off'); + &Apache::lonnet::put('environment',{'remote' => 'off'}); + &Apache::lonnet::appenv({'environment.remote' => 'off'}); } sub handler { my $r = shift; - &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['action']); - unless ($ENV{'form.action'}) { - if ($ENV{'environment.remote'} eq 'on') { - $ENV{'form.action'}='collapse'; + &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, + ['action','url']); + unless ($env{'form.action'}) { + if ($env{'environment.remote'} ne 'off') { + $env{'form.action'}='collapse'; } else { - $ENV{'form.action'}='launch'; + $env{'form.action'}='launch'; } } - if ($ENV{'form.action'} eq 'launch') { - &launchremote($r); + + my $lowerurl=$env{'form.url'}; + unless ($lowerurl) { $lowerurl='/adm/menu'; } + + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + return OK if $r->header_only; + + if ($env{'form.action'} eq 'launch') { + &launchremote($r,$lowerurl); } else { - &collapseremote($r); + &collapseremote($r,$lowerurl); } return OK; }