--- loncom/interface/lonmenu.pm 2009/02/26 21:56:59 1.253 +++ loncom/interface/lonmenu.pm 2009/04/14 23:52:11 1.258 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.253 2009/02/26 21:56:59 kaisler Exp $ +# $Id: lonmenu.pm,v 1.258 2009/04/14 23:52:11 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -174,7 +174,7 @@ sub initlittle { 'Courses':'Roles'), 'other' => 'Other Roles', 'docs' => 'Edit Course', - 'exit' => 'Exit', + 'exit' => 'Logout', 'login' => 'Log In', 'launch' => 'Launch Remote Control', 'groups' => 'Groups', @@ -348,6 +348,12 @@ ENDCRELOAD my $form=&serverform(); my $utility=&utilityfunctions(); + my $messagelink = ""; + if(&Apache::lonmsg::mynewmail()){ + $messagelink = 'Message(new)' + }else{ + $messagelink = 'Message' + } my $helplink=&Apache::loncommon::top_nav_help('Help'); return (< @@ -358,7 +364,7 @@ $utility
  1. $logo
  2. -
  3. Message
  4. +
  5. $messagelink
  6. $roles
  7. $helplink
  8. $lt{'exit'}
  9. @@ -375,6 +381,7 @@ $form +
    $reg ENDINLINEMENU } else { @@ -516,6 +523,12 @@ sub innerregister { ### resource ### my $editbutton = ''; + my $noeditbutton = 1; + my ($cnum,$cdom); + if ($env{'request.course.id'}) { + $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + } if ($env{'user.author'}) { if ($env{'request.role'}=~/^(aa|ca|au)/) { # Set defaults for authors @@ -543,6 +556,7 @@ sub innerregister { foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } if (!$allowed) { $editbutton=&switch('','',6,1,$top,,$bottom,$action,$desc); + $noeditbutton = 0; } } ## @@ -551,30 +565,53 @@ sub innerregister { my $cfile=''; my $cfuname=''; my $cfudom=''; + my $uploaded; if ($env{'request.filename'}) { my $file=&Apache::lonnet::declutter($env{'request.filename'}); - $file=~s/^($match_domain)\/($match_username)/\/priv\/$2/; - # Check that the user has permission to edit this resource - ($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1); - if (defined($cfudom)) { - my $home=&Apache::lonnet::homeserver($cfuname,$cfudom); - my $allowed=0; - my @ids=&Apache::lonnet::current_machine_ids(); - foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } - if ($allowed) { - $cfile=$file; + if (defined($cnum) && defined($cdom)) { + $uploaded = &is_course_upload($file,$cnum,$cdom); + } + if (!$uploaded) { + $file=~s/^($match_domain)\/($match_username)/\/priv\/$2/; + # Check that the user has permission to edit this resource + ($cfuname,$cfudom)=&Apache::loncacc::constructaccess($file,$1); + if (defined($cfudom)) { + my $home=&Apache::lonnet::homeserver($cfuname,$cfudom); + my $allowed=0; + my @ids=&Apache::lonnet::current_machine_ids(); + foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } } + if ($allowed) { + $cfile=$file; + } } } - } + } # Finally, turn the button on or off if ($cfile && !$const_space) { $editbutton=&switch ('','',6,1,'pcstr.gif','edit[_1]','resource[_2]', "go('".$cfile."');","Edit this resource"); + $noeditbutton = 0; } elsif ($editbutton eq '') { $editbutton=&clear(6,1); } } + if (($noeditbutton) && ($env{'request.filename'})) { + if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { + my $file=&Apache::lonnet::declutter($env{'request.filename'}); + if (defined($cnum) && defined($cdom)) { + if (&is_course_upload($file,$cnum,$cdom)) { + my $cfile = &edit_course_upload($file,$cnum,$cdom); + if ($cfile) { + $editbutton=&switch + ('','',6,1,'pcstr.gif','edit[_1]', + 'resource[_2]',"go('".$cfile."');", + 'Edit this resource'); + } + } + } + } + } ### ### # Prepare the rest of the buttons @@ -625,7 +662,7 @@ $menuitems.="Make notes and annotations unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) { if (!$env{'request.enc'}) { $menuitems.=(<&'); + } + } + return $cfile; +} + sub loadevents() { if ($env{'request.state'} eq 'construct' || $env{'request.noversionuri'} =~ m{^/res/adm/pages/}) { return ''; }