--- loncom/interface/loncoursegroups.pm 2006/08/19 01:24:08 1.61
+++ loncom/interface/loncoursegroups.pm 2006/11/20 23:49:49 1.64
@@ -1,6 +1,6 @@
# The LearningOnline Network with CAPA
#
-# $Id: loncoursegroups.pm,v 1.61 2006/08/19 01:24:08 raeburn Exp $
+# $Id: loncoursegroups.pm,v 1.64 2006/11/20 23:49:49 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -29,13 +29,14 @@ package Apache::loncoursegroups;
use strict;
use Apache::lonnet;
-use Apache::loncommon;
-use Apache::lonhtmlcommon;
+use Apache::loncommon();
+use Apache::lonhtmlcommon();
use Apache::lonlocal;
-use Apache::lonnavmaps;
-use Apache::longroup;
-use Apache::portfolio;
+use Apache::lonnavmaps();
+use Apache::longroup();
+use Apache::portfolio();
use Apache::Constants qw(:common :http);
+use LONCAPA::map();
use lib '/home/httpd/lib/perl/';
use LONCAPA;
@@ -91,12 +92,13 @@ sub handler {
my $action = $env{'form.action'};
my $state = $env{'form.state'};
- if ((!defined($action)) || ($action eq 'view') || ($action eq 'modify')) {
+ if ((!defined($action)) || ($action eq 'view') || ($action eq 'modify') || ($action eq 'delete')) {
if (!defined($state)) {
$state = 'view';
}
}
- if ($action eq 'create' || $action eq 'modify' || $action eq 'view') {
+ if ($action eq 'create' || $action eq 'modify' || $action eq 'view' ||
+ $action eq 'delete') {
if ($view_permission || $manage_permission) {
if ($state eq 'view') {
&print_main_menu($r,$cdom,$cnum,\%functions,\%idx,
@@ -164,7 +166,7 @@ sub display_groups {
$env{'form.refpage'}.'&state=pick_task&groupname=',
view => ' 'Modify',
@@ -185,8 +187,8 @@ sub display_groups {
nogr => 'No groups exist.',
crng => 'Create a new group',
alth => 'Although your current role has privileges'.
- ' to view any existing groups in this'.
- lc($crstype).', you do not have privileges'.
+ ' to view any existing groups in this '.
+ lc($crstype).', you do not have privileges '.
'to create new groups.',
);
if ($view_permission) {
@@ -304,7 +306,9 @@ END
if (($manage_permission) &&
($env{'form.refpage'} ne 'enrl')) {
$link .= ' '.$actionlinks{'modify'}.
- $group.'">'.$lt{'modify'}.'';
+ $group.'">'.$lt{'modify'}.''.
+ ' '.$actionlinks{'delete'}.
+ $group.'">'.$lt{'delete'}.'';
}
}
$r->print(&Apache::loncommon::start_data_table_row('LC_data_table_dense').
@@ -807,6 +811,7 @@ function changeSort(caller) {
my %branchstates = ();
@{$states{'create'}} = ('pick_name','pick_members','pick_privs','result');
@{$states{'modify'}} = ('pick_task');
+ @{$states{'delete'}} = ('verify','result');
@{$branchstates{'noprivs'}} = ('result');
@{$branchstates{'settings'}} = ('change_settings','chgresult');
@{$branchstates{'members'}} = ('change_members','change_privs','memresult');
@@ -817,7 +822,7 @@ function changeSort(caller) {
push (@{$states{$action}},@{$branchstates{$env{'form.branch'}}});
}
- if (($action eq 'create') || ($action eq 'modify')) {
+ if (($action eq 'create') || ($action eq 'modify') || ($action eq 'delete')) {
my $done = 0;
my $i=0;
while ($i<@{$states{$action}} && !$done) {
@@ -838,9 +843,9 @@ function changeSort(caller) {
({href=>"/adm/dropadd",
text=>"Enrollment Manager",
faq=>9,bug=>'Instructor Interface',});
- if ($action eq 'modify') {
+ if ($action eq 'modify' || $action eq 'delete') {
&Apache::lonhtmlcommon::add_breadcrumb
- ({href=>"/adm/coursegroups?refpage=enrl&action=modify",
+ ({href=>"/adm/coursegroups?refpage=enrl&action=$action",
text=>"Groups",
faq=>9,bug=>'Instructor Interface',});
}
@@ -876,6 +881,10 @@ function changeSort(caller) {
memresult => 'Modifications Complete',
addresult => 'Additions Complete',
);
+ %{$trail{'delete'}} = &Apache::lonlocal::texthash(
+ verify => 'Verify deletion',
+ result => 'Deletion Complete'
+ );
my %navbuttons = &Apache::lonlocal::texthash(
gtns => 'Go to next step',
gtps => 'Go to previous step',
@@ -884,7 +893,7 @@ function changeSort(caller) {
gtpp => 'Go to previous page',
adme => 'Add members',
);
- if ((($action eq 'create') || ($action eq 'modify')) &&
+ if ((($action eq 'create') || ($action eq 'modify') || ($action eq 'delete')) &&
($manage_permission)) {
for (my $i=0; $i<@{$states{$action}}; $i++) {
if ($state eq $states{$action}[$i]) {
@@ -902,16 +911,18 @@ function changeSort(caller) {
$crstype);
last;
} else {
- if (($state eq 'result') && ($i > 0)) {
- &Apache::lonhtmlcommon::add_breadcrumb(
+ if (($action eq 'create') || ($action eq 'modify')) {
+ if (($state eq 'result') && ($i > 0)) {
+ &Apache::lonhtmlcommon::add_breadcrumb(
{href=>"javascript:backPage(document.$state,'$states{$action}[0]')",
text=>"$trail{$action}{$states{$action}[$i]}"});
- } else {
- &Apache::lonhtmlcommon::add_breadcrumb(
+ } else {
+ &Apache::lonhtmlcommon::add_breadcrumb(
{href=>"javascript:backPage(document.$state,'$states{$action}[$i]')",
text=>"$trail{$action}{$states{$action}[$i]}"});
+ }
}
- }
+ }
}
} elsif (($action eq 'view') && ($view_permission)) {
&Apache::lonhtmlcommon::add_breadcrumb(
@@ -921,7 +932,6 @@ function changeSort(caller) {
&display_groups($r,$cdom,$cnum,$functions,$idx,$view_permission,
$manage_permission,$action,$state,$gpterm,$ucgpterm,
$crstype);
-
}
$r->print(&footer());
return;
@@ -1068,7 +1078,138 @@ sub display_control {
$sections,$states,$navbuttons,$memchg,
$sectioncount,$stored,$gpterm,$ucgpterm,$crstype);
}
+ } elsif ($action eq 'delete') {
+ my %stored = &retrieve_settings($cdom,$cnum,$groupname);
+ if ($state eq 'verify') {
+ &verify_delete($r,$groupname,$state,$action,$page,$states,
+ \%stored);
+ } elsif ($state eq 'result') {
+ &delete_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'}.''.
+ '
'.&mt('When a group is deleted the following occurs:').'