Diff for /loncom/interface/loncoursegroups.pm between versions 1.126 and 1.127.2.3.2.1

version 1.126, 2014/06/18 16:34:39 version 1.127.2.3.2.1, 2023/09/04 19:14:29
Line 36  use Apache::lonlocal; Line 36  use Apache::lonlocal;
 use Apache::lonnavmaps();  use Apache::lonnavmaps();
 use Apache::longroup();  use Apache::longroup();
 use Apache::portfolio();  use Apache::portfolio();
   use Apache::lonuserutils();
 use Apache::Constants qw(:common :http);  use Apache::Constants qw(:common :http);
   use HTML::Entities;
 use LONCAPA::map();  use LONCAPA::map();
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
Line 135  function changeSort(caller) { Line 137  function changeSort(caller) {
 }  }
 function openGroupRoster(group,status) {  function openGroupRoster(group,status) {
     var url = '/adm/grouproster?';      var url = '/adm/grouproster?';
     url += 'group='+group+'&status='+status+'&ref=popup';      url += 'group='+group+'&status='+status+'&ref=popup';
     var title = 'Group_Membership';      var title = 'Group_Membership';
     var options = 'scrollbars=1,resizable=1,menubar=0';      var options = 'scrollbars=1,resizable=1,menubar=0';
     options += ',width=700,height=600';      options += ',width=700,height=600';
Line 169  sub display_groups { Line 171  sub display_groups {
     my %curr_groups = ();      my %curr_groups = ();
     my %grp_info = ();      my %grp_info = ();
     my %actionlinks = (      my %actionlinks = (
       modify => '<a href="/adm/coursegroups?action=modify&refpage='.        modify   => '/adm/coursegroups?action=modify&refpage='.
                          $env{'form.refpage'}.'&state=pick_task&groupname=',                    $env{'form.refpage'}.'&state=pick_task&groupname=',
       view => '<a href="',        view     => '',
       delete => '<a href="/adm/coursegroups?action=delete&refpage='.        delete   => '/adm/coursegroups?action=delete&refpage='.
                          $env{'form.refpage'}.'&state=verify&groupname=',                    $env{'form.refpage'}.'&state=verify&groupname=',
       reenable => '<a href="/adm/coursegroups?action=reenable&refpage='.        reenable => '/adm/coursegroups?action=reenable&refpage='.
                          $env{'form.refpage'}.'&state=verify&groupname=',                    $env{'form.refpage'}.'&state=verify&groupname=',
     );      );
     my %lt = &Apache::lonlocal::texthash(       my %lt = &Apache::lonlocal::texthash( 
                           modify => 'Modify',                            modify => 'Modify',
Line 226  sub display_groups { Line 228  sub display_groups {
             if (!defined($navmap)) {              if (!defined($navmap)) {
                 $r->print('<div class="LC_error">'.                  $r->print('<div class="LC_error">'.
                           &mt('An error occurred retrieving information about resources in the course.').'<br />'.                            &mt('An error occurred retrieving information about resources in the course.').'<br />'.
                           &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'&orgurl=%2fadm%2fcoursegroups">','</a>').                            &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&amp;newrole='.$env{'request.role'}.'&amp;orgurl=%2fadm%2fcoursegroups">','</a>').
                           '</div>');                            '</div>');
                 return;                  return;
             }              }
Line 249  sub display_groups { Line 251  sub display_groups {
         <th><a href="javascript:changeSort('creator')">$lt{'crea'}</a></th>          <th><a href="javascript:changeSort('creator')">$lt{'crea'}</a></th>
         <th><a href="javascript:changeSort('creation')">$lt{'crtd'}</a></th>          <th><a href="javascript:changeSort('creation')">$lt{'crtd'}</a></th>
         <th><a href="javascript:changeSort('modified')">$lt{'last'}</a></th>          <th><a href="javascript:changeSort('modified')">$lt{'last'}</a></th>
         <th>$lt{'func'}</b></td>          <th>$lt{'func'}</th>
         <th><a href="javascript:changeSort('quota')">$lt{'quot'}</a></th>          <th><a href="javascript:changeSort('quota')">$lt{'quot'}</a></th>
         <th><a href="javascript:changeSort('totalmembers')">$lt{'memb'}</a></th>          <th><a href="javascript:changeSort('totalmembers')">$lt{'memb'}</a></th>
         <th><a href="javascript:changeSort('totalfiles')">$lt{'file'}</a></th>          <th><a href="javascript:changeSort('totalfiles')">$lt{'file'}</a></th>
Line 328  END Line 330  END
                     if (!$functionality) {                      if (!$functionality) {
                         $functionality = &mt('None available');                          $functionality = &mt('None available');
                     }                      }
                     my $link = $actionlinks{$action};                      my $link;
                     if ($action eq 'modify' || $action eq 'delete' ||                       if ($action eq 'modify' || $action eq 'delete' || 
                         $action eq 'reenable') {                          $action eq 'reenable') {
                         $link .= $group;                          $link = '<a href="'.&HTML::Entities::encode($actionlinks{$action}.$group,'<>&"').
                                   '">'.$lt{$action}.'</a>';
                     } else {                      } else {
                         $link .=                           $link =
                             &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap);                              &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,
                         $link .= (($link=~/\?/)?'&amp;':'?').'ref=grouplist';                                                                $view_permission);
                         if (exists($env{'form.refpage'})) {                          if ($link) {
                             $link .= '&amp;refpage='.$env{'form.refpage'};                              $link = '<a href="'.$link;
                               $link .= (($link=~/\?/)?'&amp;':'?').'ref=grouplist';
                               if (exists($env{'form.refpage'})) {
                                   $link .= '&amp;refpage='.$env{'form.refpage'};
                               }
                               $link .= '">'.$lt{$action}.'</a>';
                         }                          }
                     }                      }
                     $link .= '">'.$lt{$action}.'</a>';  
                     if ($action eq 'view') {                       if ($action eq 'view') { 
                         if ($manage_permission) {                           if ($manage_permission) { 
                             $link .= '&nbsp;&nbsp;'.$actionlinks{'modify'}.                              $link .= '&nbsp;&nbsp;<a href="'.
                                       $group.'">'.$lt{'modify'}.'</a>'.                                        &HTML::Entities::encode($actionlinks{'modify'}.$group,'<>&"').
                                      '&nbsp;&nbsp;'.$actionlinks{'delete'}.                                        '">'.$lt{'modify'}.'</a>&nbsp;&nbsp;<a href="'.
                                       $group.'">'.$lt{'delete'}.'</a>';                                        &HTML::Entities::encode($actionlinks{'delete'}.$group,'<>&"').
                                         '">'.$lt{'delete'}.'</a>';
                         }                          }
                     }                      }
                     $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense').                      $r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense').
Line 394  END Line 402  END
     } else {      } else {
         my @coursegroups = split(/:/,$env{'request.course.groups'});          my @coursegroups = split(/:/,$env{'request.course.groups'});
         if (@coursegroups > 0) {          if (@coursegroups > 0) {
               my $numlinks = 0;
             $r->print('<br /><br />');              $r->print('<br /><br />');
             my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);              my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum);
             if (%curr_groups) {              if (%curr_groups) {
Line 401  END Line 410  END
                 if (!defined($navmap)) {                  if (!defined($navmap)) {
                     $r->print('<div class="LC_error">'.                      $r->print('<div class="LC_error">'.
                               &mt('An error occurred retrieving information about resources in the course.').'<br />'.                                &mt('An error occurred retrieving information about resources in the course.').'<br />'.
                               &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'&orgurl=%2fadm%2fcoursegroups">','</a>').                                &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this page.','<a href="/adm/roles?selectrole=1&amp;newrole='.$env{'request.role'}.'&amp;orgurl=%2fadm%2fcoursegroups">','</a>').
                               '</div>');                                '</div>');
                     return;                      return;
                 }                  }
Line 410  END Line 419  END
                                         $curr_groups{$group});                                          $curr_groups{$group});
                     my $description = &unescape(                      my $description = &unescape(
                                         $group_info{description});                                          $group_info{description});
                     my $link =                       my ($link,$hidden) = 
                         &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap).                          &Apache::longroup::get_group_link($cdom,$cnum,$group,$navmap,
                         '&amp;ref=grouplist';                                                            $view_permission);
                     $r->print('<span style="font-size: larger"><a href="'.$link.'">'.$group,'</a></span><br /><small>'.$description.'</small><br /><br />');                      if ($link) {
                           $link .= '&amp;ref=grouplist';
                           $r->print('<span style="font-size: larger"><a href="'.$link.'">'.
                                     $description.'</a></span><br /><br />');
                           $numlinks ++;
                       } elsif ($hidden) {
                           my $numtools = 0;
                           my $refarg = '&amp;ref=grouplist';
                           my $output =
                               &Apache::longroup::display_group_links($r,$env{'form.grade_target'},$group,'view',
                                                                      $refarg,\$numtools,$hidden,%group_info);
                           if ($numtools) {
                               $r->print('<span style="font-size: larger">'.$description.'</a></span>'.
                                         '<br />'.$output.'<br /><br />');
                               $numlinks ++;
                           }
                       }
                 }                  }
             }              }
               if (!$numlinks) {
                   $r->print(
                       '<p class="LC_info">'
                      .&mt('You do not currently have access to any '.$gpterm.'s'
                      .' in this '.lc($crstype).'.')
                      .'</p>'
                   );
               }
         } else {          } else {
             $r->print(              $r->print(
                 '<p class="LC_info">'                  '<p class="LC_info">'
Line 897  function changeSort(caller) { Line 930  function changeSort(caller) {
           faq=>9,bug=>'Instructor Interface',});            faq=>9,bug=>'Instructor Interface',});
         if ($action eq 'modify' || $action eq 'delete') {          if ($action eq 'modify' || $action eq 'delete') {
             &Apache::lonhtmlcommon::add_breadcrumb              &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>"/adm/coursegroups?refpage=cusr&action=$action",              ({href=>"/adm/coursegroups?refpage=cusr&amp;action=$action",
               text=>"Groups",                text=>"Groups",
               faq=>9,bug=>'Instructor Interface',});                faq=>9,bug=>'Instructor Interface',});
         }          }
