RT# 75628 - Added AutoreplyOrCorrespondence template to freeside core RT.
[freeside.git] / rt / etc / initialdata
index 931b318..aa2010f 100644 (file)
       Description => 'Sends mail to explicitly listed Ccs and Bccs',      # loc
       ExecModule  => 'NotifyAsComment',
       Argument    => 'OtherRecipients' },
-# deprecated
-#    { Name        => 'Notify Other Recipients',                           # loc
-#      Description => 'Sends mail to explicitly listed Ccs and Bccs',      # loc
-#      ExecModule  => 'Notify',
-#      Argument    => 'OtherRecipients' },
+# deprecated?  now default create scrips use it in 4.2
+    { 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
     { Name        => 'Open Tickets',                                      # loc
       Description => 'Open tickets on correspondence',                    # loc
       ExecModule  => 'AutoOpen' },
-    { Name        => 'Open Inactive Tickets',                             # loc
-      Description => 'Open inactive tickets',                             # loc
-      ExecModule  => 'AutoOpenInactive' },
     { Name        => 'Extract Subject Tag',                               # loc
       Description => 'Extract tags from a Transaction\'s subject and add them to the Ticket\'s subject.', # loc
       ExecModule  => 'ExtractSubjectTag' },
@@ -322,6 +319,110 @@ you may reply to this message.</p>
 ],
     },
     {  Queue       => '0',
+       Name        => 'AutoreplyOrCorrespondence',                      # loc
+       Description => 'Plaintext AutoreplyOrCorrespondence template',   # loc
+       Content     => q[{
+      use RT::Template;
+      my $creator_name = $Ticket->CreatorObj->Name;
+      my $requestors = $Ticket->Requestors->UserMembersObj;
+      my ( $c_requestor, $r_count ) = ( 0, 0 );
+      while ( my $r = $requestors->Next() ) {
+          if ( $r->Name eq $creator_name ) {
+              $c_requestor++;
+          }
+          else {
+              $r_count++;
+          }
+      }
+      my $template = new RT::Template($RT::SystemUser);
+      my $template_name;
+
+      #if the creator is not a requestor or
+      #there is more than one requestor ( who's not the creator )
+      #use the Correspondence template
+      if ( ! $c_requestor || $r_count ) {
+          $template_name = 'Correspondence';
+      }
+      else {
+          #otherwise use the Autoreply template
+          $template_name = 'Autoreply';
+      }
+
+      #Load the Queue Template
+      $template->LoadQueueTemplate(
+          Queue => $Ticket->Queue,
+          Name => $template_name,
+      );
+      #if there's no Queue Template attempt to find a Global one.
+      unless ( $template->id ) {
+          $template->LoadGlobalTemplate( $template_name );
+          unless ( $template->id ) {
+              $RT::Logger->error("Could not load template : $template_name")
+          }
+      }
+      #Process embedded fields & expressions of true templates;
+      #note that we can only meaningfully use the body
+      my($ret, $msg) = $template->Parse(
+                           TicketObj => $Ticket,
+                           TransactionObj => $Transaction,
+                       );
+      $ret ? $template->MIMEObj->stringify : $msg;
+    }
+],
+    },
+    {  Queue       => '0',
+       Name        => 'AutoreplyOrCorrespondence in HTML',              # loc
+       Description => 'HTML AutoreplyOrCorrespondence template',   # loc
+       Content     => q[{
+      use RT::Template;
+      my $creator_name = $Ticket->CreatorObj->Name;
+      my $requestors = $Ticket->Requestors->UserMembersObj;
+      my ( $c_requestor, $r_count ) = ( 0, 0 );
+      while ( my $r = $requestors->Next() ) {
+          if ( $r->Name eq $creator_name ) {
+              $c_requestor++;
+          }
+          else {
+              $r_count++;
+          }
+      }
+      my $template = new RT::Template($RT::SystemUser);
+      my $template_name;
+
+      #if the creator is not a requestor or
+      #there is more than one requestor ( who's not the creator )
+      #use the Correspondence template
+      if ( ! $c_requestor || $r_count ) {
+          $template_name = 'Correspondence in HTML';
+      }
+      else {
+          #otherwise use the Autoreply in HTML template
+          $template_name = 'Autoreply in HTML';
+      }
+
+      #Load the Queue Template
+      $template->LoadQueueTemplate(
+          Queue => $Ticket->Queue,
+          Name => $template_name,
+      );
+      #if there's no Queue Template attempt to find a Global one.
+      unless ( $template->id ) {
+          $template->LoadGlobalTemplate( $template_name );
+          unless ( $template->id ) {
+              $RT::Logger->error("Could not load template : $template_name")
+          }
+      }
+      #Process embedded fields & expressions of true templates;
+      #note that we can only meaningfully use the body
+      my($ret, $msg) = $template->Parse(
+                           TicketObj => $Ticket,
+                           TransactionObj => $Transaction,
+                       );
+      $ret ? $template->MIMEObj->stringify : $msg;
+    }
+],
+    },
+    {  Queue       => '0',
        Name        => 'Transaction',                     # loc
        Description => 'Plain text transaction template', # loc
        Content     => 'RT-Attach-Message: yes
@@ -801,9 +902,14 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
 #       ScripCondition => 'On Correspond',
 #       ScripAction    => 'Notify Requestors And Ccs',
 #       Template       => 'Correspondence in HTML' },
-    {  Description    => 'On Correspond Open Inactive Tickets',
+    {  Description    => 'On Correspond Notify Requestors, Ccs, and Other Recipients',
        ScripCondition => 'On Correspond',
-       ScripAction    => 'Open Inactive Tickets',
+       ScripAction    => 'Notify Requestors, Ccs, and Other Recipients',
+       Template       => 'Correspondence', },
+
+    {  Description    => 'On Correspond Open Tickets',
+       ScripCondition => 'On Correspond',
+       ScripAction    => 'Open Tickets',
        Template       => 'Blank' },
     {  Description    => 'On Create Autoreply To Requestors',
        ScripCondition => 'On Create',
@@ -841,6 +947,10 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
        ScripCondition => 'On Forward Ticket',
        ScripAction    => 'Send Forward',
        Template       => 'Forward Ticket' },
+    {  Description    => 'On Correspond, cancel future resolve',
+       ScripCondition => 'On Correspond',
+       ScripAction    => 'Cancel Scheduled Resolve',
+       Template       => 'Blank' },
 );
 
 @ACL = (
@@ -950,8 +1060,8 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
     # RT 4.2
     # superseded by "notify owner and adminccs"
     'notify adminccs'           => { 'admin correspondence' => 1 },
-    # superseded by "open inactive tickets"
-    'open tickets'              => { 'blank' => 1 },
+    # the new way, but doesn't work right vs. "open tickets"
+    'open inactive tickets'              => { 'blank' => 1 },
   },
   'on create' => {
     # RT 4.2