X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FAdmin%2FGroups%2FModify.html;h=4c1dd4f75f580f5b733a3c94ef3d4592d5524660;hp=81b8ca740bd54db64967820146096baf839d86de;hb=7322f2afedcc2f427e997d1535a503613a83f088;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd diff --git a/rt/share/html/Admin/Groups/Modify.html b/rt/share/html/Admin/Groups/Modify.html index 81b8ca740..4c1dd4f75 100755 --- a/rt/share/html/Admin/Groups/Modify.html +++ b/rt/share/html/Admin/Groups/Modify.html @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC +%# +%# %# (Except where explicitly superseded by other copyright notices) -%# -%# +%# +%# %# LICENSE: -%# +%# %# This work is made available to you under the terms of Version 2 of %# the GNU General Public License. A copy of that license should have %# been provided with this software, but in any event can be snarfed %# from www.gnu.org. -%# +%# %# This work is distributed in the hope that it will be useful, but %# WITHOUT ANY WARRANTY; without even the implied warranty of %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU %# General Public License for more details. -%# +%# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA %# 02110-1301 or visit their web page on the internet at %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. -%# -%# +%# +%# %# CONTRIBUTION SUBMISSION POLICY: -%# +%# %# (The following paragraph is not intended to limit the rights granted %# to you to modify and distribute this software under the terms of %# the GNU General Public License and is only of importance to you if %# you choose to contribute your changes and enhancements to the %# community by submitting them to Best Practical Solutions, LLC.) -%# +%# %# By intentionally submitting any modifications, corrections or %# derivatives to this work, or any other work intended for use with %# Request Tracker, to Best Practical Solutions, LLC, you confirm that @@ -43,19 +43,16 @@ %# royalty-free, perpetual, license to use, copy, create derivative %# works based on those contributions, and sublicense and distribute %# those contributions and any derivatives thereof. -%# +%# %# 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,27 +63,26 @@ <&|/l&>Name: - + -<&|/l&>Description: +<&|/l&>Description: % my $CFs = $Group->CustomFields; % while (my $CF = $CFs->Next) { -<% loc($CF->Name) %>: +<% $CF->Name %>: <& /Elements/EditCustomField, CustomField => $CF, - Object => $Group, - ($Create ? (NamePrefix => 'Object-RT::Group--CustomField-') - : () )&> + Object => $Group, &> % } - /> <&|/l&>Enabled (Unchecking this box disables this group)
+ /> +
% $m->callback( %ARGS, GroupObj => $Group, results => \@results ); @@ -99,71 +95,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 { - $Group->Load($id) || Abort('Could not load group'); + 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) { - $title = loc("Modify the group [_1]", $Group->Name); - - } + if ($Group->Id) { + $title = loc("Modify the group [_1]", $Group->Name); + } # If the create failed else { - $title = loc("Create a new group"); - $Create = 1; - } - + $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 ); + 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, CASESENSITIVE => 0 ); + 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"' );