From 1362aa1c73ab8d82a6a70156e9b3397eb4490381 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Tue, 24 May 2016 21:46:10 +0200 Subject: Add possibility to also drop preselected Cc --- DefaultRecipient.sopm | 8 ++++- Kernel/Language/de_AgentDefaultRecipient.pm | 1 + Kernel/Modules/AdminDefaultRecipient.pm | 18 ++++++---- .../Output/HTML/ArticleCompose/DefaultRecipient.pm | 15 ++++++--- .../Templates/Standard/AdminDefaultRecipient.tt | 8 +++++ Kernel/System/DefaultRecipient.pm | 39 ++++++++++++---------- 6 files changed, 58 insertions(+), 31 deletions(-) diff --git a/DefaultRecipient.sopm b/DefaultRecipient.sopm index 7e3cd73..6d5dabf 100644 --- a/DefaultRecipient.sopm +++ b/DefaultRecipient.sopm @@ -1,7 +1,7 @@ DefaultRecipient - 1.0.2 + 1.0.3 5.0.x spline.de https://github.com/AlexanderS/OTRS-DefaultRecipient @@ -25,6 +25,7 @@ + @@ -66,4 +67,9 @@ + + + + + diff --git a/Kernel/Language/de_AgentDefaultRecipient.pm b/Kernel/Language/de_AgentDefaultRecipient.pm index 654dab3..892a55a 100644 --- a/Kernel/Language/de_AgentDefaultRecipient.pm +++ b/Kernel/Language/de_AgentDefaultRecipient.pm @@ -20,6 +20,7 @@ sub Data { $Self->{Translation}->{"Don't forget to add new DefaultRecipients to templates."} = 'Vergessen Sie nicht, die Standardempfänger den Vorlagen zuzuordnern.'; $Self->{Translation}->{"Remove 'To'"} = "'An' entfernen"; + $Self->{Translation}->{"Remove 'Cc'"} = "'Cc' entfernen"; $Self->{Translation}->{'Manage Template-DefaultRecipient Relations'} = 'Standardempfänger-Vorlagenzuordnungen verwalten'; $Self->{Translation}->{'Default Recipients'} = 'Standardempfänger'; diff --git a/Kernel/Modules/AdminDefaultRecipient.pm b/Kernel/Modules/AdminDefaultRecipient.pm index 5269c75..1b8d6c3 100644 --- a/Kernel/Modules/AdminDefaultRecipient.pm +++ b/Kernel/Modules/AdminDefaultRecipient.pm @@ -67,7 +67,7 @@ sub Run { my $DefaultRecipientObject = $Kernel::OM->Get('Kernel::System::DefaultRecipient'); my @NewIDs = $ParamObject->GetArray( Param => 'IDs' ); my ( %GetParam, %Errors ); - for my $Parameter (qw(ID Title RemoveTo To Cc Bcc Comment)) { + for my $Parameter (qw(ID Title RemoveTo RemoveCc To Cc Bcc Comment)) { $GetParam{$Parameter} = $ParamObject->GetParam( Param => $Parameter ); @@ -161,7 +161,7 @@ sub Run { my @NewIDs = $ParamObject->GetArray( Param => 'IDs' ); my ( %GetParam, %Errors ); - for my $Parameter (qw(ID Title RemoveTo To Cc Bcc Comment)) { + for my $Parameter (qw(ID Title RemoveTo RemoveCc To Cc Bcc Comment)) { $GetParam{$Parameter} = $ParamObject->GetParam( Param => $Parameter ); } @@ -265,11 +265,14 @@ sub _Edit { $LayoutObject->Block( Name => 'ActionList' ); $LayoutObject->Block( Name => 'ActionOverview' ); - $Param{DefaultRecipientRemoveToOption} = $LayoutObject->BuildSelection( - Data => $ConfigObject->Get('YesNoOptions'), - Name => 'RemoveTo', - SelectedID => $Param{RemoveTo} || 0, - ); + for my $addr (qw(To Cc)) { + $Param{'DefaultRecipientRemove' . $addr . 'Option'} = + $LayoutObject->BuildSelection( + Data => $ConfigObject->Get('YesNoOptions'), + Name => 'Remove' . $addr, + SelectedID => $Param{'Remove' . $addr} || 0, + ); + } $LayoutObject->Block( Name => 'OverviewUpdate', @@ -329,6 +332,7 @@ sub _Overview { Name => 'OverviewResultRow', Data => { RemoveToYesNo => $YesNo{ $DefaultRecipient{RemoveTo} }, + RemoveCcYesNo => $YesNo{ $DefaultRecipient{RemoveCc} }, %DefaultRecipient, }, ); diff --git a/Kernel/Output/HTML/ArticleCompose/DefaultRecipient.pm b/Kernel/Output/HTML/ArticleCompose/DefaultRecipient.pm index 2a8a9a9..6b92ea4 100644 --- a/Kernel/Output/HTML/ArticleCompose/DefaultRecipient.pm +++ b/Kernel/Output/HTML/ArticleCompose/DefaultRecipient.pm @@ -51,14 +51,16 @@ sub Run { TemplateID => $Self->{ResponseID}, ); - my $RemoveTo = 0; + my %Remove = ( To => 0, Cc => 0 ); my %Addresses = ( To => [], Cc => [], Bcc => [] ); foreach my $ID ( values %MappedDefaultRecipient ) { my %DefaultRecipient = $DefaultRecipientObject->Get( ID => $ID, ); - $RemoveTo = 1 if $DefaultRecipient{RemoveTo}; + for my $addr (qw(To Cc)) { + $Remove{$addr} = 1 if $DefaultRecipient{'Remove' . $addr}; + } for my $addr (qw(To Cc Bcc)) { if ( $DefaultRecipient{ $addr } ne '' ) { @@ -67,13 +69,16 @@ sub Run { } } - if ( $RemoveTo ) { - # remove preselected "To" address + if ( $Remove{To} || $Remove{Cc} ) { + # remove preselected addresses my @blocks = (); BLOCK: for my $block (@{$Self->{LayoutObject}{_JSOnDocumentComplete}}) { - next BLOCK if $block =~ m/Core\.Agent\.CustomerSearch\.AddTicketCustomer\(\s*'ToCustomer'/; + for my $addr (qw(To Cc)) { + next BLOCK if $Remove{$addr} && + $block =~ qr/Core\.Agent\.CustomerSearch\.AddTicketCustomer\(\s*'${addr}Customer'/; + } push @blocks, $block; } diff --git a/Kernel/Output/HTML/Templates/Standard/AdminDefaultRecipient.tt b/Kernel/Output/HTML/Templates/Standard/AdminDefaultRecipient.tt index 1d54bb7..f6f268c 100644 --- a/Kernel/Output/HTML/Templates/Standard/AdminDefaultRecipient.tt +++ b/Kernel/Output/HTML/Templates/Standard/AdminDefaultRecipient.tt @@ -71,6 +71,7 @@ [% Translate("Title") | html %] [% Translate("Remove 'To'") | html %] + [% Translate("Remove 'Cc'") | html %] [% Translate("To") | html %] [% Translate("Cc") | html %] [% Translate("Bcc") | html %] @@ -97,6 +98,7 @@ [% Data.Title | html %] [% Translate(Data.RemoveToYesNo) | html %] + [% Translate(Data.RemoveCcYesNo) | html %] [% Data.To | html %] [% Data.Cc | html %] [% Data.Bcc | html %] @@ -161,6 +163,12 @@
+ +
+ [% Data.DefaultRecipientRemoveCcOption %] +
+
+
diff --git a/Kernel/System/DefaultRecipient.pm b/Kernel/System/DefaultRecipient.pm index 1c052cf..8fe818e 100644 --- a/Kernel/System/DefaultRecipient.pm +++ b/Kernel/System/DefaultRecipient.pm @@ -31,7 +31,7 @@ sub Add { my ( $Self, %Param ) = @_; # check needed stuff - for my $Needed (qw(Title RemoveTo To Cc Bcc Comment UserID)) { + for my $Needed (qw(Title RemoveTo RemoveCc To Cc Bcc Comment UserID)) { if ( ! defined $Param{$Needed} ) { my $LogObject = $Kernel::OM->Get('Kernel::System::Log'); $LogObject->Log( @@ -47,13 +47,14 @@ sub Add { # insert new DefaultRecipient return if !$DBObject->Do( SQL => 'INSERT INTO default_recipient ' - . '(title, remove_to, to_addr, cc_addr, bcc_addr, comments, ' - . ' create_time, create_by, change_time, change_by) ' + . '(title, remove_to, remove_cc, to_addr, cc_addr, bcc_addr, ' + . 'comments, create_time, create_by, change_time, change_by) ' . 'VALUES (?, ?, ?, ?, ?, ?, ' . 'current_timestamp, ?, current_timestamp, ?)', Bind => [ \$Param{Title}, \$Param{RemoveTo}, + \$Param{RemoveCc}, \$Param{To}, \$Param{Cc}, \$Param{Bcc}, @@ -89,7 +90,7 @@ sub Update { my ( $Self, %Param ) = @_; # check needed stuff - for my $Needed (qw(ID Title RemoveTo To Cc Bcc Comment UserID)) { + for my $Needed (qw(ID Title RemoveTo RemoveCc To Cc Bcc Comment UserID)) { if ( ! defined $Param{$Needed} ) { my $LogObject = $Kernel::OM->Get('Kernel::System::Log'); $LogObject->Log( @@ -105,12 +106,13 @@ sub Update { # insert new DefaultRecipient return if !$DBObject->Do( SQL => 'UPDATE default_recipient SET title = ?, remove_to = ?, ' - . 'to_addr = ?, cc_addr = ?, bcc_addr = ?, comments = ?, ' - . 'change_by = ?, change_time = current_timestamp ' - . 'WHERE id = ?', + . 'remove_cc = ?, to_addr = ?, cc_addr = ?, bcc_addr = ?, ' + . 'comments = ?, change_by = ?, ' + . 'change_time = current_timestamp WHERE id = ?', Bind => [ \$Param{Title}, \$Param{RemoveTo}, + \$Param{RemoveCc}, \$Param{To}, \$Param{Cc}, \$Param{Bcc}, @@ -140,9 +142,9 @@ sub Get { # get RrsponseChangeDefaultTO obejct return if !$DBObject->Prepare( - SQL => 'SELECT id, title, remove_to, to_addr, cc_addr, bcc_addr, ' - . 'comments, create_time, create_by, change_time, change_by ' - . 'FROM default_recipient WHERE id = ?', + SQL => 'SELECT id, title, remove_to, remove_cc, to_addr, cc_addr, ' + . 'bcc_addr, comments, create_time, create_by, change_time, ' + . 'change_by FROM default_recipient WHERE id = ?', Bind => [ \$Param{ID} ], Limit => 1, ); @@ -153,14 +155,15 @@ sub Get { ID => $Data[0], Title => $Data[1], RemoveTo => $Data[2], - To => $Data[3], - Cc => $Data[4], - Bcc => $Data[5], - Comment => $Data[6], - CreateTime => $Data[7], - CreateBy => $Data[8], - ChangeTime => $Data[9], - ChangeBy => $Data[10], + RemoveCc => $Data[3], + To => $Data[4], + Cc => $Data[5], + Bcc => $Data[6], + Comment => $Data[7], + CreateTime => $Data[8], + CreateBy => $Data[9], + ChangeTime => $Data[10], + ChangeBy => $Data[11], ); } -- cgit v1.2.3-1-g7c22