Diff for /loncom/interface/lonsyllabus.pm between versions 1.126 and 1.127

version 1.126, 2013/05/15 18:45:29 version 1.127, 2013/05/16 20:03:51
Line 332  sub handler { Line 332  sub handler {
             }              }
             &Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box',              &Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box',
                                                        'box_000_showpeople',$display);                                                         'box_000_showpeople',$display);
             $r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed));              $r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,\%syllabus));
             &Apache::lontemplate::print_end_template($r);              &Apache::lontemplate::print_end_template($r);
         } else {          } else {
             unless ($hidepersonnel) {              unless ($hidepersonnel) {
                 &Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box');                  &Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box');
                 $r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed));                    $r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,\%syllabus));  
                 &Apache::lontemplate::print_end_template($r);                  &Apache::lontemplate::print_end_template($r);
             }              }
         }          }
     } else {      } else {
         unless ($hidepersonnel) {          unless ($hidepersonnel) {
             $r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed));              $r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,%syllabus));
         }          }
     }      }
 # -------------------------------------------------------------- Announcements?  # -------------------------------------------------------------- Announcements?
Line 940  sub fields_check_uncheck { Line 940  sub fields_check_uncheck {
 }  }
   
 sub get_personnel {  sub get_personnel {
     my ($r,$target,$cdom,$cnum,$allowed) = @_;      my ($r,$target,$cdom,$cnum,$allowed,$crstype,$syllabus) = @_;
       my (%hiddenroles,%hiddenusers);
       if (ref($syllabus) eq 'HASH') {
           if (ref($syllabus->{'personnel'}) eq 'HASH') {
               if ($syllabus->{'personnel'}{'hiderole'}) {
                   map { $hiddenroles{$_} = 1; } split(/,/,$syllabus->{'personnel'}{'hiderole'});
               }
               if ($syllabus->{'personnel'}{'hideuser'}) {
                   map { $hiddenusers{$_} = 1; } split(/,/,$syllabus->{'personnel'}{'hideuser'});
               }
           }
       }
     my $output;      my $output;
     my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum);      my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum,1);
     if ($target ne 'tex') {      if ($target ne 'tex') {
         $r->print(&Apache::lonhtmlcommon::start_pick_box());          if ($allowed) {
               $r->print(&Apache::loncommon::start_data_table().
                         &Apache::loncommon::start_data_table_header_row().
                         '<th>'.&mt('Role hidden?').'</th><th>'.&mt('Role').'</th>'.
                         '<th>'.&mt('Personnel (hidden if checked)').'</th>'.
                         &Apache::loncommon::end_data_table_header_row());
           } else {
               $r->print(&Apache::lonhtmlcommon::start_pick_box());
           }
     } else {      } else {
         $r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline');          $r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline');
     }      }
     my @personnel=sort(keys(%coursepersonnel));      my @personnel=sort(keys(%coursepersonnel));
     my $lastpers=$personnel[$#personnel];      my $lastpers=$personnel[$#personnel];
     foreach my $element (@personnel) {      foreach my $element (@personnel) {
           unless ($allowed) {
               next if ($hiddenroles{$element}) 
           }
           my ($role,$sec);
           if ($element =~ /:/) {
               ($role,$sec) = split(/:/,$element);
           } else {
               $role = $element;
           }
           my $roletext = &Apache::lonnet::plaintext($role,$crstype);
           if ($sec) {
               $roletext .=' ('.&Apache::lonlocal::mt('Section [_1]',$sec).')';
           }
         if ($target ne 'tex') {          if ($target ne 'tex') {
             $r->print(&Apache::lonhtmlcommon::row_title($element));              if ($allowed) {
                   my $checked;
                   if ($hiddenroles{$element}) {
                       $checked = ' checked="checked"';
                   }
                   $r->print(&Apache::loncommon::start_data_table_row().
                             '<td>'.
                             '<input type="checkbox" name="hiderole" value="'.$element.'" '.
                             $checked.' />'.
                             '</td><td>'.$roletext.'</td><td>');
               } else {
                   $r->print(&Apache::lonhtmlcommon::row_title($roletext));
               }
         } else {          } else {
             $r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$element).' & ');              $r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$roletext).' & ');
         }          }
         my @coursepersonlist;          my @coursepersonlist;
         foreach my $user (split(/\,/,$coursepersonnel{$element})) {          foreach my $user (split(/\,/,$coursepersonnel{$element})) {
             my ($puname,$pudom)=split(/\:/,$user);              my ($puname,$pudom)=split(/\:/,$user);
             if ($target ne 'tex') {              if ($target ne 'tex') {
                 my $courseperson = &Apache::loncommon::plainname($puname,$pudom);                  my $courseperson = &Apache::loncommon::plainname($puname,$pudom);
                 if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') ||                  my $checked;
                     ($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) {                  if ($hiddenusers{$element.'&'.$puname.':'.$pudom}) {
                     push(@coursepersonlist,$courseperson);                      $checked = ' checked="checked"';
                   }
                   if ($allowed) {
                       my $item = '<span class="LC_nobreak"><label>'.
                                  '<input type="checkbox" name="hideuser" value="'.$element.'&'.$puname.':'.$pudom.'"'.$checked.' />'.
                                  &Apache::loncommon::aboutmewrapper($courseperson
   ,
                                                  $puname,$pudom).
                                  '</label>'.('&nbsp;'x2).'</span> ';
                       push(@coursepersonlist,$item);
   
                 } else {                  } else {
                     push(@coursepersonlist,&Apache::loncommon::aboutmewrapper($courseperson,                      next if ($hiddenusers{$element.'&'.$puname.':'.$pudom});
                               $puname,$pudom));                      if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') ||
                           ($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) {
                           push(@coursepersonlist,$courseperson);
                       } else {
                           push(@coursepersonlist,&Apache::loncommon::aboutmewrapper($courseperson,
                                                  $puname,$pudom));
                       }
                 }                  }
             } else {              } else {
                 push(@coursepersonlist,&Apache::loncommon::plainname($puname,                  push(@coursepersonlist,&Apache::loncommon::plainname($puname,
                               $pudom).' ');                                $pudom).' ');
             }              }
         }          }
         $r->print(join(", ",@coursepersonlist));          if ($allowed) {
               $r->print(join('',@coursepersonlist));
           } else {
               $r->print(join(', ',@coursepersonlist));
           }
         if ($target ne 'tex') {          if ($target ne 'tex') {
             my $lastclose=$element eq $lastpers?1:0;              if ($allowed) {
             $r->print(&Apache::lonhtmlcommon::row_closure($lastclose));                  $r->print(&Apache::loncommon::end_data_table_row());
               } else {
                   my $lastclose=$element eq $lastpers?1:0;
                   $r->print(&Apache::lonhtmlcommon::row_closure($lastclose));
               }
         } else {          } else {
             $r->print('\\\\ \hline');              $r->print('\\\\ \hline');
         }          }
     }      }
     if ($target ne 'tex') {      if ($target ne 'tex') {
         $r->print(&Apache::lonhtmlcommon::end_pick_box());          if ($allowed) {
               $r->print(&Apache::loncommon::end_data_table());
           } else {
               $r->print(&Apache::lonhtmlcommon::end_pick_box());
           }
     } else {      } else {
         $r->print('\end{tabular}\\\\');          $r->print('\end{tabular}\\\\');
     }      }
