Diff for /loncom/interface/lonmenu.pm between versions 1.369.2.83.2.10 and 1.369.2.83.2.15

version 1.369.2.83.2.10, 2023/09/06 16:05:23 version 1.369.2.83.2.15, 2024/01/02 08:55:01
Line 370  sub primary_menu { Line 370  sub primary_menu {
                              ($item->[2] eq 'blog')) &&                                ($item->[2] eq 'blog')) && 
                              (!&Apache::lonnet::usertools_access('','',$item->[2],                               (!&Apache::lonnet::usertools_access('','',$item->[2],
                                                            undef,'tools')));                                                             undef,'tools')));
                       if (($item->[2] eq 'browsepub') && ($item->[0] eq '/res/')) {
                           if ($env{'request.role'} =~ /^au\./) {
                               $item->[0] .= $env{'request.role.domain'}.'/?launch=1';
                           } elsif ($env{'request.role'} =~ m{^ca\./($match_domain)/($match_username)$}) {
                               $item->[0] .= $1.'/'.$2.'/?launch=1';
                           } elsif (&Apache::lonnet::allowed('bre',$env{'user.domain'})) {
                               $item->[0] .= $env{'user.domain'}.'/?launch=1';
                           } elsif (&Apache::lonnet::allowed('bro','/res/')) {
                               $item->[0] .= '?launch=1';
                           } else {
                               next;
                           }
                       }
                     if ($env{'request.course.id'} && $menucoll) {                      if ($env{'request.course.id'} && $menucoll) {
                         next if ($item->[3]) && (!$menuopts{$item->[3]});                          next if ($item->[3]) && (!$menuopts{$item->[3]});
                     }                      }
