--- loncom/interface/lonmenu.pm 2016/10/30 18:12:43 1.369.2.63 +++ loncom/interface/lonmenu.pm 2016/11/29 15:19:49 1.369.2.66 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines to control the menu # -# $Id: lonmenu.pm,v 1.369.2.63 2016/10/30 18:12:43 raeburn Exp $ +# $Id: lonmenu.pm,v 1.369.2.66 2016/11/29 15:19:49 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -823,6 +823,7 @@ sub innerregister { $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; $perms{'mdc'} = &Apache::lonnet::allowed('mdc',$env{'request.course.id'}); + $perms{'cev'} = &Apache::lonnet::allowed('cev',$env{'request.course.id'}); my @privs; if ($env{'request.symb'} ne '') { if ($env{'request.filename'}=~/$LONCAPA::assess_re/) { @@ -864,7 +865,7 @@ sub innerregister { # # This applies to items inside a folder/page modifiable in the course. # - if (($env{'request.symb'}=~/^uploaded/) && ($perms{'mdc'})) { + if (($env{'request.symb'}=~/^uploaded/) && (($perms{'mdc'}) || ($perms{'cev'}))) { my $text = 'Edit Folder'; if (($mapurl =~ /\.page$/) || ($env{'request.symb'}=~ @@ -1401,9 +1402,9 @@ sub get_editbutton { my ($cfile,$home,$switchserver,$forceedit,$forceview,$forcereg) = @_; my $jscall; if (($forceview) && ($env{'form.todocs'})) { - my ($folderpath,$command); + my ($folderpath,$command,$navmap); if ($env{'request.symb'}) { - $folderpath = &Apache::loncommon::symb_to_docspath($env{'request.symb'}); + $folderpath = &Apache::loncommon::symb_to_docspath($env{'request.symb'},\$navmap); } elsif ($env{'form.folderpath'} =~ /^supplemental/) { $folderpath = $env{'form.folderpath'}; $command = '&forcesupplement=1'; @@ -1411,11 +1412,16 @@ sub get_editbutton { $folderpath = &escape(&HTML::Entities::encode(&escape($folderpath),'<>&"')); $jscall = "go('/adm/coursedocs?folderpath=$folderpath$command')"; } else { + my $suppanchor; + if ($env{'form.folderpath'}) { + $suppanchor = $env{'form.anchor'}; + } $jscall = &Apache::lonhtmlcommon::jump_to_editres($cfile,$home,$switchserver, $forceedit,$forcereg,$env{'request.symb'}, &escape($env{'form.folderpath'}), &escape($env{'form.title'}),$env{'form.idx'}, - &escape($env{'form.suppurl'},$env{'form.todocs'})); + &escape($env{'form.suppurl'}),$env{'form.todocs'}, + $suppanchor); } if ($jscall) { my $icon = 'pcstr.png'; @@ -1587,9 +1593,13 @@ sub prepare_functions { ($resurl =~ m{^/adm/$match_domain/$match_username/aboutme$}))) { my @folders=split('&',$env{'form.folderpath'}); if ((@folders > 2) || ($resurl ne '/adm/supplemental')) { + my $suppanchor; + if ($resurl =~ m{^/adm/wrapper/ext/}) { + $suppanchor = $env{'form.anchor'}; + } my $esc_path=&escape(&HTML::Entities::encode(&escape($env{'form.folderpath'}),'<>&"')); &switch('','',7,4,'docs-22x22.png','Edit Folder','parms[_2]', - "location.href='/adm/coursedocs?command=direct&forcesupplement=1&supppath=$esc_path'", + "location.href='/adm/coursedocs?command=direct&forcesupplement=1&supppath=$esc_path&anchor=$suppanchor'", 'Folder/Page Content','','',1); } } @@ -2493,8 +2503,14 @@ sub roles_selector { $include = 1; } if ($include) { + my $rolename; + if ($role =~ m{^cr/$cdom/$cdom\-domainconfig/(\w+)(?:/\w+|$)}) { + $rolename = &mt('Helpdesk [_1]',$1); + } else { + $rolename = &Apache::lonnet::plaintext($role); + } push(@submenu,['javascript:adhocRole('."'$role'".')', - &Apache::lonnet::plaintext($role)]); + $rolename]); } } } @@ -2804,7 +2820,7 @@ sub required_privs { '/adm/parmset' => 'opa,vpa', '/adm/courseprefs' => 'opa,vpa', '/adm/whatsnew' => 'whn', - '/adm/populate' => 'cst', + '/adm/populate' => 'cst,vpa,vcl', '/adm/trackstudent' => 'vsa', '/adm/statistics' => 'mgr,vgr', '/adm/setblock' => 'dcm,vcb',