Diff for /loncom/interface/longroup.pm between versions 1.26 and 1.30

version 1.26, 2010/09/26 01:57:21 version 1.30, 2016/02/26 21:44:39
Line 218  for the course is included amongst the u Line 218  for the course is included amongst the u
 and would trigger membership in teh same group(s)   and would trigger membership in teh same group(s) 
   
 If role is being added, will add any group memberships specified  If role is being added, will add any group memberships specified
 for auto-group population, unless use is already a group member.  for auto-group population, unless user is already a group member.
 Uses default group privileges and default start and end group access  Uses default group privileges and default start and end group access
 times.  times.
   
Line 252  sub group_changes { Line 252  sub group_changes {
     } else {      } else {
         $cid = $url;          $cid = $url;
     }      }
     my $courseid = $cid;  
     $courseid =~ s|^/||;  
     $courseid =~ s|/|_|;  
     my %crshash=&Apache::lonnet::coursedescription($cid);      my %crshash=&Apache::lonnet::coursedescription($cid);
     $cdom = $crshash{'domain'};      $cdom = $crshash{'domain'};
     $cnum = $crshash{'num'};      $cnum = $crshash{'num'};
Line 291  sub group_changes { Line 288  sub group_changes {
         }          }
        if (@changegroups > 0) {         if (@changegroups > 0) {
             my %currpriv;              my %currpriv;
             my $extra = &Apache::lonnet::freeze_escape({'skipcheck' => 1});              my %roleshash = &Apache::lonnet::dump('roles',$udom,$uname,$cid);
             my %roleshash = &Apache::lonnet::dump('roles',$udom,$uname,$cid,'.',undef,$extra);      if (keys(%roleshash) > 0) {
     if (my $tmp = &Apache::lonnet::error(%roleshash)) {  
                 &Apache::lonnet::logthis('Error retrieving roles: '.$tmp.  
                                          ' for '.$uname.':'.$udom);  
             } else {  
                 my $group_privs = '';                  my $group_privs = '';
                 foreach my $group (@changegroups) {                  foreach my $group (@changegroups) {
                     if ($chgtype eq 'add') {                      if ($chgtype eq 'add') {
Line 690  sub get_group_bbinfo { Line 683  sub get_group_bbinfo {
 ###############################################  ###############################################
   
 sub get_group_link {  sub get_group_link {
     my ($cdom,$cnum,$group,$navmap) = @_;      my ($cdom,$cnum,$group,$navmap,$view_permission,$refarg) = @_;
     if (ref($navmap)) {      if (ref($navmap)) {
         my $symb = 'uploaded/'.$cdom.'/'.$cnum.'/group_folder_'.$group.'.sequence___1___adm/'.$cdom.'/'.$cnum.'/'.$group.'/smppg';          my $map = "uploaded/$cdom/$cnum/group_folder_"."$group.sequence";
           my $mapres = $navmap->getResourceByUrl("/$map");
           my $hidden;
           if (ref($mapres)) {
               if ((!$viewpermission) && ($mapres->randomout())) {
                   $hidden = 1;
               }
           }
           my $url = "adm/$cdom/$cnum/$group/smppg";
           my $idx = '1';
           my $symb = $map.'___'.$idx.'___'.$url;
         my $res = $navmap->getBySymb($symb);          my $res = $navmap->getBySymb($symb);
           $url = "/$url";
           $map = "/$map";
         my $link;          my $link;
         if (ref($res)) {          if (ref($res)) {
             $link = $res->link();              if ((!$view_permission) && ($res->randomout())) {
             $link .= (($link=~/\?/)?'&':'?').'symb='.$res->shown_symb();                  $hidden = 1;
               } else {
                   $hidden = 0;
                   if ($refarg) {
                       $link = $url.'?'.$refarg;
                   } else {
                       $link = $res->link();
                       $link .= (($link=~/\?/)?'&':'?').'symb='.$res->shown_symb();
                   }
               }
           } elsif (&Apache::lonnet::is_on_map($url)) {
               unless ($hidden) {
                   $link = $url;
                   if ($refarg) {
                       $link = $url.'?'.$refarg;
                   }
               }
           }
           if (wantarray) {
               return ($link,$hidden);
         } else {          } else {
             $link = '/adm/'.$cdom.'/'.$cnum.'/'.$group.'/smppg';              return $link;
         }          }
         return $link;   
     }      }
     return;      return;
 }  }
   
 ###############################################  ###############################################
   
   sub display_group_links {
       my ($r,$target,$group,$context,$refarg,$numtoolsref,$hidehdr,%groupinfo) = @_;
       my @available = ();
       my %menu = ();
       %{$menu{'email'}} = (
                           text => 'Group Message',
                           href => '/adm/email?compose=group&group='.$group.
                                   $refarg,
                         );
       %{$menu{'discussion'}} = (
                           text => 'Discussion Boards',
                           href => '/adm/groupboards?group='.$group.$refarg,
                         );
       %{$menu{'chat'}} = (
                           text => 'Group Chat Room',
                           href => "javascript:group_chat('$group')",
                         );
       %{$menu{'files'}} = (
                           text => 'Group Portfolio',
                           href => '/adm/coursegrp_portfolio?group='.$group.
                                   $refarg,
                         );
       %{$menu{'roster'}} = (
                           text => 'Membership Roster',
                           href => '/adm/grouproster?group='.$group.$refarg,
                         );
       foreach my $tool (sort(keys(%menu))) {
           if ($groupinfo{functions}{$tool} eq 'on') {
               push(@available,$tool);
           }
       }
       my $output = '';
       if (ref($numtoolsref) eq 'SCALAR') {
           $$numtoolsref = scalar(@available);
       }
       if (@available > 0) {
           if ($target eq 'tex') {
               $output = '<table cellspacing="4" cellpadding="4">';
           } else {
               $output = &Apache::loncommon::start_data_table();
           }
           foreach my $tool (@available) {
               if ($target eq 'tex') {
                   $output .= '<tr><td>'.&mt($menu{$tool}{text}).'</td></tr>';
               } else {
                   $output .= &Apache::loncommon::start_data_table_row()
                             .'<td><a href="'.$menu{$tool}{href}.'">'
                             .&mt($menu{$tool}{text}).'</a></td>'
                             .&Apache::loncommon::end_data_table_row();
               }
           }
           if ($target eq 'tex') {
               $output .= '</table>';
           } else {
               $output .= &Apache::loncommon::end_data_table();
           }
           if ($target eq 'tex') {
               $output = &Apache::lonxml::xmlparse($r,'tex',&mt('Available functions').'<br /><br />'.$output);
           } else {
               unless ($hidehdr) {
                   $output = '<h3>'.&mt('Available Group Tools').'</h3>'.$output;
               }
           }
       } else {
           if ($context eq 'edit') {
               $output = &mt('No group functionality.');
           } else {
               $output = &mt('No group functionality (e.g., e-mail, discussion, chat room or file upload) is currently available to you in this group: [_1].',
                         '<b>'.&unescape($groupinfo{'description'}).'</b>');
           }
           if ($target eq 'tex') {
               $output = &Apache::lonxml::xmlparse($r,'tex',$output);
           }
       }
       return $output;
   }
   
 1;  1;
   

Removed from v.1.26  
changed lines
  Added in v.1.30


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