X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fetc%2FRT_SiteConfig.pm;fp=rt%2Fetc%2FRT_SiteConfig.pm;h=6420d11ef83d952ef17b4f7d0396b333ba33f5bf;hp=d22da42a14c1cacc9fac88f6b6d5d3ffa558d4a3;hb=603d84b691c7496bb2ec1cddc549fcc7b80e3e38;hpb=1f24086e325f98eb92b0bc0f6aa60119d3c0340f 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;