Line 1009  sub innerregister { Line 1022  sub innerregister {
                     $$showncrumbsref = 1;                      $$showncrumbsref = 1;
                 }                  }
                 return $trail;                  return $trail;
               } elsif (($resurl eq '/public'.$courseurl.'/syllabus') &&
                        ($env{'form.folderpath'})) {
                   if ($env{'form.title'}) {
                       $title = $env{'form.title'};
                   } else {
                       $title = 'Syllabus';
                   }
                   &prepare_functions($resurl,$forcereg,$group,undef,undef,1,$hostname);
                   $title = &HTML::Entities::encode($title,'\'"<>&');
                   my ($trail) =
                       &Apache::lonhtmlcommon::docs_breadcrumbs(undef,$crstype,undef,$title,1,1);
                   return $trail;
             }              }
             unless ($env{'request.state'} eq 'construct') {              unless ($env{'request.state'} eq 'construct') {
                 &Apache::lonhtmlcommon::clear_breadcrumbs();                  &Apache::lonhtmlcommon::clear_breadcrumbs();
Line 1125  sub innerregister { Line 1150  sub innerregister {
         if (($env{'request.symb'} ne '') &&          if (($env{'request.symb'} ne '') &&
             ($env{'request.filename'}=~/$LONCAPA::assess_re/) &&              ($env{'request.filename'}=~/$LONCAPA::assess_re/) &&
             (($perms{'mgr'}) || ($perms{'vgr'}))) {              (($perms{'mgr'}) || ($perms{'vgr'}))) {
             my ($viewas,$text,$change,$visibility,$vuname,$vudom,$vid,$leftvis,$defdom,$righticon);              my ($viewas,$text,$change,$visibility,$vuname,$vudom,$vid,$leftvis,$defdom,
                   $domselector,$righticon);
             my %lt = &Apache::lonlocal::texthash(              my %lt = &Apache::lonlocal::texthash(
                                                  view => 'View',                                                   view => 'View',
                                                  upda => 'Update',                                                   upda => 'Update',
             );              );
               my $possdomstr = $env{'course.'.$env{'request.course.id'}.'.internal.userdomains'};
               if ($possdomstr =~ /,/) {
                   my @possdoms = split(/,/,$possdomstr);
                   if ($env{'request.user_in_effect'} =~ /^$match_username:($match_domain)$/) {
                       $defdom = $1;
                   } elsif (grep(/^\Q$cdom\E$/,@possdoms)) {
                       $defdom = $cdom;
                   } elsif (&Apache::lonnet::domain($possdoms[0]) ne '') {
                       $defdom = $possdoms[0];
                   }
                   $domselector = &Apache::loncommon::select_dom_form($defdom,'vudom','','','',\@possdoms);
               } elsif (($possdomstr ne '') && (&Apache::lonnet::domain($possdomstr) ne '')) {
                   if ($env{'request.user_in_effect'} =~ /^$match_username:($match_domain)$/) {
                       $defdom = $1;
                   } else {
                       $defdom = $possdomstr;
                   }
               }
             if ($env{'request.user_in_effect'} =~ /^($match_username):($match_domain)$/) {              if ($env{'request.user_in_effect'} =~ /^($match_username):($match_domain)$/) {
                 ($vuname,$vudom) = ($1,$2);                  ($vuname,$vudom) = ($1,$2);
                 unless (&Apache::lonnet::is_advanced_user($vudom,$vuname)) {                  unless (&Apache::lonnet::is_advanced_user($vudom,$vuname)) {
Line 1147  sub innerregister { Line 1191  sub innerregister {
                 $change = 'on';                  $change = 'on';
                 $visibility = 'none';                  $visibility = 'none';
                 $leftvis = 'inline';                  $leftvis = 'inline';
                 $defdom = $cdom;                  if ($defdom eq '') {
                       $defdom = $cdom;
                   }
             }              }
             my $sellink = &Apache::loncommon::selectstudent_link('userview','vuname','vudom');              my $sellink = &Apache::loncommon::selectstudent_link('userview','vuname','vudom','','','vuidentifier');
             my $selscript=&Apache::loncommon::studentbrowser_javascript();              my $selscript=&Apache::loncommon::studentbrowser_javascript();
             my $shownsymb = &HTML::Entities::encode(&Apache::lonenc::check_encrypt($env{'request.symb'}),'<>&"');              my $shownsymb = &HTML::Entities::encode(&Apache::lonenc::check_encrypt($env{'request.symb'}),'<>&"');
             my $input = &mt('User: [_1] or ID: [_2] at: [_3]',              my $input;
                             '<input name="vuname" type="text" size="8" value="'.$vuname.'" />',              my @items = (
                             '<input name="vid" type="text" size="8" value="'.$vid.'" />',                           '<label><input type="radio" name="vuidentifier" value="uname" checked="checked" onclick="javascript:toggleIdentifier(this.form);" />',
                             &Apache::loncommon::select_dom_form($defdom,'vudom')).                           '</label><input name="vuname" type="text" size="6" value="'.$vuname.'" id="LC_vuname" />',
                             '<input name="LC_viewas" type="hidden" value="'.$viewas.'" />',                           '<label><input type="radio" name="vuidentifier" value="uid" onclick="javascript:toggleIdentifier(this.form);" />',
                             '<input name="symb" type="hidden" value="'.$shownsymb.'" />';                           '</label><input name="vid" type="hidden" size="6" value="'.$vid.'" id="LC_vid" />'
                           );
               if ($domselector) {
                   push(@items,$domselector);
                   $input = &mt('[_1]User:[_2] or [_3]ID:[_4] at [_5] | ',@items);
               } else {
                   $input = &mt('[_1]Username:[_2] or [_3]ID:[_4] | ',@items).
                            '<input name="vudom" type="hidden" value="'.$defdom.'" />';
               }
               $input .= '<input name="LC_viewas" type="hidden" value="'.$viewas.'" />',
                         '<input name="symb" type="hidden" value="'.$shownsymb.'" />';
             my $chooser = <<END;              my $chooser = <<END;
 $selscript  $selscript
 <a href="javascript:toggleViewAsUser('$change');" class="LC_menubuttons_link">  <a href="javascript:toggleViewAsUser('$change');" class="LC_menubuttons_link">
Line 1178  $sellink Line 1234  $sellink
 END  END
             &switch('','',7,5,'viewuser.png','View As','user[_1]',              &switch('','',7,5,'viewuser.png','View As','user[_1]',
                     'toggleViewAsUser('."'$change'".')',                      'toggleViewAsUser('."'$change'".')',
                     'View As','','',$chooser);                      'View As','','','',$chooser);
         }          }
 # End view as user check  # End view as user check
   
Line 1213  s&6&1&list.png&Directory&dir[_1]&golist( Line 1269  s&6&1&list.png&Directory&dir[_1]&golist(
 s&6&2&rtrv.png&Retrieve&version[_1]&gocstr('/adm/retrieve','/priv/$udom/$uname/$cleandisfn')&Retrieve old version  s&6&2&rtrv.png&Retrieve&version[_1]&gocstr('/adm/retrieve','/priv/$udom/$uname/$cleandisfn')&Retrieve old version
 s&6&3&pub.png&Publish&resource[_3]&gocstr('/adm/publish','/priv/$udom/$uname/$cleandisfn')&Publish this resource  s&6&3&pub.png&Publish&resource[_3]&gocstr('/adm/publish','/priv/$udom/$uname/$cleandisfn')&Publish this resource
 s&7&1&del.png&Delete&resource[_2]&gocstr('/adm/cfile?action=delete','/priv/$udom/$uname/$cleandisfn')&Delete this resource  s&7&1&del.png&Delete&resource[_2]&gocstr('/adm/cfile?action=delete','/priv/$udom/$uname/$cleandisfn')&Delete this resource
   ENDMENUITEMS
   
   #
   # Print only makes sense for certain mime types
   #
                   if ($thisdisfn=~/\.(xml|html|htm|xhtml|xhtm|tex)$/ || $thisdisfn=~/$LONCAPA::assess_re/) {
                       $menuitems .= (<<ENDMENUITEMS);
 s&7&2&prt.png&Print&printout[_1]&gocstr('/adm/printout','/priv/$udom/$uname/$cleandisfn')&Prepare a printable document  s&7&2&prt.png&Print&printout[_1]&gocstr('/adm/printout','/priv/$udom/$uname/$cleandisfn')&Prepare a printable document
 ENDMENUITEMS  ENDMENUITEMS
                   }
                 unless ($noremote) {                  unless ($noremote) {
                     $cstritems = $menuitems;                      $cstritems = $menuitems;
                     undef($menuitems);                      undef($menuitems);
Line 2144  sub switch { Line 2208  sub switch {
         } else {          } else {
             $inlineremote[$idx] =              $inlineremote[$idx] =
        '<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic.         '<a title="'.$desc.'" class="LC_menubuttons_link" href="javascript:'.$act.';">'.$pic.
        '<span class="LC_menubuttons_inline_text">'.$top.'&nbsp;</span></a>';         '<span class="LC_menubuttons_inline_text">'.$top.'&nbsp;</span></a>'.$form;
         }          }
     }      }
     return '';      return '';
Line 2727  sub view_as_js { Line 2791  sub view_as_js {
     return <<"END";      return <<"END";
   
 function toggleViewAsUser(change) {  function toggleViewAsUser(change) {
     var seluserid = document.getElementById('LC_selectuser');      if (document.getElementById('LC_selectuser')) {
     var currstyle = seluserid.style.display;          var seluserid = document.getElementById('LC_selectuser');
     if (change == 'off') {          var currstyle = seluserid.style.display;
         document.userview.elements['LC_viewas'].value = '';          if (change == 'off') {
         document.userview.elements['vuname'].value = '';              document.userview.elements['LC_viewas'].value = '';
         document.userview.elements['vid'].value = '';              document.userview.elements['vuname'].value = '';
         document.userview.submit();              document.userview.elements['vid'].value = '';
         return;              document.userview.submit();
     }              return;
     if (currstyle == 'inline') {          }
         seluserid.style.display = 'none';          if ((document.getElementById('usexpand')) && (document.getElementById('uscollapse'))) {
         document.getElementById('usexpand').innerHTML='&#9658;&nbsp;';              if (currstyle == 'inline') {
         document.getElementById('uscollapse').innerHTML='';                  seluserid.style.display = 'none';
     } else {                  document.getElementById('usexpand').innerHTML='&#9658;&nbsp;';
         seluserid.style.display = 'inline';                  document.getElementById('uscollapse').innerHTML='';
         document.getElementById('usexpand').innerHTML='';              } else {
         document.getElementById('uscollapse').innerHTML='&#9668;&nbsp;';                  seluserid.style.display = 'inline';
                   document.getElementById('usexpand').innerHTML='';
                   document.getElementById('uscollapse').innerHTML='&#9668;&nbsp;';
                   toggleIdentifier(document.userview);
               }
           }
     }      }
     return;      return;
 }  }
Line 2751  function toggleViewAsUser(change) { Line 2820  function toggleViewAsUser(change) {
 function validCourseUser(form,change) {  function validCourseUser(form,change) {
     var possuname = form.elements['vuname'].value;      var possuname = form.elements['vuname'].value;
     var possuid = form.elements['vid'].value;      var possuid = form.elements['vid'].value;
     var possudom = form.elements['vudom'].options[form.elements['vudom'].selectedIndex].value;      var domelem = form.elements['vudom'];
       var possudom = '';
       if ((domelem.tagName === 'INPUT') && ((domelem.type === 'text') || (domelem.type === 'hidden'))) {
           possudom = domelem.value;
       } else if (domelem.tagName === 'SELECT') {
           possudom = domelem.options[domelem.selectedIndex].value;
       }
     if ((possuname == '') && (possuid == '')) {      if ((possuname == '') && (possuid == '')) {
         if (change == 'off') {          if (change == 'off') {
             form.elements['LC_viewas'].value = '';              form.elements['LC_viewas'].value = '';
Line 2787  function validCourseUser(form,change) { Line 2862  function validCourseUser(form,change) {
     return false;      return false;
 }  }
   
   function toggleIdentifier(form) {
       if ((document.getElementById('LC_vuname')) && (document.getElementById('LC_vid'))) {
           var radioelem = form.elements['vuidentifier'];
           if (radioelem.length > 0) {
               var i;
               for (i=0; i<radioelem.length; i++) {
                   if (radioelem[i].checked == true) {
                       if (radioelem[i].value == 'uname') {
                           document.getElementById('LC_vuname').type = 'text';
                           document.getElementById('LC_vid').type = 'hidden';
                           document.getElementById('LC_vid').value = '';
                       } else {
                           document.getElementById('LC_vuname').type = 'hidden';
                           document.getElementById('LC_vuname').value = '';
                           document.getElementById('LC_vid').type = 'text';
                       }
                       break;
                   }
               }
           }
       }
       return;
   }
   
 END  END
 }  }
   

Removed from v.1.369.2.83.2.10  
changed lines
  Added in v.1.369.2.83.2.15


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>