From 6d72797b466929192a82292be31debaaa745e795 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Mon, 19 Jan 2015 23:18:55 +0100 Subject: FilterElementPre: handle data from backend module --- Kernel/Output/HTML/ResponseChangeDefaultTo.pm | 42 +++++++++++++++++++++++++-- 1 file 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}; } -- cgit v1.2.3-1-g7c22