diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2013-10-09 22:22:11 -0700 | 
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2013-10-09 22:22:11 -0700 | 
| commit | a018b1a8d89157705bcb929425c03665d6842597 (patch) | |
| tree | d799573231c27f73ae7719b7527938b6f04bb286 /rt/lib/RT/Interface | |
| parent | 280522d98836e3bd1ce8e658cf0aa8432fc8efba (diff) | |
fix RT per-transaction recipient squelching, RT#25260
Diffstat (limited to 'rt/lib/RT/Interface')
| -rw-r--r-- | rt/lib/RT/Interface/Web.pm | 37 | 
1 files changed, 24 insertions, 13 deletions
| diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index ee10f01b8..3d1cd992d 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -1679,14 +1679,33 @@ sub ProcessUpdateMessage {          CurrentUser    => $args{'TicketObj'}->CurrentUser,      ); -    # If, after stripping the signature, we have no message, move the -    # UpdateTimeWorked into adjusted TimeWorked, so that a later -    # ProcessBasics can deal -- then bail out. +    my %txn_customfields; + +    foreach my $key ( keys %{ $args{ARGSRef} } ) { +      if ( $key =~ /^(?:Object-RT::Transaction--)?CustomField-(\d+)/ ) { +        next if $key =~ /(TimeUnits|Magic)$/; +        $txn_customfields{$key} = $args{ARGSRef}->{$key}; +      } +    } + +    # If, after stripping the signature, we have no message, create a  +    # Touch transaction if necessary      if (    not $args{ARGSRef}->{'UpdateAttachments'}          and not length $args{ARGSRef}->{'UpdateContent'} )      { -        if ( $args{ARGSRef}->{'UpdateTimeWorked'} ) { -            $args{ARGSRef}->{TimeWorked} = $args{TicketObj}->TimeWorked + delete $args{ARGSRef}->{'UpdateTimeWorked'}; +        #if ( $args{ARGSRef}->{'UpdateTimeWorked'} ) { +        #      $args{ARGSRef}->{TimeWorked} = $args{TicketObj}->TimeWorked + +        #          delete $args{ARGSRef}->{'UpdateTimeWorked'}; +        #  } + +        my $timetaken = $args{ARGSRef}->{'UpdateTimeWorked'}; +        if ( $timetaken or grep {length $_} values %txn_customfields ) { +            my ( $Transaction, $Description, $Object ) = +                $args{TicketObj}->Touch(  +                  CustomFields => \%txn_customfields, +                  TimeTaken => $timetaken +                ); +            return $Description;          }          return;      } @@ -1734,14 +1753,6 @@ sub ProcessUpdateMessage {      my $bcc = $args{ARGSRef}->{'UpdateBcc'};      my $cc  = $args{ARGSRef}->{'UpdateCc'}; -    my %txn_customfields; - -    foreach my $key ( keys %{ $args{ARGSRef} } ) { -      if ( $key =~ /^(?:Object-RT::Transaction--)?CustomField-(\d+)/ ) { -        $txn_customfields{$key} = $args{ARGSRef}->{$key}; -      } -    } -      my %message_args = (          CcMessageTo  => $cc,          BccMessageTo => $bcc, | 
