--- loncom/interface/loncoursegroups.pm 2006/11/20 23:49:49 1.64 +++ loncom/interface/loncoursegroups.pm 2008/12/16 23:19:19 1.80.2.2 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: loncoursegroups.pm,v 1.64 2006/11/20 23:49:49 raeburn Exp $ +# $Id: loncoursegroups.pm,v 1.80.2.2 2008/12/16 23:19:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -92,13 +92,13 @@ sub handler { my $action = $env{'form.action'}; my $state = $env{'form.state'}; - if ((!defined($action)) || ($action eq 'view') || ($action eq 'modify') || ($action eq 'delete')) { + if ((!defined($action)) || ($action eq 'view') || ($action eq 'modify') || ($action eq 'delete') || ($action eq 'reenable')) { if (!defined($state)) { $state = 'view'; } } if ($action eq 'create' || $action eq 'modify' || $action eq 'view' || - $action eq 'delete') { + $action eq 'delete' || $action eq 'reenable') { if ($view_permission || $manage_permission) { if ($state eq 'view') { &print_main_menu($r,$cdom,$cnum,\%functions,\%idx, @@ -111,8 +111,10 @@ sub handler { $crstype); } } else { - $r->print(&mt('You do not have [_1] administration '. - 'privileges in this [_2]',$gpterm,lc($crstype))); + $r->print('
' + .&mt('You do not have '.$gpterm.' administration ' + .'privileges in this '.lc($crstype).'.') + .'
'); } } else { &print_main_menu($r,$cdom,$cnum,\%functions,\%idx,$view_permission, @@ -140,15 +142,19 @@ function openGroupRoster(group,status) { rosterbrowser.focus(); }\n|; $r->print(&header('Groups',$jscript,$action,$state)); - if ($env{'form.refpage'} eq 'enrl') { + if ($env{'form.refpage'} eq 'cusr') { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/dropadd", - text=>"Enrollment Manager"}); + ({href=>"/adm/createuser", + text=>"User Management"}); } &Apache::lonhtmlcommon::add_breadcrumb ({href=>"/adm/coursegroups", text=>"Groups"}); - $r->print(&Apache::lonhtmlcommon::breadcrumbs('Groups')); + my $helpitem; + if ($manage_permission) { + $helpitem = 'Creating_Groups'; + } + $r->print(&Apache::lonhtmlcommon::breadcrumbs('Groups',$helpitem)); &display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission, $manage_permission,$action,$state,$gpterm,$ucgpterm, $crstype); @@ -167,11 +173,14 @@ sub display_groups { view => ' ''.$lt{'redg'}.''; + } + } + } + my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,undef, + $status); + if (%curr_groups) { if ($manage_permission) { - if (!exists($env{'form.refpage'})) { - $r->print('
'.$lt{'crng'}.''); + if ($action ne 'reenable') { + $r->print('
'.$lt{'crng'}.''); + } + if ($reenable_link) { + $r->print($reenable_link); } } $r->print('

'); @@ -229,13 +256,13 @@ END my $members_result = &group_members($cdom,$cnum,$group, \%grp_info); my $port_path = '/userfiles/groups/'.$group.'/portfolio'; - my $port_dir = &Apache::loncommon::propath($cdom,$cnum).$port_path; my $totaldirs = 0; my $totalfiles = 0; - &group_files($group,$port_dir,\$totalfiles,\$totaldirs); + &group_files($group,$port_path,\$totalfiles,\$totaldirs); $grp_info{$group}{'totalfiles'} = $totalfiles; $grp_info{$group}{'totaldirs'} = $totaldirs; - my $diskuse = &Apache::lonnet::diskusage($cdom,$cnum,$port_dir); + my $getpropath = 1; + my $diskuse = &Apache::lonnet::diskusage($cdom,$cnum,$port_path, $getpropath); if ($grp_info{$group}{'quota'} > 0) { my $pct_use = 0.1 * $diskuse/$grp_info{$group}{'quota'}; $grp_info{$group}{'diskuse'} = sprintf("%.0f",$pct_use); @@ -293,7 +320,8 @@ END $functionality = &mt('None available'); } my $link = $actionlinks{$action}; - if ($action eq 'modify' || $action eq 'delete') { + if ($action eq 'modify' || $action eq 'delete' || + $action eq 'reenable') { $link .= $group; } else { $link .= $group.'/smppg?ref=grouplist'; @@ -303,8 +331,7 @@ END } $link .= '">'.$lt{$action}.''; if ($action eq 'view') { - if (($manage_permission) && - ($env{'form.refpage'} ne 'enrl')) { + if ($manage_permission) { $link .= '  '.$actionlinks{'modify'}. $group.'">'.$lt{'modify'}.''. '  '.$actionlinks{'delete'}. @@ -321,7 +348,10 @@ END ''.$functionality.''. ''.$quota.''. ''.$totalmembers.''. - ''.&mt('Files: ').$totalfiles.'
'.&mt('Folders: ').$totaldirs.''. + ''. + '
'.&mt('Files: [_1]',$totalfiles).'
'. + '
'.&mt('Folders: [_1]',$totaldirs).'
'. + ''. ''.$boards.''. ''.$diskuse.''. &Apache::loncommon::end_data_table_row()); @@ -340,12 +370,14 @@ END } else { $r->print($lt{'nogr'}); if ($manage_permission) { - if (!exists($env{'form.refpage'})) { - $r->print('

'.$lt{'crng'}.''); + $r->print('

'.$lt{'crng'}.''); + if ($action ne 'reenable') { + if ($reenable_link) { + $r->print($reenable_link); + } } } else { $r->print('

'.$lt{'alth'}); - } } } else { @@ -363,9 +395,7 @@ END } } } else { - $r->print(&mt('You are not currently a member of any '. - 'active [_1]s in this [_2]',$gpterm, - lc($crstype))); + $r->print(&mt('You are not currently a member of any active '.$gpterm.'s in this '.lc($crstype).'.')); } } return; @@ -379,7 +409,6 @@ sub group_administration { my @types = (); my @roles = (); my @sections = (); - my @buildsections = (); my %users = (); my %userdata = (); my @members = (); @@ -433,7 +462,7 @@ sub group_administration { $state = 'pick_task'; } } else { - %stored = &retrieve_settings($cdom,$cnum,$groupname); + %stored = &retrieve_settings($cdom,$cnum,$groupname,$action); if (ref($stored{'types'}) eq 'ARRAY') { @types = @{$stored{'types'}}; } @@ -539,16 +568,11 @@ sub group_administration { } if (defined($env{'form.sectionpick'})) { @sections=&Apache::loncommon::get_env_multiple('form.sectionpick'); - if (grep/^all$/,@sections) { - @buildsections = sort {$a cmp $b} keys(%sectioncount); - } else { - @buildsections = @sections; - } } } if (($state eq 'pick_members') || ($state eq 'pick_privs') || ($state eq 'change_privs')) { - &build_members_list($cdom,$cnum,\@types,\@roles,\@buildsections,\%users, + &build_members_list($cdom,$cnum,\@types,\@roles,\@sections,\%users, \%userdata); } if ($state eq 'pick_members') { @@ -812,6 +836,7 @@ function changeSort(caller) { @{$states{'create'}} = ('pick_name','pick_members','pick_privs','result'); @{$states{'modify'}} = ('pick_task'); @{$states{'delete'}} = ('verify','result'); + @{$states{'reenable'}} = ('verify','result'); @{$branchstates{'noprivs'}} = ('result'); @{$branchstates{'settings'}} = ('change_settings','chgresult'); @{$branchstates{'members'}} = ('change_members','change_privs','memresult'); @@ -822,7 +847,7 @@ function changeSort(caller) { push (@{$states{$action}},@{$branchstates{$env{'form.branch'}}}); } - if (($action eq 'create') || ($action eq 'modify') || ($action eq 'delete')) { + if (($action eq 'create') || ($action eq 'modify') || ($action eq 'delete') || ($action eq 'reenable')) { my $done = 0; my $i=0; while ($i<@{$states{$action}} && !$done) { @@ -838,14 +863,14 @@ function changeSort(caller) { $r->print(&header("Groups Manager", $jscript,$action,$state,$page,$loaditems)); - if ($env{'form.refpage'} eq 'enrl') { + if ($env{'form.refpage'} eq 'cusr') { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/dropadd", - text=>"Enrollment Manager", + ({href=>"/adm/createuser", + text=>"User Management", faq=>9,bug=>'Instructor Interface',}); if ($action eq 'modify' || $action eq 'delete') { &Apache::lonhtmlcommon::add_breadcrumb - ({href=>"/adm/coursegroups?refpage=enrl&action=$action", + ({href=>"/adm/coursegroups?refpage=cusr&action=$action", text=>"Groups", faq=>9,bug=>'Instructor Interface',}); } @@ -885,6 +910,10 @@ function changeSort(caller) { verify => 'Verify deletion', result => 'Deletion Complete' ); + %{$trail{'reenable'}} = &Apache::lonlocal::texthash( + verify => 'Verify Re-enable', + result => 'Re-enabled' + ); my %navbuttons = &Apache::lonlocal::texthash( gtns => 'Go to next step', gtps => 'Go to previous step', @@ -893,7 +922,7 @@ function changeSort(caller) { gtpp => 'Go to previous page', adme => 'Add members', ); - if ((($action eq 'create') || ($action eq 'modify') || ($action eq 'delete')) && + if ((($action eq 'create') || ($action eq 'modify') || ($action eq 'delete') || ($action eq 'reenable')) && ($manage_permission)) { for (my $i=0; $i<@{$states{$action}}; $i++) { if ($state eq $states{$action}[$i]) { @@ -938,8 +967,16 @@ function changeSort(caller) { } sub retrieve_settings { - my ($cdom,$cnum,$groupname) = @_; - my %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$groupname); + my ($cdom,$cnum,$groupname,$action) = @_; + my %curr_groups; + my $namespace; + if ($action eq 'reenable') { + $namespace = 'deleted_groups'; + } else { + $namespace = 'coursegroups'; + } + %curr_groups = &Apache::longroup::coursegroups($cdom,$cnum,$groupname, + $namespace); return if (!%curr_groups); @@ -1079,21 +1116,29 @@ sub display_control { $sectioncount,$stored,$gpterm,$ucgpterm,$crstype); } } elsif ($action eq 'delete') { - my %stored = &retrieve_settings($cdom,$cnum,$groupname); + my %stored = &retrieve_settings($cdom,$cnum,$groupname,$action); if ($state eq 'verify') { &verify_delete($r,$groupname,$state,$action,$page,$states, \%stored); } elsif ($state eq 'result') { &delete_group($r,$cdom,$cnum,$groupname); } + } elsif ($action eq 'reenable') { + my %stored = &retrieve_settings($cdom,$cnum,$groupname,$action); + if ($state eq 'verify') { + &verify_reenable($r,$groupname,$state,$action,$page,$states, + \%stored); + } elsif ($state eq 'result') { + &reenable_group($r,$cdom,$cnum,$groupname); + } } } sub verify_delete { my ($r,$groupname,$formname,$action,$page,$states,$stored) = @_; $r->print(&Apache::lonhtmlcommon::echo_form_input([])); - $r->print(&mt("You have requested deletion of the following group: ").''. - $stored->{'description'}.''. + $r->print(&mt('You have requested deletion of the group [_1].' + ,''.$stored->{'description'}.''). '

'.&mt('When a group is deleted the following occurs:').'