fix RT initial data, from #9728
[freeside.git] / rt / etc / initialdata
index 9b5506b..a301104 100644 (file)
@@ -1,4 +1,4 @@
-# Initial data for a fresh RT3 Installation.
+# Initial data for a fresh RT installation.
 
 @Users = (
     {  Name         => 'root',
 
 @Users = (
     {  Name         => 'root',
@@ -19,6 +19,7 @@
              CorrespondAddress => "",
              CommentAddress    => "", },
            { Name        => '___Approvals',
              CorrespondAddress => "",
              CommentAddress    => "", },
            { Name        => '___Approvals',
+             Lifecycle   => 'approvals',
              Description => 'A system-internal queue for the approvals system',
              Disabled    => 2, } );
 
              Description => 'A system-internal queue for the approvals system',
              Disabled    => 2, } );
 
       ExecModule  => 'NotifyAsComment',
       Argument    => 'Requestor,Cc' },
 
       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',
     { Name        => 'Notify Owner, Requestors, Ccs and AdminCcs as Comment',    # loc
       Description => 'Send mail to owner and all watchers as a "comment"',          # loc
       ExecModule  => 'NotifyAsComment',
       Description => 'Sends mail to explicitly listed Ccs and Bccs',      # loc
       ExecModule  => 'NotifyAsComment',
       Argument    => 'OtherRecipients' },
       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', },
     { Name        => 'User Defined',                                      # loc
       Description => 'Perform a user-defined action',                     # loc
       ExecModule  => 'UserDefined', },
     { Name        => 'Extract Subject Tag',                               # loc
       Description => 'Extract tags from a Transaction\'s subject and add them to the Ticket\'s subject.', # loc
       ExecModule  => 'ExtractSubjectTag' },
     { Name        => 'Extract Subject Tag',                               # loc
       Description => 'Extract tags from a Transaction\'s subject and add them to the Ticket\'s subject.', # loc
       ExecModule  => 'ExtractSubjectTag' },
+
+    #freeside
+    { Name        => 'Set Priority',
+      Description => 'Set ticket priority',
+      ExecModule  => 'SetPriority',
+      Argument    => '',
+    },
+    { Name        => 'Cancel Scheduled Resolve',
+      Description => 'Set ticket not to resolve in the future',
+      ExecModule  => 'SetWillResolve',
+      Argument    => '',
+    },
+    { Name        => 'Scheduled Resolve',
+      Description => 'Resolve ticket if its WillResolve date has passed',
+      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 = (
 );
 
 @ScripConditions = (
 
     {
 
 
     {
 
+      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',
       Name                 => 'On Comment',                                # loc
       Description          => 'Whenever comments come in',                 # loc
       ApplicableTransTypes => 'Comment',
        ExecModule           => 'ReopenTicket',
     },
 
        ExecModule           => 'ReopenTicket',
     },
 
+    #freeside
+    {  Name                 => 'On Custom Field Transaction',
+       Description          => 'When a custom field is changed',
+       ExecModule           => 'CustomFieldTransaction',
+       ApplicableTransTypes => 'Any',
+    },
+    {  Name                 => 'On Custom Field Change',
+       Description          => 'When a custom field is changed to some value',
+       ExecModule           => 'CustomFieldChange',
+       ApplicableTransTypes => 'Any',
+    },
+
 );
 
 @Templates = (
 );
 
 @Templates = (
@@ -206,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
 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:
 
 
 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.
 
 in the subject line of all future correspondence about this issue. To do so, 
 you may reply to this message.
@@ -270,7 +331,7 @@ you may reply to this message.
        Name        => 'Admin Comment',                           # loc
        Description => 'Default admin comment template',          # loc
        Content     =>
        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
 
 
 RT-Attach-Message: yes
 
 
@@ -486,8 +547,18 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
 }
 }
 },
 }
 }
 },
+    {  Queue       => 0,
+       Name        => 'Custom Field Transaction',
+       Description => 'Custom field value changed',
+       Content     => q[Subject: {$Transaction->BriefDescription()}
+
+{RT->Config->Get('WebURL')}Ticket/Display.html?id={$Ticket->id}
+
+{$Transaction->Content()}
+],
+    },
+
 );
 );
-# }}}
 
 @Scrips = (
     {  Description    => 'On Correspond Open Tickets',
 
 @Scrips = (
     {  Description    => 'On Correspond Open Tickets',
@@ -510,14 +581,18 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
        ScripCondition => 'On Correspond',
        ScripAction    => 'Notify AdminCcs',
        Template       => 'Admin Correspondence' },
        ScripCondition => 'On Correspond',
        ScripAction    => 'Notify AdminCcs',
        Template       => 'Admin Correspondence' },
-    {  Description    => 'On Correspond Notify Requestors and Ccs',
-       ScripCondition => 'On Correspond',
-       ScripAction    => 'Notify Requestors And Ccs',
-       Template       => 'Correspondence' },
-    {  Description    => 'On Correspond Notify Other Recipients',
+#    {  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',
        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',
     {  Description    => 'On Comment Notify AdminCcs as Comment',
        ScripCondition => 'On Comment',
        ScripAction    => 'Notify AdminCcs As Comment',
@@ -534,6 +609,10 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
        ScripCondition => 'On Transaction',
        ScripAction    => 'Extract Subject Tag',
        Template       => 'Blank' },
        ScripCondition => 'On Transaction',
        ScripAction    => 'Extract Subject Tag',
        Template       => 'Blank' },
+    {  Description    => 'On Correspond, cancel future resolve',
+       ScripCondition => 'On Correspond',
+       ScripAction    => 'Cancel Scheduled Resolve',
+       Template       => 'Blank' },
 );
 
 @ACL = (
 );
 
 @ACL = (
@@ -583,22 +662,153 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
         OrderBy => 'LastUpdated',
         Order   => 'DESC' },
     },
         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 <cf-name> 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;