diff options
author | Mitch Jackson <mitch@freeside.biz> | 2017-11-30 20:28:40 +0000 |
---|---|---|
committer | Mitch Jackson <mitch@freeside.biz> | 2017-11-30 20:29:17 +0000 |
commit | 603d84b691c7496bb2ec1cddc549fcc7b80e3e38 (patch) | |
tree | dfdd12903f6f52b781a46e72ac1016793f8915b6 /rt/etc/RT_SiteConfig.pm | |
parent | 1f24086e325f98eb92b0bc0f6aa60119d3c0340f (diff) |
RT# 75322 Add ticket action Quiet Resolve
Diffstat (limited to 'rt/etc/RT_SiteConfig.pm')
-rw-r--r-- | rt/etc/RT_SiteConfig.pm | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/rt/etc/RT_SiteConfig.pm b/rt/etc/RT_SiteConfig.pm index d22da42a1..6420d11ef 100644 --- a/rt/etc/RT_SiteConfig.pm +++ b/rt/etc/RT_SiteConfig.pm @@ -58,4 +58,193 @@ Set($MessageBoxRichTextHeight, 368); #Set(@Plugins,(qw(Extension::QuickDelete RT::FM))); + +# Define default lifecycle to include resolved_quiet status workflow +Set(%Lifecycles, + default => { + initial => [qw(new)], # loc_qw + active => [qw(open stalled)], # loc_qw + inactive => [qw(resolved resolved_quiet rejected deleted)], # loc_qw + + defaults => { + on_create => 'new', + on_merge => 'resolved', + approved => 'open', + denied => 'rejected', + reminder_on_open => 'open', + reminder_on_resolve => 'resolved', + }, + + transitions => { + "" => [qw(new open resolved)], + + # from => [ to list ], + new => [qw(open stalled resolved resolved_quiet rejected deleted)], + open => [qw(new stalled resolved resolved_quiet rejected deleted)], + stalled => [qw(new open rejected resolved resolved_quiet deleted)], + resolved => [qw(new open stalled rejected deleted)], + resolved_quiet => [qw(resolved)], + rejected => [qw(new open stalled resolved resolved_quiet deleted)], + deleted => [qw(new open stalled rejected resolved resolved_quiet)], + }, + + rights => { + '* -> deleted' => 'DeleteTicket', + '* -> *' => 'ModifyTicket', + }, + actions => [ + 'new -> open' => { label => 'Open It', update => 'Respond' }, + 'new -> resolved' => { label => 'Resolve', update => 'Comment' }, + 'new -> resolved_quiet' => { label => 'Quiet Resolve', update => 'Comment' }, + 'new -> rejected' => { label => 'Reject', update => 'Respond' }, + 'new -> deleted' => { label => 'Delete', }, + 'open -> stalled' => { label => 'Stall', update => 'Comment' }, + 'open -> resolved' => { label => 'Resolve', update => 'Comment' }, + 'open -> resolved_quiet' => { label => 'Quiet Resolve', update => 'Comment' }, + 'open -> rejected' => { label => 'Reject', update => 'Respond' }, + 'stalled -> open' => { label => 'Open It', }, + 'resolved -> open' => { label => 'Re-open', update => 'Comment' }, + 'rejected -> open' => { label => 'Re-open', update => 'Comment' }, + 'deleted -> open' => { label => 'Undelete', }, + ], + }, +# don't change lifecyle of the approvals, they are not capable to deal with +# custom statuses + approvals => { + initial => [ 'new' ], + active => [ 'open', 'stalled' ], + inactive => [ 'resolved', 'rejected', 'deleted' ], + + defaults => { + on_create => 'new', + on_merge => 'resolved', + reminder_on_open => 'open', + reminder_on_resolve => 'resolved', + }, + + transitions => { + '' => [qw(new open resolved)], + + # from => [ to list ], + new => [qw(open stalled resolved rejected deleted)], + open => [qw(new stalled resolved rejected deleted)], + stalled => [qw(new open rejected resolved deleted)], + resolved => [qw(new open stalled rejected deleted)], + rejected => [qw(new open stalled resolved deleted)], + deleted => [qw(new open stalled rejected resolved)], + }, + rights => { + '* -> deleted' => 'DeleteTicket', + '* -> rejected' => 'ModifyTicket', + '* -> *' => 'ModifyTicket', + }, + actions => [ + 'new -> open' => { label => 'Open It', update => 'Respond' }, + 'new -> resolved' => { label => 'Resolve', update => 'Comment' }, + 'new -> rejected' => { label => 'Reject', update => 'Respond' }, + 'new -> deleted' => { label => 'Delete', }, + 'open -> stalled' => { label => 'Stall', update => 'Comment' }, + 'open -> resolved' => { label => 'Resolve', update => 'Comment' }, + 'open -> rejected' => { label => 'Reject', update => 'Respond' }, + 'stalled -> open' => { label => 'Open It', }, + 'resolved -> open' => { label => 'Re-open', update => 'Comment' }, + 'rejected -> open' => { label => 'Re-open', update => 'Comment' }, + 'deleted -> open' => { label => 'Undelete', }, + ], + }, +); + +# Lifecycle 'default' from RT_Config.pm +# Customer may set the lifecycle on their ticket queue as 'hide_resolve_quiet' +# to suppress the 'resolve_quiet' ticket status +Set(%Lifecycles, + hide_resolve_quiet => { + initial => [qw(new)], # loc_qw + active => [qw(open stalled)], # loc_qw + inactive => [qw(resolved rejected deleted)], # loc_qw + + defaults => { + on_create => 'new', + on_merge => 'resolved', + approved => 'open', + denied => 'rejected', + reminder_on_open => 'open', + reminder_on_resolve => 'resolved', + }, + + transitions => { + "" => [qw(new open resolved)], + + # from => [ to list ], + new => [qw( open stalled resolved rejected deleted)], + open => [qw(new stalled resolved rejected deleted)], + stalled => [qw(new open rejected resolved deleted)], + resolved => [qw(new open stalled rejected deleted)], + rejected => [qw(new open stalled resolved deleted)], + deleted => [qw(new open stalled rejected resolved )], + }, + rights => { + '* -> deleted' => 'DeleteTicket', + '* -> *' => 'ModifyTicket', + }, + actions => [ + 'new -> open' => { label => 'Open It', update => 'Respond' }, # loc{label} + 'new -> resolved' => { label => 'Resolve', update => 'Comment' }, # loc{label} + 'new -> rejected' => { label => 'Reject', update => 'Respond' }, # loc{label} + 'new -> deleted' => { label => 'Delete', }, # loc{label} + 'open -> stalled' => { label => 'Stall', update => 'Comment' }, # loc{label} + 'open -> resolved' => { label => 'Resolve', update => 'Comment' }, # loc{label} + 'open -> rejected' => { label => 'Reject', update => 'Respond' }, # loc{label} + 'stalled -> open' => { label => 'Open It', }, # loc{label} + 'resolved -> open' => { label => 'Re-open', update => 'Comment' }, # loc{label} + 'rejected -> open' => { label => 'Re-open', update => 'Comment' }, # loc{label} + 'deleted -> open' => { label => 'Undelete', }, # loc{label} + ], + }, +# don't change lifecyle of the approvals, they are not capable to deal with +# custom statuses + approvals => { + initial => [ 'new' ], + active => [ 'open', 'stalled' ], + inactive => [ 'resolved', 'rejected', 'deleted' ], + + defaults => { + on_create => 'new', + on_merge => 'resolved', + reminder_on_open => 'open', + reminder_on_resolve => 'resolved', + }, + + transitions => { + '' => [qw(new open resolved)], + + # from => [ to list ], + new => [qw(open stalled resolved rejected deleted)], + open => [qw(new stalled resolved rejected deleted)], + stalled => [qw(new open rejected resolved deleted)], + resolved => [qw(new open stalled rejected deleted)], + rejected => [qw(new open stalled resolved deleted)], + deleted => [qw(new open stalled rejected resolved)], + }, + rights => { + '* -> deleted' => 'DeleteTicket', + '* -> rejected' => 'ModifyTicket', + '* -> *' => 'ModifyTicket', + }, + actions => [ + 'new -> open' => { label => 'Open It', update => 'Respond' }, # loc{label} + 'new -> resolved' => { label => 'Resolve', update => 'Comment' }, # loc{label} + 'new -> rejected' => { label => 'Reject', update => 'Respond' }, # loc{label} + 'new -> deleted' => { label => 'Delete', }, # loc{label} + 'open -> stalled' => { label => 'Stall', update => 'Comment' }, # loc{label} + 'open -> resolved' => { label => 'Resolve', update => 'Comment' }, # loc{label} + 'open -> rejected' => { label => 'Reject', update => 'Respond' }, # loc{label} + 'stalled -> open' => { label => 'Open It', }, # loc{label} + 'resolved -> open' => { label => 'Re-open', update => 'Comment' }, # loc{label} + 'rejected -> open' => { label => 'Re-open', update => 'Comment' }, # loc{label} + 'deleted -> open' => { label => 'Undelete', }, # loc{label} + ], + }, +); + 1; |