RT# 75322 Add ticket action Quiet Resolve
[freeside.git] / rt / etc / initialdata
index 9085050..8769fed 100644 (file)
     #   ExecModule           => 'CustomFieldChange',
     #   ApplicableTransTypes => 'Any',
     #},
-
+    {  Name                 => 'On Resolve Allow Quiet',
+       Description          => 'Whenever a ticket is resolved, '.
+                               'except with resolve_quiet',
+       ApplicableTransTypes => 'Status',
+       ExecModule           => 'StatusChangeQuietResolve',
+    },
 );
 
 @Templates = (
@@ -319,6 +324,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
@@ -827,8 +936,12 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
        ScripCondition => 'On Owner Change',
        ScripAction    => 'Notify Owner',
        Template       => 'Transaction in HTML' },
-    {  Description    => 'On Resolve Notify Requestors',
-       ScripCondition => 'On Resolve',
+#    {  Description    => 'On Resolve Notify Requestors',
+#       ScripCondition => 'On Resolve',
+#       ScripAction    => 'Notify Requestors',
+#       Template       => 'Resolved in HTML' },
+    {  Description    => 'On Resolve Notify Requestors, Allow Quiet Resolve',
+       ScripCondition => 'On Resolve Allow Quiet',
        ScripAction    => 'Notify Requestors',
        Template       => 'Resolved in HTML' },
     {  Description    => "On transaction, add any tags in the transaction's subject to the ticket's subject",
@@ -964,6 +1077,10 @@ Hour:         { $SubscriptionObj->SubValue('Hour') }
     # superseded by "notify owner and adminccs"
     'notify adminccs'           => { 'transaction' => 1 },
   },
+  'on resolve' => {
+    # superseded by "On Resolve Notify Requestors, Allow Quiet Resolve"
+    'notify requestors' => { 'resolved in html' => 1 },
+  },
 );
 
 # -*- perl -*-