X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fetc%2Finitialdata;h=a301104899298083b75790a79a4ca2982386226c;hb=ff7b7921948cba175aa99974cda1c9c0080937c1;hp=7b3f6a6bf0e7ef065551fa39f35b3e29c72cd9a4;hpb=4c8c18409f82d56320a80f6c94f275fa15486897;p=freeside.git diff --git a/rt/etc/initialdata b/rt/etc/initialdata index 7b3f6a6bf..a30110489 100644 --- a/rt/etc/initialdata +++ b/rt/etc/initialdata @@ -1,4 +1,4 @@ -# Initial data for a fresh RT3 Installation. +# Initial data for a fresh RT installation. @Users = ( { Name => 'root', @@ -19,6 +19,7 @@ CorrespondAddress => "", CommentAddress => "", }, { Name => '___Approvals', + Lifecycle => 'approvals', Description => 'A system-internal queue for the approvals system', Disabled => 2, } ); @@ -63,11 +64,13 @@ ExecModule => 'NotifyAsComment', Argument => 'Requestor,Cc' }, - { Name => 'Notify Requestors and Ccs', # loc - Description => 'Send mail to requestors and Ccs', # loc - ExecModule => 'Notify', - Argument => 'Requestor,Cc' }, +# deprecated +# { Name => 'Notify Requestors and Ccs', # loc +# Description => 'Send mail to requestors and Ccs', # loc +# ExecModule => 'Notify', +# Argument => 'Requestor,Cc' }, +# not yet deprecated { Name => 'Notify Owner, Requestors, Ccs and AdminCcs as Comment', # loc Description => 'Send mail to owner and all watchers as a "comment"', # loc ExecModule => 'NotifyAsComment', @@ -80,10 +83,12 @@ Description => 'Sends mail to explicitly listed Ccs and Bccs', # loc ExecModule => 'NotifyAsComment', Argument => 'OtherRecipients' }, - { Name => 'Notify Other Recipients', # loc - Description => 'Sends mail to explicitly listed Ccs and Bccs', # loc - ExecModule => 'Notify', - Argument => 'OtherRecipients' }, +# deprecated +# { Name => 'Notify Other Recipients', # loc +# Description => 'Sends mail to explicitly listed Ccs and Bccs', # loc +# ExecModule => 'Notify', +# Argument => 'OtherRecipients' }, + { Name => 'User Defined', # loc Description => 'Perform a user-defined action', # loc ExecModule => 'UserDefined', }, @@ -114,6 +119,12 @@ ExecModule => 'ScheduledResolve', Argument => '', }, +# combine these into a single action so they can see each other in the headers + { Name => 'Notify Requestors, Ccs, and Other Recipients', + Description => 'Send mail to requestors, watchers, and explicit Ccs', + ExecModule => 'Notify', + Argument => 'Requestor,Cc,OtherRecipients', + }, ); @ScripConditions = ( @@ -135,6 +146,27 @@ { + Name => 'On Forward', # loc + Description => 'Whenever a ticket or transaction is forwarded', # loc + ApplicableTransTypes => 'Forward Transaction,Forward Ticket', + ExecModule => 'AnyTransaction', }, + + { + + Name => 'On Forward Ticket', # loc + Description => 'Whenever a ticket is forwarded', # loc + ApplicableTransTypes => 'Forward Ticket', + ExecModule => 'AnyTransaction', }, + + { + + Name => 'On Forward Transaction', # loc + Description => 'Whenever a transaction is forwarded', # loc + ApplicableTransTypes => 'Forward Transaction', + ExecModule => 'AnyTransaction', }, + + { + Name => 'On Comment', # loc Description => 'Whenever comments come in', # loc ApplicableTransTypes => 'Comment', @@ -235,11 +267,11 @@ creation of a trouble ticket regarding: a summary of which appears below. There is no need to reply to this message right now. Your ticket has been -assigned an ID of [{$Ticket->QueueObj->SubjectTag || $rtname} #{$Ticket->id()}]. +assigned an ID of { $Ticket->SubjectTag }. Please include the string: - [{$Ticket->QueueObj->SubjectTag || $rtname} #{$Ticket->id}] + { $Ticket->SubjectTag } in the subject line of all future correspondence about this issue. To do so, you may reply to this message. @@ -299,7 +331,7 @@ you may reply to this message. Name => 'Admin Comment', # loc Description => 'Default admin comment template', # loc Content => -'Subject: [Comment] {my $s=($Transaction->Subject||$Ticket->Subject); $s =~ s/\\[Comment\\]\\s*//g; $s =~ s/^Re:\\s*//i; $s;} +'Subject: [Comment] {my $s=($Transaction->Subject||$Ticket->Subject||""); $s =~ s/\\[Comment\\]\\s*//g; $s =~ s/^Re:\\s*//i; $s;} RT-Attach-Message: yes @@ -527,7 +559,6 @@ Hour: { $SubscriptionObj->SubValue('Hour') } }, ); -# }}} @Scrips = ( { Description => 'On Correspond Open Tickets', @@ -550,14 +581,18 @@ Hour: { $SubscriptionObj->SubValue('Hour') } ScripCondition => 'On Correspond', ScripAction => 'Notify AdminCcs', Template => 'Admin Correspondence' }, - { Description => 'On Correspond Notify Requestors and Ccs', +# { Description => 'On Correspond Notify Requestors and Ccs', +# ScripCondition => 'On Correspond', +# ScripAction => 'Notify Requestors And Ccs', +# Template => 'Correspondence' }, +# { Description => 'On Correspond Notify Other Recipients', +# ScripCondition => 'On Correspond', +# ScripAction => 'Notify Other Recipients', +# Template => 'Correspondence' }, + { Description => 'On Correspond Notify Requestors, Ccs, and Other Recipients', ScripCondition => 'On Correspond', - ScripAction => 'Notify Requestors And Ccs', - Template => 'Correspondence' }, - { Description => 'On Correspond Notify Other Recipients', - ScripCondition => 'On Correspond', - ScripAction => 'Notify Other Recipients', - Template => 'Correspondence' }, + ScripAction => 'Notify Requestors, Ccs, and Other Recipients', + Template => 'Correspondence', }, { Description => 'On Comment Notify AdminCcs as Comment', ScripCondition => 'On Comment', ScripAction => 'Notify AdminCcs As Comment', @@ -627,22 +662,153 @@ Hour: { $SubscriptionObj->SubValue('Hour') } OrderBy => 'LastUpdated', Order => 'DESC' }, }, - { Name => 'HomepageSettings', - Description => 'HomepageSettings', - Content => - { 'body' => # loc - [ { type => 'system', name => 'My Tickets' }, - { type => 'system', name => 'Unowned Tickets' }, - { type => 'system', name => 'Bookmarked Tickets' }, - { type => 'component', name => 'QuickCreate' }, - ], - 'summary' => # loc - [ - { type => 'component', name => 'MyReminders' }, - { type => 'component', name => 'Quicksearch' }, - { type => 'component', name => 'Dashboards' }, - { type => 'component', name => 'RefreshHomepage' }, - ], - }, + { + Name => 'HomepageSettings', + Description => 'HomepageSettings', + Content => { + 'body' => # loc + [ + { + type => 'system', + name => 'My Tickets', # loc + }, + { + type => 'system', + name => 'Unowned Tickets' # loc + }, + { + type => 'system', + name => 'Bookmarked Tickets' # loc + }, + { + type => 'component', + name => 'QuickCreate' # loc + }, + ], + 'summary' => # loc + [ + { + type => 'component', + name => 'MyReminders' # loc + }, + { + type => 'component', + name => 'Quicksearch' # loc + }, + { + type => 'component', + name => 'Dashboards' # loc + }, + { + type => 'component', + name => 'RefreshHomepage' # loc + }, + ], + }, }, ); + +# freeside upgrade +# Obsolete/erroneous scrips +# If +# $Delete_Scrips{conditionname}{actionname}{templatename} +# exists, and the scrip was created by the system user, it +# will be deleted on upgrade. Lowercase all the names here. + +%Delete_Scrips = ( + 'on correspond' => { + 'notify requestors and ccs' => { 'correspondence' => 1 }, + 'notify other recipients' => { 'correspondence' => 1 }, + } +); + +# -*- perl -*- + +push @ScripActions, ( + + { Name => 'Extract Custom Field Values', # loc + Description => 'extract cf-values out of a message', # loc + ExecModule => 'ExtractCustomFieldValues' }, + + { Name => 'Extract Custom Field Values With Code in Template', # loc + Description => 'extract cf-values out of a message with a Text::Template template', # loc + ExecModule => 'ExtractCustomFieldValuesWithCodeInTemplate' } + +); + +push @Templates, ( + { Queue => '0', + Name => 'CustomFieldScannerExample', # loc + Description => 'Example Template for ExtractCustomFieldValues', # loc + Content => <<'EOTEXT' +#### Syntax: +# CF Name | Header name or "Body" | MatchString(re) | Postcmd | Options + +#### Allowed Options: + +# q - (quiet) Don't record a transaction for adding the custom field +# value +# * - (wildcard) The MatchString regex should contain _two_ +# capturing groups, the first of which is the CF name, +# the second of which is the value. If this option is +# given, the field is ignored. + +#### Examples: + +# 1. Put the content of the "X-MI-Test" header into the "testcf" +# custom field: +# testcf|X-MI-Test|.* + +# 2. Scan the body for Host:name and put name into the "bodycf" custom +# field: +# bodycf|Body|Host:\s*(\w+) + +# 3. Scan the "X-MI-IP" header for an IP-Adresse and get the hostname +# by reverse-resolving it: +# Hostname|X-MI-IP|\d+\.\d+\.\d+\.\d+|use Socket; ($value) = gethostbyaddr(inet_aton($value),AF_INET); + +# 4. scan the "CC" header for an many email addresses, and add them to +# a custom field named "parsedCCs". If "parsedCCs" is a multivalue +# CF, then this should yield separate values for all email adress +# found. +# parsedCCs|CC|.*|$value =~ s/^\s+//; $value =~ s/\s+$//; + +# 5. Looks for an "Email:" field in the body of the email, then loads +# up that user and makes them privileged The blank first field +# means the automatic CustomField setting is not invoked. +# |Body|Email:\s*(.+)$|my $u = RT::User->new($RT::SystemUser); $u->LoadByEmail($value); $u->SetPrivileged(1)| + +# 6. Looks for any text of the form "Set CF Name: Value" in the body, +# and sets the CF named "CF Name" to the given value, which may be +# multi-line. The '*' option controls the wildcard nature of this +# example. +# Separator=! +# !Body!^Set ([^\n:]*?):\s*((?s).*?)(?:\Z|\n\Z|\n\n)!!* + +# 7. Looks for the regex anywhere in the headers and stores the match +# in the AllHeaderSearch CF +# AllHeaderSearch|Headers|Site:\s*(\w+) + +# 8. If you need to dynamically build your matching, and want to trigger on headers and body +# and invode some arbitrary code like example 5 +# Separator=~~ +# { +# my $action = 'use My::Site; My::Site::SetSiteID( Ticket => $self->TicketObj, Site => $_ );'; +# +# for my $regex (My::Site::ValidRegexps) { +# for my $from ('headers', 'body') { +# $OUT .= join '~~', +# '', # CF name +# $from, +# $regex, +# $action; +# $OUT .= "\n"; +# } +# } +# } + +EOTEXT + } +); + +1;