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=5dd7bf00c03743e154854db699b011bde9598c8f;hb=7322f2afedcc2f427e997d1535a503613a83f088;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941 diff --git a/rt/share/html/Admin/Queues/Modify.html b/rt/share/html/Admin/Queues/Modify.html index 5dd7bf00c..202950e6f 100755 --- a/rt/share/html/Admin/Queues/Modify.html +++ b/rt/share/html/Admin/Queues/Modify.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -46,88 +46,105 @@ %# %# 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'} ) { @@ -135,9 +152,9 @@ % if ( my $email = $QueueObj->CommentAddress || RT->Config->Get('CommentAddress') ) { <& /Admin/Elements/ShowKeyInfo, Type => 'private', EmailAddress => $email &> % } else { -<&|/Widgets/TitleBox, title => loc( 'GnuPG private keys') &> -<&|/l&>You have enabled GnuPG 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 GnuPG private key. +<&|/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. %} @@ -154,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 ); @@ -212,10 +233,22 @@ if ( $QueueObj->Id ) { foreach my $address ( $QueueObj->CorrespondAddress, $QueueObj->CommentAddress ) { next unless defined $address && length $address; next if RT::EmailParser->IsRTAddress( $address ); - push @results, loc("RTAddressRegexp option in the config doesn't match [_1]", $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; @@ -231,5 +264,6 @@ $InitialPriority => undef $FinalPriority => undef $DefaultDueIn => undef $SetEnabled => undef +$SetCrypt => undef $Enabled => undef
<&|/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 &> % } else { -<&|/Widgets/TitleBox, title => loc( 'GnuPG private keys') &> -<&|/l&>You have enabled GnuPG 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 GnuPG private key. +<&|/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. % }