version 1.106, 2003/12/09 22:10:23
|
version 1.115, 2004/08/27 17:03:45
|
Line 39
|
Line 39
|
package Apache::lonmenu; |
package Apache::lonmenu; |
|
|
use strict; |
use strict; |
use Apache::lonnet; |
use Apache::lonnet(); |
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
use Apache::loncommon; |
use Apache::loncommon(); |
|
use Apache::lonnavmaps(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
|
use vars qw(@desklines $readdesk); |
use vars qw(@desklines $readdesk); |
Line 68 sub menubuttons {
|
Line 69 sub menubuttons {
|
my $forcereg=shift; |
my $forcereg=shift; |
my $target =shift; |
my $target =shift; |
my $registration=shift; |
my $registration=shift; |
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
|
['inhibitmenu']); |
|
if ($ENV{'form.inhibitmenu'} eq 'yes') { return ''; } |
|
|
my $navmaps=''; |
my $navmaps=''; |
my $reloadlink=''; |
my $reloadlink=''; |
my $escurl=&Apache::lonnet::escape($ENV{'request.noversionuri'}); |
my $escurl=&Apache::lonnet::escape($ENV{'request.noversionuri'}); |
Line 128 ENDMAINMENU
|
Line 134 ENDMAINMENU
|
my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain); |
my $sidebg=&Apache::loncommon::designparm($function.'.sidebg',$domain); |
# Do we have a NAV link? |
# Do we have a NAV link? |
if ($ENV{'request.course.id'}) { |
if ($ENV{'request.course.id'}) { |
$navmaps=(<<ENDNAVREM); |
my $navcontrol=&Apache::lonnavmaps::nav_control_js(); |
|
$navmaps=(<<ENDNAV); |
<td bgcolor="$tabbg"> |
<td bgcolor="$tabbg"> |
<a href="/adm/navmaps?postdata=$escurl&postsymb=$escsymb" target="_top"><font color="$font">$lt{'nav'}</font></a></td> |
<script type="text/javascript"> |
ENDNAVREM |
$navcontrol |
if (($ENV{'request.noversionuri'}=~/^\/adm\//) && |
</script> |
|
<a href="javascript:gonav('/adm/navmaps?postdata=$escurl&postsymb=$escsymb')"><font color="$font">$lt{'nav'}</font></a></td> |
|
ENDNAV |
|
if (($ENV{'request.noversionuri'}=~/^\/adm\//) && |
($ENV{'request.noversionuri'}!~/^\/adm\/wrapper\//) && |
($ENV{'request.noversionuri'}!~/^\/adm\/wrapper\//) && |
($ENV{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) { |
($ENV{'request.noversionuri'}!~/^\/adm\/.*\/(smppg|bulletinboard|aboutme)(\?|$)/)) { |
my $escreload=&Apache::lonnet::escape('return:'); |
my $escreload=&Apache::lonnet::escape('return:'); |
Line 263 sub innerregister {
|
Line 273 sub innerregister {
|
# ============================ This is for URLs that actually can be registered |
# ============================ This is for URLs that actually can be registered |
if (($ENV{'request.noversionuri'}!~/^\/(res\/)*adm\//) || ($forcereg)) { |
if (($ENV{'request.noversionuri'}!~/^\/(res\/)*adm\//) || ($forcereg)) { |
# -- This applies to homework problems for users with grading privileges |
# -- This applies to homework problems for users with grading privileges |
my $hwkadd=''; |
my $crs='/'.$ENV{'request.course.id'}; |
if |
if ($ENV{'request.course.sec'}) { |
($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) { |
$crs.='_'.$ENV{'request.course.sec'}; |
my $crs='/'.$ENV{'request.course.id'}; |
} |
if ($ENV{'request.course.sec'}) { |
$crs=~s/\_/\//g; |
$crs.='_'.$ENV{'request.course.sec'}; |
|
} |
|
$crs=~s/\_/\//g; |
|
|
|
|
my $hwkadd=''; |
|
if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) { |
if (&Apache::lonnet::allowed('vgr',$crs)) { |
if (&Apache::lonnet::allowed('vgr',$crs)) { |
$hwkadd.=&switch('','',7,1,'subm.gif','view sub-[_1]','missions[_1]', |
$hwkadd.=&switch('','',7,1,'subm.gif','view sub-[_1]','missions[_1]', |
"gocmd('/adm/grades','submission')", |
"gocmd('/adm/grades','submission')", |
Line 282 sub innerregister {
|
Line 291 sub innerregister {
|
"gocmd('/adm/grades','gradingmenu')", |
"gocmd('/adm/grades','gradingmenu')", |
'Modify user grades for this assessment resource'); |
'Modify user grades for this assessment resource'); |
} |
} |
if (&Apache::lonnet::allowed('opa',$crs)) { |
} |
$hwkadd.=&switch('','',7,3,'pparm.gif','problem[_2]','parms[_2]', |
if (&Apache::lonnet::allowed('opa',$crs)) { |
"gocmd('/adm/parmset','set')", |
$hwkadd.=&switch('','',7,3,'pparm.gif','problem[_2]','parms[_2]', |
'Modify deadlines, etc, for this assessment resource'); |
"gocmd('/adm/parmset','set')", |
} |
'Modify deadlines, etc, for this resource'); |
} |
} |
# -- End Homework |
# -- End Homework |
### |
### |
Line 311 sub innerregister {
|
Line 320 sub innerregister {
|
} |
} |
# Check that we are on the correct machine |
# Check that we are on the correct machine |
my $home = &Apache::lonnet::homeserver($caname,$cadom); |
my $home = &Apache::lonnet::homeserver($caname,$cadom); |
if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) { |
my $allowed=0; |
$editbutton=&switch |
my @ids=&Apache::lonnet::current_machine_ids(); |
('','',6,1,$top,,$bottom,$action,$desc); |
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } |
|
if (!$allowed) { |
|
$editbutton=&switch('','',6,1,$top,,$bottom,$action,$desc); |
} |
} |
} |
} |
## |
## |
Line 325 sub innerregister {
|
Line 336 sub innerregister {
|
if ($ENV{'request.filename'}) { |
if ($ENV{'request.filename'}) { |
my $file=&Apache::lonnet::declutter($ENV{'request.filename'}); |
my $file=&Apache::lonnet::declutter($ENV{'request.filename'}); |
$file=~s/^(\w+)\/(\w+)/\/priv\/$2/; |
$file=~s/^(\w+)\/(\w+)/\/priv\/$2/; |
# Chech that the user has permission to edit this resource |
# Check that the user has permission to edit this resource |
($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1); |
($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1); |
if (defined($cfudom)) { |
if (defined($cfudom)) { |
if (&Apache::lonnet::homeserver($cfuname,$cfudom) |
my $home=&Apache::lonnet::homeserver($cfuname,$cfudom); |
eq $Apache::lonnet::perlvar{'lonHostID'}) { |
my $allowed=0; |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } |
|
if ($allowed) { |
$cfile=$file; |
$cfile=$file; |
} |
} |
} |
} |
Line 411 ENDREGTEXT
|
Line 425 ENDREGTEXT
|
} else { |
} else { |
my $requri=(split(/\?/,$ENV{'request.noversionuri'}))[0]; |
my $requri=(split(/\?/,$ENV{'request.noversionuri'}))[0]; |
$requri=&Apache::lonnet::unescape($requri); |
$requri=&Apache::lonnet::unescape($requri); |
|
my $navstatus=&get_nav_status(); |
$result = (<<ENDREGTHIS); |
$result = (<<ENDREGTHIS); |
|
|
<script language="JavaScript"> |
<script language="JavaScript"> |
Line 428 var swmenu=null;
|
Line 443 var swmenu=null;
|
swmenu.currentSymb="$ENV{'request.symb'}"; |
swmenu.currentSymb="$ENV{'request.symb'}"; |
swmenu.reloadSymb="$ENV{'request.symb'}"; |
swmenu.reloadSymb="$ENV{'request.symb'}"; |
swmenu.currentStale=0; |
swmenu.currentStale=0; |
|
$navstatus |
$hwkadd |
$hwkadd |
$editbutton |
$editbutton |
} |
} |
Line 444 var swmenu=null;
|
Line 460 var swmenu=null;
|
swmenu.clearbut(7,3); |
swmenu.clearbut(7,3); |
swmenu.menucltim=swmenu.setTimeout( |
swmenu.menucltim=swmenu.setTimeout( |
'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ |
'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+ |
'clearbut(9,1);clearbut(9,2);clearbut(9,3);clearbut(6,3);clearbut(6,1)', |
'clearbut(9,1);clearbut(9,3);clearbut(6,3);clearbut(6,1)', |
2000); |
2000); |
} |
} |
|
|
Line 600 sub reopenmenu {
|
Line 616 sub reopenmenu {
|
sub open { |
sub open { |
my $returnval=''; |
my $returnval=''; |
if (($ENV{'browser.interface'} eq 'textual') || |
if (($ENV{'browser.interface'} eq 'textual') || |
($ENV{'environment.remote'} eq 'off')) { return ''; } |
($ENV{'environment.remote'} eq 'off')) { |
|
return '<script type="text/javascript">self.name="loncapaclient";</script>'; |
|
} |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
my $menuname='LCmenu'.$Apache::lonnet::perlvar{'lonHostID'}; |
unless (shift eq 'unix') { |
unless (shift eq 'unix') { |
# resizing does not work on linux because of virtual desktop sizes |
# resizing does not work on linux because of virtual desktop sizes |
Line 811 sub rawconfig {
|
Line 829 sub rawconfig {
|
} |
} |
$act =~ s/\$caname/$caname/g; |
$act =~ s/\$caname/$caname/g; |
my $home = &Apache::lonnet::homeserver($caname,$cadom); |
my $home = &Apache::lonnet::homeserver($caname,$cadom); |
if ($home eq $Apache::lonnet::perlvar{'lonHostID'}) { |
my $allowed=0; |
|
my @ids=&Apache::lonnet::current_machine_ids(); |
|
foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } |
|
if ($allowed) { |
$output.=switch($caname,$cadom, |
$output.=switch($caname,$cadom, |
$row,$col,$img,$top,$bot,$act,$desc); |
$row,$col,$img,$top,$bot,$act,$desc); |
} |
} |
Line 858 sub utilityfunctions {
|
Line 879 sub utilityfunctions {
|
($ENV{'environment.remote'} eq 'off')) { return ''; } |
($ENV{'environment.remote'} eq 'off')) { return ''; } |
my $currenturl=$ENV{'request.noversionuri'}; |
my $currenturl=$ENV{'request.noversionuri'}; |
my $currentsymb=$ENV{'request.symb'}; |
my $currentsymb=$ENV{'request.symb'}; |
|
my $nav_control=&Apache::lonnavmaps::nav_control_js(); |
return (<<ENDUTILITY) |
return (<<ENDUTILITY) |
|
|
var currentURL="$currenturl"; |
var currentURL="$currenturl"; |
var reloadURL="$currenturl"; |
var reloadURL="$currenturl"; |
var currentSymb="$currentsymb"; |
var currentSymb="$currentsymb"; |
|
|
|
$nav_control |
|
|
function go(url) { |
function go(url) { |
if (url!='' && url!= null) { |
if (url!='' && url!= null) { |
currentURL = null; |
currentURL = null; |
Line 915 sub serverform {
|
Line 939 sub serverform {
|
</form> |
</form> |
ENDSERVERFORM |
ENDSERVERFORM |
} |
} |
|
|
|
sub get_nav_status { |
|
my $navstatus="swmenu.w_loncapanav_flag="; |
|
if ($ENV{'environment.remotenavmap'} eq 'on') { |
|
$navstatus.="1"; |
|
} else { |
|
$navstatus.="-1"; |
|
} |
|
return $navstatus; |
|
} |
|
|
# ================================================ Handler when called directly |
# ================================================ Handler when called directly |
|
|
|
|