version 1.2, 2003/04/02 21:23:04
|
version 1.34, 2009/10/01 23:02:11
|
Line 25
|
Line 25
|
# |
# |
# http://www.lon-capa.org/ |
# 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; |
package Apache::lonremote; |
|
|
use strict; |
use strict; |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonnet(); |
use Apache::lonnet; |
use Apache::lonmenu(); |
use Apache::lonmenu(); |
|
use Apache::lonlocal; |
|
|
sub launchremote { |
sub launchremote { |
my ($r,$lowerurl)=@_; |
my ($r,$lowerurl)=@_; |
|
&Apache::lonnet::put('environment',{'remote' => 'on'}); |
|
&Apache::lonnet::appenv({'environment.remote' => 'on'}); |
# -------------------------------------------------------- Menu script and info |
# -------------------------------------------------------- Menu script and info |
# my $windowinfo=&Apache::lonmenu::open($clientos); |
my $brcrum = [{href=>"/adm/preferences",text=>"Set User Preferences"}, |
# my $startupremote=&Apache::lonmenu::startupremote($lowerurl); |
{href=>"/adm/remote?url=/adm/preferences&action=launch",text=>"Launch Remote Control"}]; |
# my $setflags=&Apache::lonmenu::setflags(); |
my $windowinfo=&Apache::lonmenu::open($env{'browser.os'}); |
# my $maincall=&Apache::lonmenu::maincall(); |
my $startupremote=&Apache::lonmenu::startupremote($lowerurl); |
my $bodytag=&Apache::loncommon::bodytag('Launch Remote Control'); |
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); |
$r->print(<<ENDLAUNCH); |
<html> |
$start_page |
<head> |
$setflags |
<title>The LearningOnline Network with CAPA</title> |
$windowinfo |
</head> |
$message |
$bodytag |
$remoteinfo |
</body> |
$maincall |
</html> |
$end_page |
ENDLAUNCH |
ENDLAUNCH |
&Apache::lonnet::put('environment',{'remote' => 'on'}); |
|
&Apache::lonnet::appenv('environment.remote' => 'on'); |
|
} |
} |
|
|
sub collapseremote { |
sub collapseremote { |
my ($r,$lowerurl)=@_; |
my ($r,$lowerurl)=@_; |
# -------------------------------------------------------- Menu script and info |
# -------------------------------------------------------- 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_text" 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); |
$r->print(<<ENDCOLLAPSE); |
<html> |
$start_page |
<head> |
$windowinfo |
<title>The LearningOnline Network with CAPA</title> |
$message |
</head> |
$end_page |
$bodytag |
|
</body> |
|
</html> |
|
ENDCOLLAPSE |
ENDCOLLAPSE |
&Apache::lonnet::put('environment',{'remote' => 'off'}); |
&Apache::lonnet::put('environment',{'remote' => 'off'}); |
&Apache::lonnet::appenv('environment.remote' => 'off'); |
&Apache::lonnet::appenv({'environment.remote' => 'off'}); |
} |
} |
|
|
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['action']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
unless ($ENV{'form.action'}) { |
['action','url']); |
if ($ENV{'environment.remote'} eq 'on') { |
unless ($env{'form.action'}) { |
$ENV{'form.action'}='collapse'; |
if ($env{'environment.remote'} ne 'off') { |
|
$env{'form.action'}='collapse'; |
} else { |
} 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 { |
} else { |
&collapseremote($r); |
&collapseremote($r,$lowerurl); |
} |
} |
return OK; |
return OK; |
} |
} |