[Rt-commit] rt branch, 3.9-trunk, updated. rt-3.8.8-117-geed4c3a

Shawn Moore sartak at bestpractical.com
Tue Jul 6 17:35:21 EDT 2010


The branch, 3.9-trunk has been updated
       via  eed4c3ad66b735bc2c032dd0478d05854bfa5ba3 (commit)
      from  cc25c4749f366d7cc5159885c30e9678e99b7921 (commit)

Summary of changes:
 lib/RT/Interface/Web.pm |   67 +++++++++++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 25 deletions(-)

- Log -----------------------------------------------------------------
commit eed4c3ad66b735bc2c032dd0478d05854bfa5ba3
Author: Shawn M Moore <sartak at bestpractical.com>
Date:   Tue Jul 6 17:36:36 2010 -0400

    Refactor ProcessUpdateMessage to deal with Recipients separately

diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 50f0650..7e5f975 100755
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -1180,28 +1180,60 @@ sub ProcessUpdateMessage {
             : ( $args{ARGSRef}->{'AttachTickets'} ) );
     }
 
-    my $bcc = $args{ARGSRef}->{'UpdateBcc'};
-    my $cc  = $args{ARGSRef}->{'UpdateCc'};
-
     my %message_args = (
-        CcMessageTo  => $cc,
-        BccMessageTo => $bcc,
         Sign         => $args{ARGSRef}->{'Sign'},
         Encrypt      => $args{ARGSRef}->{'Encrypt'},
         MIMEObj      => $Message,
         TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'}
     );
 
+    _ProcessUpdateMessageRecipients(
+        MessageArgs => \%message_args,
+        %args,
+    );
+
+    my @results;
+    if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) {
+        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment(%message_args);
+        push( @results, $Description );
+        $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
+    } elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) {
+        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Correspond(%message_args);
+        push( @results, $Description );
+        $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
+    } else {
+        push( @results,
+            loc("Update type was neither correspondence nor comment.") . " " . loc("Update not recorded.") );
+    }
+    return @results;
+}
+
+sub _ProcessUpdateMessageRecipients {
+    my %args = (
+        ARGSRef           => undef,
+        TicketObj         => undef,
+        MessageArgs       => undef,
+        @_,
+    );
+
+    my $bcc = $args{ARGSRef}->{'UpdateBcc'};
+    my $cc  = $args{ARGSRef}->{'UpdateCc'};
+
+    my $message_args = $args{MessageArgs};
+
+    $message_args->{CcMessageTo} = $cc;
+    $message_args->{BccMessageTo} = $bcc;
+
     my @temp_squelch;
     foreach my $type (qw(Cc AdminCc)) {
         if (grep $_ eq $type || $_ eq ( $type . 's' ), @{ $args{ARGSRef}->{'SkipNotification'} || [] }) {
-            push @temp_squelch, map $_->address, Email::Address->parse( $message_args{$type} );
+            push @temp_squelch, map $_->address, Email::Address->parse( $message_args->{$type} );
             push @temp_squelch, $args{TicketObj}->$type->MemberEmailAddresses;
             push @temp_squelch, $args{TicketObj}->QueueObj->$type->MemberEmailAddresses;
         }
     }
     if (grep $_ eq 'Requestor' || $_ eq 'Requestors', @{ $args{ARGSRef}->{'SkipNotification'} || [] }) {
-            push @temp_squelch, map $_->address, Email::Address->parse( $message_args{Requestor} );
+            push @temp_squelch, map $_->address, Email::Address->parse( $message_args->{Requestor} );
             push @temp_squelch, $args{TicketObj}->Requestors->MemberEmailAddresses;
     }
 
@@ -1216,28 +1248,13 @@ sub ProcessUpdateMessage {
 
             my $var   = ucfirst($1) . 'MessageTo';
             my $value = $2;
-            if ( $message_args{$var} ) {
-                $message_args{$var} .= ", $value";
+            if ( $message_args->{$var} ) {
+                $message_args->{$var} .= ", $value";
             } else {
-                $message_args{$var} = $value;
+                $message_args->{$var} = $value;
             }
         }
     }
-
-    my @results;
-    if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) {
-        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment(%message_args);
-        push( @results, $Description );
-        $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
-    } elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) {
-        my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Correspond(%message_args);
-        push( @results, $Description );
-        $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
-    } else {
-        push( @results,
-            loc("Update type was neither correspondence nor comment.") . " " . loc("Update not recorded.") );
-    }
-    return @results;
 }
 
 # }}}

-----------------------------------------------------------------------


More information about the Rt-commit mailing list