diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2015-01-19 23:18:55 +0100 |
---|---|---|
committer | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2015-01-19 23:29:24 +0100 |
commit | 6d72797b466929192a82292be31debaaa745e795 (patch) | |
tree | b951e1b1db6ce585824cece8d3ad4058197d4600 | |
parent | f249fd0169461488bb531970dafc20ddc6345eca (diff) | |
download | DefaultRecipient-6d72797b466929192a82292be31debaaa745e795.tar.gz DefaultRecipient-6d72797b466929192a82292be31debaaa745e795.tar.bz2 DefaultRecipient-6d72797b466929192a82292be31debaaa745e795.zip |
FilterElementPre: handle data from backend module
-rw-r--r-- | Kernel/Output/HTML/ResponseChangeDefaultTo.pm | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/Kernel/Output/HTML/ResponseChangeDefaultTo.pm b/Kernel/Output/HTML/ResponseChangeDefaultTo.pm index e9b7676..42b6704 100644 --- a/Kernel/Output/HTML/ResponseChangeDefaultTo.pm +++ b/Kernel/Output/HTML/ResponseChangeDefaultTo.pm @@ -56,9 +56,45 @@ sub Run { } } - # remove preselected "To" address - $Self->{LayoutObject}->{BlockData} = - grep { $_->{Name} ne 'PreFilledToRow' } @BlockData; + # return if not generated from template + return unless $Ticket{ResponseID}; + + # get all ResponseChangeDefaultTo + my %MappedResponseChangeDefaultTo = + $Self->{ResponseChangeDefaultToObject}->MappingList( + ResponseID => $Ticket{ResponseID}, + ); + + my $RemoveDefault = 0; + my @Addresses = (); + foreach ( values %MappedResponseChangeDefaultTo ) { + my $ID = $_->{MappingID}; + my %ResponseChangeDefaultTo = + $Self->{ResponseChangeDefaultToObject}->Get( + ID => $ID, + ); + + $RemoveDefault = 1 if $ResponseChangeDefaultTo{RemoveDefault}; + if ( $ResponseChangeDefaultTo{AddNew} ) { + push @Addresses, $ResponseChangeDefaultTo{NewAddress}; + } + } + + if ( $RemoveDefault ) { + # remove preselected "To" address + $Self->{LayoutObject}->{BlockData} = + grep { $_->{Name} ne 'PreFilledToRow' } @BlockData; + } + + # add new addresses + foreach my $Address ( @Addresses ) { + $Self->{LayoutObject}->Block( + Name => 'PreFilledToRow', + Data => { + Email => $Address, + }, + ); + } return $Param{Data}; } |