X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FAdmin%2FGroups%2FModify.html;h=94431d09db1cdbf14039749c4f4b7a300d0c68c5;hp=de3dac4b526d20613635a6d0c5ef27f9d0d4ef04;hb=e9e0cf0989259b94d9758eceff448666a2e5a5cc;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941 diff --git a/rt/share/html/Admin/Groups/Modify.html b/rt/share/html/Admin/Groups/Modify.html index de3dac4b5..94431d09d 100755 --- a/rt/share/html/Admin/Groups/Modify.html +++ b/rt/share/html/Admin/Groups/Modify.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -47,15 +47,12 @@ %# END BPS TAGGED BLOCK }}} <& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/GroupTabs, - GroupObj => $Group, - current_tab => $current_tab, - Title => $title &> +<& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> -
+ %unless ($Group->Id) { @@ -66,11 +63,11 @@ <&|/l&>Name: - + -<&|/l&>Description: +<&|/l&>Description: % my $CFs = $Group->CustomFields; % while (my $CF = $CFs->Next) { @@ -99,71 +96,73 @@
<%INIT> -my $current_tab; -my ($title, @results, $Disabled, $EnabledChecked); +my ($title, @results, @warnings, $Disabled, $EnabledChecked); my $Group = RT::Group->new($session{'CurrentUser'}); if ($Create) { - $current_tab = 'Admin/Groups/Modify.html?Create=1'; $title = loc("Create a new group"); -} - -else { - $current_tab = 'Admin/Groups/Modify.html?id='.$id; +} else { if ($id eq 'new' ) { - - my ($create_id, $create_msg) = $Group->CreateUserDefinedGroup(Name => - "$Name"); - unless ($create_id) { - Abort (loc("Group could not be created: [_1]", $create_msg)); - } - $id = $Group->Id; - } - else { + my ($create_id, $create_msg) = $Group->CreateUserDefinedGroup(Name => $Name ); + if ($create_id) { + $id = $Group->Id; + push @results, $create_msg; + } else { + push @results, loc("Group could not be created: [_1]", $create_msg); + } + } else { $Group->Load($id) || Abort('Could not load group'); } - - if ($id) { + if ($Group->Id) { $title = loc("Modify the group [_1]", $Group->Name); - - } + } # If the create failed else { $title = loc("Create a new group"); $Create = 1; - } - + } } -if ($id) { - +if ($Group->Id) { my @fields = qw(Description Name ); my @fieldresults = UpdateRecordObject ( AttributesRef => \@fields, Object => $Group, ARGSRef => \%ARGS ); push (@results,@fieldresults); push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $Group ); + + # Warn about duplicate groups + my $dupcheck = RT::Groups->new(RT->SystemUser); + $dupcheck->LimitToUserDefinedGroups(); + $dupcheck->Limit( FIELD => 'Name', VALUE => $Group->Name ); + if ($dupcheck->Count > 1) { + push @warnings, loc("There is more than one group with the name '[_1]'. This may cause inconsistency in parts of the admin interface, and therefore it's recommended you rename the conflicting groups.", $Group->Name); + } } #we're asking about enabled on the web page but really care about disabled. if (defined $Enabled && $Enabled == 1) { $Disabled = 0; -} -else { +} else { $Disabled = 1; } -if ( ($SetEnabled) and ( $Disabled != $Group->Disabled) ) { +if ( $Group->Id and ($SetEnabled) and ( $Disabled != $Group->Disabled) ) { my ($code, $msg) = $Group->SetDisabled($Disabled); push @results, $msg; } -unless ($Group->Disabled()) { - $EnabledChecked ='checked="checked"'; -} +# This code does automatic redirection if any updates happen. +MaybeRedirectForResults( + Actions => \@results, + Arguments => { id => $Group->id }, +) if $Group->Id; + +push @results, @warnings; +$EnabledChecked = ( $Group->Disabled() ? '' : 'checked="checked"' );