Line 909  function changeSort(caller) { Line 942  function changeSort(caller) {
         if ($env{'form.refpage'} eq 'grouplist') {          if ($env{'form.refpage'} eq 'grouplist') {
             &Apache::lonhtmlcommon::add_breadcrumb              &Apache::lonhtmlcommon::add_breadcrumb
              ({href=>"/adm/$cdom/$cnum/$env{'form.groupname'}/smppg?ref=grouplist",               ({href=>"/adm/$cdom/$cnum/$env{'form.groupname'}/smppg?ref=grouplist",
                text=>"Group: $description",});                 text=>&mt('Group').": $description",
                  no_mt=>1});
         }          }
     }      }
   
Line 1587  sub group_members { Line 1621  sub group_members {
                          future => 0,                           future => 0,
                        );                         );
     my $totalmembers = 0;      my $totalmembers = 0;
     foreach my $member (keys %memberhash) {      foreach my $member (keys(%memberhash)) {
         $totalmembers ++;          $totalmembers ++;
         my ($end,$start) = split(/:/,$memberhash{$member});          my ($end,$start) = split(/:/,$memberhash{$member});
         unless ($start == -1) {          unless ($start == -1) {
Line 1702  sub groupsettings_options { Line 1736  sub groupsettings_options {
     if ($remnum) {      if ($remnum) {
         $halfnum ++;          $halfnum ++;
     }      }
     my @allfunctions = sort(keys (%{$functions}));      my @allfunctions = sort(keys(%{$functions}));
   
     $r->print(&Apache::lonhtmlcommon::row_title($lt{'func'})      $r->print(&Apache::lonhtmlcommon::row_title($lt{'func'})
              .'<div>'               .'<div>'
Line 1785  sub get_quota_constraints { Line 1819  sub get_quota_constraints {
     my ($crsquota,$freespace,$maxposs);       my ($crsquota,$freespace,$maxposs); 
     $crsquota = $env{'course.'.$env{'request.course.id'}.'.internal.coursequota'};      $crsquota = $env{'course.'.$env{'request.course.id'}.'.internal.coursequota'};
     if ($crsquota eq '') {      if ($crsquota eq '') {
         $crsquota = 20;          my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
           my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
           my $crstype = &Apache::loncommon::course_type();
           my %domdefs = &Apache::lonnet::get_domain_defaults($cdom);
           my %coursehash = (
               'internal.coursecode' => $env{'course.'.$env{'request.course.id'}.'.internal.coursecode'},
               'internal.textbook'   => $env{'course.'.$env{'request.course.id'}.'.internal.textbook'},
           );
           my %staticdefaults = (
                              coursequota   => 20,
           );
           my $quotatype = &Apache::lonuserutils::get_extended_type($cdom,$cnum,$crstype,\%coursehash);
           if ($crsquota eq '') {
               $crsquota = $domdefs{$quotatype.'coursequota'};
               if ($crsquota eq '') {
                   $crsquota = $staticdefaults{'coursequota'};
               }
           }
     }      }
     $freespace = $crsquota - &Apache::longroup::sum_quotas();      $freespace = $crsquota - &Apache::longroup::sum_quotas();
     if ($action eq 'create') {      if ($action eq 'create') {
Line 3756  sub modify_menu { Line 3807  sub modify_menu {
  items => [   items => [
   
           { linktext => "Modify default $gpterm settings",            { linktext => "Modify default $gpterm settings",
             url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_settings&branch=settings',              url => '/adm/coursegroups?action=modify&amp;refpage='.$env{'form.refpage'}.'&amp;groupname='.$groupname.'&amp;state=change_settings&amp;branch=settings',
             icon => 'grp_settings.png',              icon => 'grp_settings.png',
             alttext => "Modify default $gpterm settings",              alttext => "Modify default $gpterm settings",
             permission => '1',              permission => '1',
             help => 'Course_Modify_Group',                          help => 'Course_Modify_Group',            
             },              },
           { linktext => 'Modify access, tools and privileges for members',            { linktext => 'Modify access, tools and privileges for members',
             url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=change_members&branch=members',              url => '/adm/coursegroups?action=modify&amp;refpage='.$env{'form.refpage'}.'&amp;groupname='.$groupname.'&amp;state=change_members&amp;branch=members',
             icon => 'grp_tools.png',              icon => 'grp_tools.png',
             alttext => 'Modify access, tools and privileges for members',              alttext => 'Modify access, tools and privileges for members',
             permission => '1',              permission => '1',
             help => 'Course_Modify_Group_Membership',              help => 'Course_Modify_Group_Membership',
             },              },
           { linktext => "Add member(s) to the $gpterm",            { linktext => "Add member(s) to the $gpterm",
             url => '/adm/coursegroups?action=modify&refpage='.$env{'form.refpage'}.'&groupname='.$groupname.'&state=add_members&branch=adds',              url => '/adm/coursegroups?action=modify&amp;refpage='.$env{'form.refpage'}.'&amp;groupname='.$groupname.'&amp;state=add_members&amp;branch=adds',
             icon => 'grp_add.png',              icon => 'grp_add.png',
             alttext =>  "Add member(s) to the $gpterm",              alttext =>  "Add member(s) to the $gpterm",
             permission => '1',              permission => '1',

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


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