Line 1030  sub save_changes { Line 1102  sub save_changes {
                     my ($prefix) = split(/_/,$field);                      my ($prefix) = split(/_/,$field);
                     $syllabus->{'uploaded.fields'} .= $prefix.',';                      $syllabus->{'uploaded.fields'} .= $prefix.',';
                 }                  }
                   if ($field eq '000_showpeople') {
                       my @hideusers = &Apache::loncommon::get_env_multiple('form.hideuser');
                       my @hideroles = &Apache::loncommon::get_env_multiple('form.hiderole');
                       my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum,1);
                       my %personnel;
                       foreach my $key (keys(%coursepersonnel)) {
                           map { $personnel{$key}{$_} = 1; } split(/,/,$coursepersonnel{$key});
                       }
                       %{$syllabus->{'personnel'}} = ();
                       $syllabus->{'personnel'}{'hideuser'} = '';
                       $syllabus->{'personnel'}{'hiderole'} = '';
                       foreach my $role (@hideroles) {
                           if (exists($personnel{$role})) {
                               $syllabus->{'personnel'}{'hiderole'} .= $role.',';
                           }
                       }
                       foreach my $item (@hideusers) {
                           my ($role,$user) = split(/\&/,$item);
                           if (ref($personnel{$role}) eq 'HASH') {
                               if ($personnel{$role}{$user}) {
                                   $syllabus->{'personnel'}{'hideuser'} .= $item.',';
                               }
                           }
                       }
                       $syllabus->{'personnel'}{'hideuser'} =~ s/,$//;
                       $syllabus->{'personnel'}{'hiderole'} =~ s/,$//;
                   }
             }              }
             $syllabus->{'uploaded.fields'} =~ s/,$//;              $syllabus->{'uploaded.fields'} =~ s/,$//;
         }          }

Removed from v.1.126  
changed lines
  Added in v.1.127


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