version 1.315.2.1, 2010/05/26 19:50:46
|
version 1.316, 2010/03/10 21:25:50
|
Line 28
|
Line 28
|
# |
# |
# There is one parameter controlling the action of this module: |
# There is one parameter controlling the action of this module: |
# |
# |
# environment.remote - if this is 'on', the routines controll the remote |
|
# control, otherwise they render the main window controls; |
|
|
|
=head1 NAME |
=head1 NAME |
|
|
Line 124 and in the body of the document
|
Line 122 and in the body of the document
|
|
|
=item unloadevents() |
=item unloadevents() |
|
|
=item startupremote() |
|
|
|
=item setflags() |
|
|
|
=item maincall() |
|
|
|
=item load_remote_msg() |
|
|
|
=item get_menu_name() |
=item get_menu_name() |
|
|
=item reopenmenu() |
|
|
|
=item open() |
|
|
|
Open the menu |
|
|
|
=item clear() |
=item clear() |
|
|
=item switch() |
=item switch() |
Line 156 The javascript is usually similar to "go
|
Line 140 The javascript is usually similar to "go
|
|
|
=item rawconfig() |
=item rawconfig() |
|
|
=item close() |
|
|
|
=item footer() |
|
|
|
=item utilityfunctions() |
=item utilityfunctions() |
|
|
=item serverform() |
=item serverform() |
Line 205 sub prep_menuitem {
|
Line 185 sub prep_menuitem {
|
} else { # textual Link |
} else { # textual Link |
$link = &mt($$menuitem[3]); |
$link = &mt($$menuitem[3]); |
} |
} |
if($$menuitem[4] eq 'newmsg'){ #special style for New Messages |
return '<li><a' |
return '<li><a href="'.$$menuitem[0].'"><span class="LC_new_message">'.$link.'</span></a></li>'; |
# highlighting for new messages |
} |
. ( $$menuitem[4] eq 'newmsg' ? ' class="LC_new_message"' : '') |
return '<li><a href="'.$$menuitem[0].'">'.$link.'</a></li>'; |
. qq| href="$$menuitem[0]">$link</a></li>|; |
} |
} |
|
|
# primary_menu() evaluates @primary_menu and returns XHTML for the menu |
# primary_menu() evaluates @primary_menu and returns XHTML for the menu |
Line 220 sub primary_menu {
|
Line 200 sub primary_menu {
|
my $menu; |
my $menu; |
# each element of @primary contains following array: |
# each element of @primary contains following array: |
# (link url, icon path, alt text, link text, condition) |
# (link url, icon path, alt text, link text, condition) |
my $public; |
|
if ((($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) |
|
|| (($env{'user.name'} eq '') && ($env{'user.domain'} eq ''))) { |
|
$public = 1; |
|
} |
|
foreach my $menuitem (@primary_menu) { |
foreach my $menuitem (@primary_menu) { |
# evaluate conditions |
# evaluate conditions |
next if ref($menuitem) ne 'ARRAY'; # |
next if ref($menuitem) ne 'ARRAY'; # |
Line 232 sub primary_menu {
|
Line 207 sub primary_menu {
|
&& &Apache::lonmsg::mynewmail(); # whether a new msg |
&& &Apache::lonmsg::mynewmail(); # whether a new msg |
next if $$menuitem[4] eq 'newmsg' # arrived or not |
next if $$menuitem[4] eq 'newmsg' # arrived or not |
&& !&Apache::lonmsg::mynewmail(); # |
&& !&Apache::lonmsg::mynewmail(); # |
next if $$menuitem[4] !~ /public/ ##we've a public user, |
next if $$menuitem[4] !~ /public/ ##we've a public user, |
&& $public; ##who should not see all |
&& $env{'user.name'} eq 'public' ##who should not see all |
##links |
&& $env{'user.domain'} eq 'public'; ##links |
next if $$menuitem[4] eq 'onlypublic'# hide links which are |
next if $$menuitem[4] eq 'onlypublic'# hide links which are |
&& !$public; # only visible to public |
&& $env{'user.name'} ne 'public' # only visible to public |
# users |
&& $env{'user.domain'} ne 'public'; # users |
next if $$menuitem[4] eq 'roles' ##show links depending on |
next if $$menuitem[4] eq 'roles' ##show links depending on |
&& &Apache::loncommon::show_course(); ##term 'Courses' or |
&& &Apache::loncommon::show_course(); ##term 'Courses' or |
next if $$menuitem[4] eq 'courses' ##'Roles' wanted |
next if $$menuitem[4] eq 'courses' ##'Roles' wanted |
&& !&Apache::loncommon::show_course(); ## |
&& !&Apache::loncommon::show_course(); ## |
|
|
|
|
if ($$menuitem[3] eq 'Help') { # special treatment for helplink |
if ($$menuitem[3] eq 'Help') { # special treatment for helplink |
$menu .= '<li>'.&Apache::loncommon::top_nav_help('Help').'</li>'; |
$menu .= '<li>'.&Apache::loncommon::top_nav_help('Help').'</li>'; |
} else { |
} else { |
Line 341 sub secondary_menu {
|
Line 316 sub secondary_menu {
|
} |
} |
|
|
sub show_return_link { |
sub show_return_link { |
if (($env{'request.noversionuri'} =~ m{^/adm/(viewclasslist|navmaps)($|\?)}) |
|
|| ($env{'request.noversionuri'} =~ m{^/adm/.*/aboutme($|\?)})) { |
|
|
|
return if ($env{'form.register'}); |
|
} |
|
return (($env{'request.noversionuri'}=~m{^/(res|public)/} && |
return (($env{'request.noversionuri'}=~m{^/(res|public)/} && |
$env{'request.symb'} eq '') |
$env{'request.symb'} eq '') |
|| |
|| |
Line 354 sub show_return_link {
|
Line 324 sub show_return_link {
|
(($env{'request.noversionuri'}=~/^\/adm\//) && |
(($env{'request.noversionuri'}=~/^\/adm\//) && |
($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) && |
($env{'request.noversionuri'}!~/^\/adm\/wrapper\//) && |
($env{'request.noversionuri'}!~ |
($env{'request.noversionuri'}!~ |
m[^/adm/.*/(smppg|bulletinboard)($|\?)]) |
m[^/adm/.*/(smppg|bulletinboard|aboutme)($|\?)]) |
)); |
)); |
} |
} |
|
|
Line 367 sub registerurl {
|
Line 337 sub registerurl {
|
if ($env{'request.state'} eq 'construct') { |
if ($env{'request.state'} eq 'construct') { |
$force_title=&Apache::lonxml::display_title(); |
$force_title=&Apache::lonxml::display_title(); |
} |
} |
if (($env{'environment.remote'} eq 'off') || |
|
((($env{'request.publicaccess'}) || |
|
(!&Apache::lonnet::is_on_map( |
|
&unescape($env{'request.noversionuri'})))) && |
|
(!$forcereg))) { |
|
return |
return |
$result |
$result |
.'<script type="text/javascript">'."\n" |
.'<script type="text/javascript">'."\n" |
Line 380 sub registerurl {
|
Line 345 sub registerurl {
|
.'// ]]>'."\n" |
.'// ]]>'."\n" |
.'</script>' |
.'</script>' |
.$force_title; |
.$force_title; |
} |
|
# Graphical display after login only |
|
if ($env{'request.registered'} && !$forcereg) { return ''; } |
|
$result.=&innerregister($forcereg); |
|
return $result.$force_title; |
|
} |
} |
|
|
sub innerregister { |
sub innerregister { |
my ($forcereg,$titletable,$bread_crumbs) = @_; |
my ($forcereg,$titletable,$bread_crumbs) = @_; |
my $result = ''; |
|
my ($uname,$thisdisfn); |
my ($uname,$thisdisfn); |
my $const_space = ($env{'request.state'} eq 'construct'); |
my $const_space = ($env{'request.state'} eq 'construct'); |
my $is_const_dir = 0; |
my $is_const_dir = 0; |
Line 398 sub innerregister {
|
Line 357 sub innerregister {
|
|
|
$env{'request.registered'} = 1; |
$env{'request.registered'} = 1; |
|
|
my $noremote = ($env{'environment.remote'} eq 'off'); |
|
|
|
undef(@inlineremote); |
undef(@inlineremote); |
|
|
my $reopen=&Apache::lonmenu::reopenmenu(); |
if ( $env{'request.symb'} && $env{'request.course.id'} ) { |
|
|
my $newmail=''; |
|
|
|
if (&Apache::lonmsg::newmail() && !$noremote) { |
|
# We have new mail and remote is up |
|
$newmail= 'swmenu.setstatus("you have","messages");'; |
|
} |
|
|
|
my ($breadcrumb,$separator); |
|
if ($noremote |
|
&& ($env{'request.symb'}) |
|
&& ($env{'request.course.id'})) { |
|
|
|
my ($mapurl,$rid,$resurl) = &Apache::lonnet::decode_symb(&Apache::lonnet::symbread()); |
my ($mapurl,$rid,$resurl) = &Apache::lonnet::decode_symb(&Apache::lonnet::symbread()); |
my $coursetitle = $env{'course.'.$env{'request.course.id'}.'.description'}; |
my $coursetitle = $env{'course.'.$env{'request.course.id'}.'.description'}; |
Line 427 sub innerregister {
|
Line 372 sub innerregister {
|
} else { |
} else { |
$contentstext = &mt('Course Contents'); |
$contentstext = &mt('Course Contents'); |
} |
} |
my @crumbs; |
my @crumbs = ({text => $contentstext, |
unless (($forcereg) && ($env{'request.noversionuri'} eq '/adm/navmaps') |
href => "Javascript:gonav('/adm/navmaps')"}); |
&& ($mapurl eq $env{'course.'.$env{'request.course.id'}.'.url'})) { |
|
@crumbs = ({text => $contentstext, |
|
href => "Javascript:gopost('/adm/navmaps','')"}); |
|
} |
|
if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) { |
if ($mapurl ne $env{'course.'.$env{'request.course.id'}.'.url'}) { |
push(@crumbs, {text => '...', |
push(@crumbs, {text => '...', |
no_mt => 1}); |
no_mt => 1}); |
Line 447 sub innerregister {
|
Line 389 sub innerregister {
|
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::add_breadcrumb(@crumbs); |
&Apache::lonhtmlcommon::add_breadcrumb(@crumbs); |
#$breadcrumb .= &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0); |
#$breadcrumb .= &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0); |
unless (($env{'request.state'} eq 'edit') || ($newmail) || |
|
($env{'request.state'} eq 'construct') || |
|
($env{'form.register'})) { |
|
$separator = &Apache::loncommon::head_subbox(); |
|
} |
|
# |
|
} |
} |
if ($env{'request.state'} eq 'construct') { |
|
$newmail = $titletable; |
|
} |
|
my $timesync = ( $noremote ? '' : 'swmenu.syncclock(1000*'.time.');' ); |
|
my $tablestart = ( $noremote ? '<table id="LC_menubuttons">' : ''); |
|
my $tableend = ( $noremote ? '</table>' : ''); |
|
# ============================================================================= |
# ============================================================================= |
# ============================ This is for URLs that actually can be registered |
# ============================ This is for URLs that actually can be registered |
if (($env{'request.noversionuri'}!~m{^/(res/)*adm/}) || ($forcereg)) { |
return '' unless ( ($env{'request.noversionuri'}!~m{^/(res/)*adm/}) |
|
|| $forcereg ); |
# -- This applies to homework problems for users with grading privileges |
# -- This applies to homework problems for users with grading privileges |
my $crs='/'.$env{'request.course.id'}; |
my $crs='/'.$env{'request.course.id'}; |
if ($env{'request.course.sec'}) { |
if ($env{'request.course.sec'}) { |
Line 632 s&7&1&del.gif&delete[_1]&resource[_2]&go
|
Line 563 s&7&1&del.gif&delete[_1]&resource[_2]&go
|
s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$cleandisfn')&Prepare a printable document |
s&7&2&prt.gif&prepare[_1]&printout[_1]&gocstr('/adm/printout','/~$uname/$cleandisfn')&Prepare a printable document |
ENDMENUITEMS |
ENDMENUITEMS |
} |
} |
if ($noremote) { |
|
if (ref($bread_crumbs) eq 'ARRAY') { |
if (ref($bread_crumbs) eq 'ARRAY') { |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
&Apache::lonhtmlcommon::clear_breadcrumbs(); |
foreach my $crumb (@{$bread_crumbs}){ |
foreach my $crumb (@{$bread_crumbs}){ |
&Apache::lonhtmlcommon::add_breadcrumb($crumb); |
&Apache::lonhtmlcommon::add_breadcrumb($crumb); |
} |
} |
} |
} |
} |
|
} elsif ( defined($env{'request.course.id'}) && |
} elsif ( defined($env{'request.course.id'}) && |
$env{'request.symb'} ne '' ) { |
$env{'request.symb'} ne '' ) { |
# |
# |
Line 669 if(length($annotation) > 0){
|
Line 598 if(length($annotation) > 0){
|
$menuitems.="&anno-[_1]&tations[_1]&annotate()&"; |
$menuitems.="&anno-[_1]&tations[_1]&annotate()&"; |
$menuitems.="Make notes and annotations about this resource&&1\n"; |
$menuitems.="Make notes and annotations about this resource&&1\n"; |
|
|
unless ($noremote) { |
unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) { |
my $showreqcrs = &check_for_rcrs(); |
|
if ($showreqcrs) { |
|
$menuitems.="s&8&1&rcrs.gif&request[_1]&course[_16]". |
|
"&go('/adm/requestcourse')&Course requests\n"; |
|
} |
|
} |
|
unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme|viewclasslist|portfolio)(\?|$)/) { |
|
if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/})) { |
if ((!$env{'request.enc'}) && ($env{'request.noversionuri'} !~ m{^/adm/wrapper/ext/})) { |
$menuitems.=(<<ENDREALRES); |
$menuitems.=(<<ENDREALRES); |
s&6&3&catalog.gif&catalog[_2]&info[_1]&catalog_info()&Show Metadata |
s&6&3&catalog.gif&catalog[_2]&info[_1]&catalog_info()&Show Metadata |
Line 712 ENDMENUITEMS
|
Line 634 ENDMENUITEMS
|
} |
} |
} |
} |
|
|
if ($noremote) { |
|
my $addremote=0; |
my $addremote=0; |
foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} } |
foreach (@inlineremote) { if ($_ ne '') { $addremote=1; last;} } |
my $inlinebuttons=''; |
|
if ($addremote) { |
if ($addremote) { |
|
|
Apache::lonhtmlcommon::clear_breadcrumb_tools(); |
Apache::lonhtmlcommon::clear_breadcrumb_tools(); |
Line 735 ENDMENUITEMS
|
Line 655 ENDMENUITEMS
|
Apache::lonhtmlcommon::add_breadcrumb_tool( |
Apache::lonhtmlcommon::add_breadcrumb_tool( |
'tools', @inlineremote[63]); |
'tools', @inlineremote[63]); |
} |
} |
|
|
|
|
unless ($env{'request.noversionuri'}=~ m{^/adm/(navmaps|viewclasslist)(\?|$)}) { |
Apache::lonhtmlcommon::add_breadcrumb_tool( |
Apache::lonhtmlcommon::add_breadcrumb_tool( |
'advtools', @inlineremote[61,71,72,73,92]); |
'advtools', @inlineremote[61,71,72,73,92]); |
|
} |
|
} |
|
|
|
# # Registered, textual output |
|
# if ( $env{'environment.icons'} eq 'iconsonly' ) { |
|
# $inlinebuttons = (<<ENDARROWSINLINE); |
|
#<tr><td> |
|
#$inlineremote[21] $inlineremote[23] |
|
#ENDARROWSINLINE |
|
# if ( &hidden_button_check() ne 'yes' ) { |
|
# $inlinebuttons .= (<<ENDINLINEICONS); |
|
#$inlineremote[61] $inlineremote[63] |
|
#$inlineremote[71] $inlineremote[72] $inlineremote[73] |
|
#$inlineremote[81] $inlineremote[82] $inlineremote[83] |
|
#$inlineremote[91] $inlineremote[92] $inlineremote[93]</td></tr> |
|
#ENDINLINEICONS |
|
# } |
|
# } else { # not iconsonly |
|
# if ( $inlineremote[21] ne '' || $inlineremote[23] ne '' ) { |
|
# $inlinebuttons = (<<ENDFIRSTLINE); |
|
#<tr><td>$inlineremote[21]</td><td> </td><td>$inlineremote[23]</td></tr> |
|
#ENDFIRSTLINE |
|
# } |
|
# if ( &hidden_button_check() ne 'yes' ) { |
|
# foreach my $row ( 6 .. 9 ) { |
|
# if ( $inlineremote[ ${row} . '1' ] ne '' |
|
# || $inlineremote[ $row . '2' ] ne '' |
|
# || $inlineremote[ $row . '3' ] ne '' ) |
|
# { |
|
# $inlinebuttons .= <<"ENDLINE"; |
|
#<tr><td>$inlineremote["${row}1"]</td><td>$inlineremote["${row}2"]</td><td>$inlineremote["${row}3"]</td></tr> |
|
#ENDLINE |
|
# } |
|
# } |
|
# } |
|
# } |
|
} |
|
$breadcrumb = &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0); |
|
$result =(<<ENDREGTEXT); |
|
<script type="text/javascript"> |
|
// BEGIN LON-CAPA Internal |
|
</script> |
|
$timesync |
|
$breadcrumb |
|
<!-- $tablestart --> |
|
<!-- $inlinebuttons --> |
|
<!-- $tableend --> |
|
$newmail |
|
<!-- $separator --> |
|
<script type="text/javascript"> |
|
// END LON-CAPA Internal |
|
</script> |
|
|
|
ENDREGTEXT |
|
# Registered, graphical output |
|
} else { |
|
my $requri=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0])); |
|
$requri=&Apache::lonenc::check_encrypt(&unescape($requri)); |
|
my $cursymb=&Apache::lonenc::check_encrypt($env{'request.symb'}); |
|
my $navstatus=&get_nav_status(); |
|
my $clearcstr; |
|
|
|
if ($env{'user.adv'}) { $clearcstr='clearbut(6,1)'; } |
|
$result = (<<ENDREGTHIS); |
|
|
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
// BEGIN LON-CAPA Internal |
|
var swmenu=null; |
|
|
|
function LONCAPAreg() { |
|
swmenu=$reopen; |
|
swmenu.clearTimeout(swmenu.menucltim); |
|
$timesync |
|
$newmail |
|
$buttons |
|
swmenu.currentURL="$requri"; |
|
swmenu.reloadURL=swmenu.currentURL+window.location.search; |
|
swmenu.currentSymb="$cursymb"; |
|
swmenu.reloadSymb="$cursymb"; |
|
swmenu.currentStale=0; |
|
$navstatus |
|
$hwkadd |
|
$editbutton |
|
} |
|
|
|
function LONCAPAstale() { |
|
swmenu=$reopen |
|
swmenu.currentStale=1; |
|
if (swmenu.reloadURL!='' && swmenu.reloadURL!= null) { |
|
swmenu.switchbutton |
|
(3,1,'reload.gif','return','location','go(reloadURL)','Return to the last known location in the course sequence'); |
|
} |
|
swmenu.clearbut(7,2); |
|
swmenu.clearbut(7,3); |
|
swmenu.menucltim=swmenu.setTimeout( |
|
'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ |
|
'clearbut(9,1);clearbut(9,3);clearbut(6,3);$clearcstr', |
|
2000); |
|
} |
|
|
|
// END LON-CAPA Internal |
|
// ]]> |
|
</script> |
|
ENDREGTHIS |
|
} |
} |
# ============================================================================= |
|
} else { |
|
# ========================================== This can or will not be registered |
|
if ($noremote) { |
|
# Not registered |
|
$result= (<<ENDDONOTREGTEXT); |
|
ENDDONOTREGTEXT |
|
} else { |
|
# Not registered, graphical |
|
$result = (<<ENDDONOTREGTHIS); |
|
|
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
// BEGIN LON-CAPA Internal |
|
var swmenu=null; |
|
|
|
function LONCAPAreg() { |
|
swmenu=$reopen |
|
$timesync |
|
swmenu.currentStale=1; |
|
swmenu.clearbut(2,1); |
|
swmenu.clearbut(2,3); |
|
swmenu.clearbut(8,1); |
|
swmenu.clearbut(8,2); |
|
swmenu.clearbut(8,3); |
|
if (swmenu.currentURL) { |
|
swmenu.switchbutton |
|
(3,1,'reload.gif','return','location','go(currentURL)'); |
|
} else { |
|
swmenu.clearbut(3,1); |
|
} |
|
} |
|
|
|
function LONCAPAstale() { |
|
} |
|
|
|
// END LON-CAPA Internal |
|
// ]]> |
|
</script> |
|
ENDDONOTREGTHIS |
|
} |
|
# ============================================================================= |
|
} |
} |
return $result; |
|
|
return Apache::lonhtmlcommon::scripttag('', 'start') |
|
. Apache::lonhtmlcommon::breadcrumbs(undef,undef,0) |
|
. Apache::lonhtmlcommon::scripttag('', 'end'); |
} |
} |
|
|
sub is_course_upload { |
sub is_course_upload { |
Line 939 sub unloadevents() {
|
Line 715 sub unloadevents() {
|
return 'LONCAPAstale();'; |
return 'LONCAPAstale();'; |
} |
} |
|
|
|
|
sub startupremote { |
|
my ($lowerurl)=@_; |
|
if ($env{'environment.remote'} eq 'off') { |
|
return ('<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='.$lowerurl.'" />'); |
|
} |
|
# |
|
# The Remote actually gets launched! |
|
# |
|
my $configmenu=&rawconfig(); |
|
my $esclowerurl=&escape($lowerurl); |
|
my $message=&mt('"Waiting for Remote Control window to load: "+[_1]','waited'); |
|
return(<<ENDREMOTESTARTUP); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
var timestart; |
|
function wheelswitch() { |
|
if (typeof(document.wheel) != 'undefined') { |
|
if (typeof(document.wheel.spin) != 'undefined') { |
|
var date=new Date(); |
|
var waited=Math.round(30-((date.getTime()-timestart)/1000)); |
|
document.wheel.spin.value=$message; |
|
} |
|
} |
|
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 { |
|
window.location='/adm/remote?action=collapse&url=$esclowerurl'; |
|
} |
|
} else { |
|
wheelswitch(); |
|
setTimeout('wait();',200); |
|
} |
|
} |
|
|
|
function main() { |
|
canceltim=setTimeout('tim=1;',30000); |
|
window.status='-'; |
|
var date=new Date(); |
|
timestart=date.getTime(); |
|
wait(); |
|
} |
|
|
|
// ]]> |
|
</script> |
|
ENDREMOTESTARTUP |
|
} |
|
|
|
sub setflags() { |
|
return(<<ENDSETFLAGS); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
menuloaded=0; |
|
tim=0; |
|
// ]]> |
|
</script> |
|
ENDSETFLAGS |
|
} |
|
|
|
sub maincall() { |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
return(<<ENDMAINCALL); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
main(); |
|
// ]]> |
|
</script> |
|
ENDMAINCALL |
|
} |
|
|
|
sub load_remote_msg { |
|
my ($lowerurl)=@_; |
|
|
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
|
|
my $esclowerurl=&escape($lowerurl); |
|
my $link=&mt('[_1]Continue[_2] on in Inline Menu mode' |
|
,'<a href="/adm/remote?action=collapse&url='.$esclowerurl.'">' |
|
,'</a>'); |
|
return(<<ENDREMOTEFORM); |
|
<p> |
|
<form name="wheel"> |
|
<input name="spin" type="text" size="60" /> |
|
</form> |
|
</p> |
|
<p>$link</p> |
|
ENDREMOTEFORM |
|
} |
|
|
|
sub get_menu_name { |
sub get_menu_name { |
my $hostid = $Apache::lonnet::perlvar{'lonHostID'}; |
my $hostid = $Apache::lonnet::perlvar{'lonHostID'}; |
$hostid =~ s/\W//g; |
$hostid =~ s/\W//g; |
return 'LCmenu'.$hostid; |
return 'LCmenu'.$hostid; |
} |
} |
|
|
|
|
sub reopenmenu { |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
my $menuname = &get_menu_name(); |
|
my $nothing = &Apache::lonhtmlcommon::javascript_nothing(); |
|
return('window.open('.$nothing.',"'.$menuname.'","",false);'); |
|
} |
|
|
|
|
|
sub open { |
|
my $returnval=''; |
|
if ($env{'environment.remote'} eq 'off') { |
|
return |
|
'<script type="text/javascript">'."\n" |
|
.'// <![CDATA['."\n" |
|
.'self.name="loncapaclient";'."\n" |
|
.'// ]]>'."\n" |
|
.'</script>'; |
|
} |
|
my $menuname = &get_menu_name(); |
|
|
|
# unless (shift eq 'unix') { |
|
# resizing does not work on linux because of virtual desktop sizes |
|
# $returnval.=(<<ENDRESIZE); |
|
#if (window.screen) { |
|
# self.resizeTo(screen.availWidth-215,screen.availHeight-55); |
|
# self.moveTo(190,15); |
|
#} |
|
#ENDRESIZE |
|
# } |
|
$returnval=(<<ENDOPEN); |
|
// <![CDATA[ |
|
window.status='Opening LON-CAPA Remote Control'; |
|
var menu=window.open("/res/adm/pages/menu.html?inhibitmenu=yes","$menuname", |
|
"height=375,width=150,scrollbars=no,menubar=no,top=5,left=5,screenX=5,screenY=5"); |
|
self.name='loncapaclient'; |
|
// ]]> |
|
ENDOPEN |
|
return '<script type="text/javascript">'.$returnval.'</script>'; |
|
} |
|
|
|
|
|
# ================================================================== Raw Config |
# ================================================================== Raw Config |
|
|
|
#SD |
|
#this is called by |
|
#lonmenu |
|
# |
sub clear { |
sub clear { |
my ($row,$col)=@_; |
my ($row,$col)=@_; |
unless ($env{'environment.remote'} eq 'off') { |
$inlineremote[10*$row+$col]=''; |
if (($row<1) || ($row>13)) { return ''; } |
return ''; |
return "\n".qq(window.status+='.';swmenu.clearbut($row,$col);); |
|
} else { |
|
$inlineremote[10*$row+$col]=''; |
|
return ''; |
|
} |
|
} |
} |
|
|
# ============================================ Switch a button or create a link |
# ============================================ Switch a button or create a link |
Line 1122 sub switch {
|
Line 744 sub switch {
|
$top=&mt($top); |
$top=&mt($top); |
$bot=&mt($bot); |
$bot=&mt($bot); |
$desc=&mt($desc); |
$desc=&mt($desc); |
if (($env{'environment.remote'} ne 'off') || ($env{'environment.icons'} eq 'classic')) { |
|
$img=&mt($img); |
|
} |
|
my $idx=10*$row+$col; |
my $idx=10*$row+$col; |
$category_members{$cat}.=':'.$idx; |
$category_members{$cat}.=':'.$idx; |
|
|
unless ($env{'environment.remote'} eq 'off') { |
|
if (($row<1) || ($row>13)) { return ''; } |
|
# Remote |
|
return "\n". |
|
qq(window.status+='.';swmenu.switchbutton($row,$col,"$img","$top","$bot","$act","$desc");); |
|
} else { |
|
# Inline Remote |
# Inline Remote |
if ($env{'environment.icons'} ne 'classic') { |
$img=~s/\.gif$/\.png/; |
$img=~s/\.gif$/\.png/; |
|
} |
|
if ($nobreak==2) { return ''; } |
if ($nobreak==2) { return ''; } |
my $text=$top.' '.$bot; |
my $text=$top.' '.$bot; |
$text=~s/\s*\-\s*//gs; |
$text=~s/\s*\-\s*//gs; |
Line 1167 sub switch {
|
Line 778 sub switch {
|
} |
} |
} else { |
} else { |
# Inline Menu |
# Inline Menu |
|
#SD look here |
if ($env{'environment.icons'} eq 'iconsonly') { |
if ($env{'environment.icons'} eq 'iconsonly') { |
$inlineremote[$idx]='<a title="'.$desc.'" href="javascript:'.$act.';">'.$pic.'</a>'; |
$inlineremote[$idx]='<a title="'.$desc.'" href="javascript:'.$act.';">'.$pic.'</a>'; |
} else { |
} else { |
Line 1175 sub switch {
|
Line 787 sub switch {
|
'<span class="LC_menubuttons_inline_text">'.$desc.'</span></a>'; |
'<span class="LC_menubuttons_inline_text">'.$desc.'</span></a>'; |
} |
} |
} |
} |
} |
|
return ''; |
return ''; |
} |
} |
|
|
Line 1193 sub secondlevel {
|
Line 804 sub secondlevel {
|
return $output; |
return $output; |
} |
} |
|
|
sub openmenu { |
|
my $menuname = &get_menu_name(); |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
my $nothing = &Apache::lonhtmlcommon::javascript_nothing(); |
|
return "window.open(".$nothing.",'".$menuname."');"; |
|
} |
|
|
|
sub inlinemenu { |
sub inlinemenu { |
undef(@inlineremote); |
undef(@inlineremote); |
undef(%category_members); |
undef(%category_members); |
Line 1242 sub rawconfig {
|
Line 846 sub rawconfig {
|
# |
# |
my $textualoverride=shift; |
my $textualoverride=shift; |
my $output=''; |
my $output=''; |
unless ($env{'environment.remote'} eq 'off') { |
return '' unless $textualoverride; |
$output.= |
|
"window.status='Opening Remote Control';var swmenu=".&openmenu(). |
|
"\nwindow.status='Configuring Remote Control ';"; |
|
} 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 1422 sub rawconfig {
|
Line 1020 sub rawconfig {
|
$uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat); |
$uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat); |
} |
} |
} |
} |
unless ($env{'environment.remote'} eq 'off') { |
|
$output.="\nwindow.status='Synchronizing Time';swmenu.syncclock(1000*".time.");\nwindow.status='Remote Control Configured.';"; |
|
if (&Apache::lonmsg::newmail()) { |
|
$output.='swmenu.setstatus("you have","messages");'; |
|
} |
|
} |
|
|
|
return $output; |
return $output; |
} |
} |
|
|
Line 1454 sub check_for_rcrs {
|
Line 1045 sub check_for_rcrs {
|
return $showreqcrs; |
return $showreqcrs; |
} |
} |
|
|
# ======================================================================= Close |
|
|
|
sub close { |
|
if ($env{'environment.remote'} eq 'off') { return ''; } |
|
my $menuname = &get_menu_name(); |
|
return(<<ENDCLOSE); |
|
<script type="text/javascript"> |
|
// <![CDATA[ |
|
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.'; |
|
// ]]> |
|
</script> |
|
ENDCLOSE |
|
} |
|
|
|
# ====================================================================== Footer |
# ====================================================================== Footer |
|
|
sub footer { |
|
|
|
} |
|
|
|
sub nav_control_js { |
sub nav_control_js { |
my $nav=($env{'environment.remotenavmap'} eq 'on'); |
my $nav=($env{'environment.remotenavmap'} eq 'on'); |
return (<<NAVCONTROL); |
return (<<NAVCONTROL); |
Line 1525 END
|
Line 1090 END
|
} |
} |
|
|
sub utilityfunctions { |
sub utilityfunctions { |
my $caller = shift; |
|
unless ($env{'environment.remote'} eq 'off' || |
|
$caller eq '/adm/menu') { |
|
return ''; } |
|
|
|
my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0])); |
my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$env{'request.noversionuri'}))[0])); |
if ($currenturl =~ m{^/adm/wrapper/ext/}) { |
if ($currenturl =~ m{^/adm/wrapper/ext/} |
if ($env{'request.external.querystring'}) { |
&& $env{'request.external.querystring'} ) { |
$currenturl .= ($currenturl=~/\?/)?'&':'?'.$env{'request.external.querystring'}; |
$currenturl .= ($currenturl=~/\?/)?'&':'?'.$env{'request.external.querystring'}; |
} |
|
} |
} |
$currenturl=&Apache::lonenc::check_encrypt(&unescape($currenturl)); |
$currenturl=&Apache::lonenc::check_encrypt(&unescape($currenturl)); |
|
|
Line 1680 function edit_bookmarks() {
|
Line 1239 function edit_bookmarks() {
|
go(''); |
go(''); |
w_BookmarkPal_flag=1; |
w_BookmarkPal_flag=1; |
bookmarkpal=window.open("/adm/bookmarks", |
bookmarkpal=window.open("/adm/bookmarks", |
"BookmarkPal", "width=500,height=505,scrollbars=0"); |
"BookmarkPal", "width=400,height=505,scrollbars=0"); |
} |
} |
|
|
function annotate() { |
function annotate() { |