X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FAdmin%2FQueues%2FModify.html;h=202950e6f4ece9bb72f5c74f8901737193b54b5e;hp=df97a68c786408f5415a0923e14a3d24ff047b81;hb=7322f2afedcc2f427e997d1535a503613a83f088;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd diff --git a/rt/share/html/Admin/Queues/Modify.html b/rt/share/html/Admin/Queues/Modify.html index df97a68c7..202950e6f 100755 --- a/rt/share/html/Admin/Queues/Modify.html +++ b/rt/share/html/Admin/Queues/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,90 +43,121 @@ %# 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/QueueTabs, id => $QueueObj->id, - QueueObj => $QueueObj, - current_tab => $current_tab, - Title => $title &> +<& /Elements/Tabs &> <& /Elements/ListActions, actions => \@results &> -
- + - +% $m->callback( CallbackName => 'FormStart', Create => $Create, ARGSRef => \%ARGS ); - - - + - + + + - - + Default => $Create? 0: $QueueObj->FinalPriority || $FinalPriority, +&>
<&|/l&>requires running rt-crontool - + % my $CFs = $QueueObj->CustomFields; % while (my $CF = $CFs->Next) { % } -% if ( RT->Config->Get('GnuPG')->{'Enable'} ) { - - - - +% if ( RT->Config->Get('Crypt')->{'Enable'} ) { + + + + + + % } - - + +% } -% if ( RT->Config->Get('GnuPG')->{'Enable'} ) { +% if ( RT->Config->Get('Crypt')->{'Enable'} ) { + +<& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &> +% } else { +<&|/Widgets/TitleBox, title => loc( 'Private keys') &> +<&|/l&>You have enabled encryption support but have not set a correspondence address for this queue. +<&|/l&>You must set a correspondence address for this queue in order to configure a private key. + % } + + -% } +<& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &> +% } else { +<&|/Widgets/TitleBox, title => loc( 'Private keys') &> +<&|/l&>You have enabled encryption support but have not set a comment address for this queue. +<&|/l&>You must set a comment address for this queue in order to configure a private key. + +%} + % }
<&|/l&>Queue Name:Name %>" />
<&|/l&>Queue Name: +% if ($InternalQueue) { +<% $QueueObj->Name %> +% } else { +Name || $Name %>" /> +% } +
<&|/l&>Description:Description %>" size="60" />Description || $Description || '' %>" size="60" />
<&|/l&>Lifecycle: +% if ($InternalQueue) { +<% $QueueObj->Lifecycle %> +% } else { +<& /Widgets/Form/Select:InputOnly, + Name => 'Lifecycle', + Values => [ sort { loc($a) cmp loc($b) } RT::Lifecycle->List ], + CurrentValue => $Create ? "default" : $QueueObj->Lifecycle || $ARGS{'Lifecycle'}, + Default => 0, +&> +% } +
<&|/l&>Subject Tag: SubjectTag || '' ) %>" size="60" />
<&|/l&>Reply Address:CorrespondAddress %>" /> +CorrespondAddress || $CorrespondAddress || '' %>" />
<&|/l , RT->Config->Get('CorrespondAddress')&>(If left blank, will default to [_1])
<&|/l&>Comment Address:CommentAddress %>" /> +CommentAddress || $CommentAddress || '' %>" />
<&|/l , RT->Config->Get('CommentAddress')&>(If left blank, will default to [_1])
<&|/l&>Priority starts at: <& /Elements/SelectPriority, Name => "InitialPriority", - Default => $Create? 0: $QueueObj->InitialPriority, + Default => $Create? 0: $QueueObj->InitialPriority || $InitialPriority, &> <&|/l&>Over time, priority moves toward: <& /Elements/SelectPriority, Name => "FinalPriority", - Default => $Create? 0: $QueueObj->FinalPriority, -&>
<&|/l&>Requests should be due in:DefaultDueIn%>" /> <&|/l&>days.DefaultDueIn || $DefaultDueIn || "" %>" /> <&|/l&>days.
-<% loc($CF->Name) %>: +<% $CF->Name %>: -<& /Elements/EditCustomField, CustomField => $CF, - Object => $QueueObj, - ($Create ? (NamePrefix => 'Object-RT::Queue--CustomField-') - : () )&> +<& /Elements/EditCustomField, CustomField => $CF, + Object => $QueueObj, &>
Sign? 'checked="checked"': '' |n%> /><&|/l&>Sign by defaultEncrypt? 'checked="checked"': '' |n%> /><&|/l&>Encrypt by default
Sign? 'checked="checked"': '' |n%> />Encrypt? 'checked="checked"': '' |n%> />
SignAuto? 'checked="checked"': '' |n%> />
/><&|/l&>Enabled (Unchecking this box disables this queue)
+% unless ($InternalQueue) { +
/>
+ % $m->callback( %ARGS, QueueObj => $QueueObj, results => \@results );
+ % if ( my $email = $QueueObj->CorrespondAddress || RT->Config->Get('CorrespondAddress') ) { -
<& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &>
% if ( my $email = $QueueObj->CommentAddress || RT->Config->Get('CommentAddress') ) { -
<& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &>
@@ -140,44 +171,48 @@ <%INIT> -my ($title, $current_tab, @results, $Disabled, $EnabledChecked); +my ($title, @results, @no_redirect_results, $Disabled, $EnabledChecked); my $QueueObj = RT::Queue->new( $session{'CurrentUser'} ); $QueueObj->Load( $id ) if !$id || $id eq 'new'; $EnabledChecked = 'checked="checked"'; -if ($Create) { - $current_tab = 'Admin/Queues/Modify.html?Create=1'; - $title = loc("Create a queue"); -} else { +unless ($Create) { if ( defined $id && $id eq 'new' ) { my ($val, $msg) = $QueueObj->Create( Name => $Name ); - Abort("$msg") unless $val; - delete $session{'create_in_queues'}; - push @results, $msg; - } - else { + if (!$val) { + $Create = 1; # Create failed, so bring us back to step 1 + } + push @results, $msg; + } else { $QueueObj->Load($id) || $QueueObj->Load($Name) || Abort(loc("Couldn't load queue '[_1]'", $Name)); } - $title = loc('Editing Configuration for queue [_1]', $QueueObj->Name); - - $current_tab = 'Admin/Queues/Modify.html?id='.$QueueObj->id; } + if ( $QueueObj->Id ) { - delete $session{'create_in_queues'}; + $title = loc('Configuration for queue [_1]', $QueueObj->Name ); my @attribs= qw(Description CorrespondAddress CommentAddress Name - InitialPriority FinalPriority DefaultDueIn Sign Encrypt SubjectTag Disabled); + InitialPriority FinalPriority DefaultDueIn Sign SignAuto Encrypt Lifecycle SubjectTag Disabled); # we're asking about enabled on the web page but really care about disabled if ( $SetEnabled ) { $Disabled = $ARGS{'Disabled'} = $Enabled? 0: 1; + } + if ( $SetCrypt ) { $ARGS{$_} = 0 foreach grep !defined $ARGS{$_} || !length $ARGS{$_}, - qw(Sign Encrypt Disabled); + qw(Sign SignAuto Encrypt); } + $m->callback( + CallbackName => 'BeforeUpdate', + Queue => $QueueObj, + AttributesRef => \@attribs, + ARGSRef => \%ARGS, + ); + push @results, UpdateRecordObject( AttributesRef => \@attribs, - Object => $QueueObj, + Object => $QueueObj, ARGSRef => \%ARGS ); @@ -194,7 +229,26 @@ if ( $QueueObj->Id ) { ); push @results, @linkresults; push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS, Object => $QueueObj ); + if ( RT->Config->Get('RTAddressRegexp') ) { + foreach my $address ( $QueueObj->CorrespondAddress, $QueueObj->CommentAddress ) { + next unless defined $address && length $address; + next if RT::EmailParser->IsRTAddress( $address ); + push @no_redirect_results, loc("RTAddressRegexp option in the config doesn't match [_1]", $address ); + } + } +} else { + $title = loc("Create a queue"); } + +my $InternalQueue = ($QueueObj->Id and $QueueObj->Disabled == 2); + +# This code does automatic redirection if any updates happen. +MaybeRedirectForResults( + Actions => \@results, + Arguments => { id => $QueueObj->Id }, +) if $QueueObj->id; + +push @results, @no_redirect_results; @@ -210,5 +264,6 @@ $InitialPriority => undef $FinalPriority => undef $DefaultDueIn => undef $SetEnabled => undef +$SetCrypt => undef $Enabled => undef