--- loncom/interface/Attic/lonremote.pm 2003/04/02 21:23:04 1.2 +++ loncom/interface/Attic/lonremote.pm 2009/10/01 23:13:34 1.31.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network # User Authentication Module # -# $Id: lonremote.pm,v 1.2 2003/04/02 21:23:04 www Exp $ +# $Id: lonremote.pm,v 1.31.2.2 2009/10/01 23:13:34 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'}); # -------------------------------------------------------- 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='

' + .&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.') + .'

'; $r->print(< - -The LearningOnline Network with CAPA - -$bodytag - - +$start_page +$setflags +$windowinfo +$message +$remoteinfo +$maincall +$end_page ENDLAUNCH - &Apache::lonnet::put('environment',{'remote' => 'on'}); - &Apache::lonnet::appenv('environment.remote' => 'on'); } 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=''; + my $message='
'.&mt('The external menu (Remote Control) has been disabled, and you will be working with the smaller inline menu.').'
'."\n". + '

'.&mt('You may have either closed the Remote Control window, or it was blocked by a pop-up window filter in your browser.').'
'."\n". + &mt('To use the Remote Control, disable the filter for this site, and re-launch the Remote Control.').'

'."\n". + '
'.&mt('Actions').''."\n". + ''. + '
'. + 'Launch Remote Control'. + &mt('Re-launch Remote Control').''.(' 'x3).''. + 'Launch Remote Control'. + &mt('Continue without Remote Control').'
'. + '
'."\n". + '

'.&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].','','','').'

'; $r->print(< - -The LearningOnline Network with CAPA - -$bodytag - - +$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; }