From 687f2d9638182ead968d333af325c912d903b675 Mon Sep 17 00:00:00 2001 From: Martin Helmling Date: Tue, 29 Sep 2015 12:46:38 +0200 Subject: [PATCH] Konfigurierbares E-Mail-Journal MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In der Mandantenkonfig kann nun das Speichern von gesendeten E-Mails entweder - ganz abgeschaltet werden - ohne Anhänge speichern - mit Anhängen speichern (default) konfiguriert werden. Falls ganz abgeschaltet, erscheint im Journal dazu ein Hinweis --- SL/Controller/EmailJournal.pm | 3 +++ SL/DB/MetaSetup/Default.pm | 1 + SL/Mailer.pm | 10 ++++++++-- locale/de/all | 5 +++++ sql/Pg-upgrade2/defaults_enable_email_journal.sql | 5 +++++ templates/webpages/client_config/_features.html | 8 ++++++++ 6 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 sql/Pg-upgrade2/defaults_enable_email_journal.sql diff --git a/SL/Controller/EmailJournal.pm b/SL/Controller/EmailJournal.pm index 7c40a0de7..69a155802 100644 --- a/SL/Controller/EmailJournal.pm +++ b/SL/Controller/EmailJournal.pm @@ -27,6 +27,9 @@ __PACKAGE__->run_before('add_stylesheet'); sub action_list { my ($self) = @_; + if ( $::instance_conf->get_email_journal == 0 ) { + flash('info', $::locale->text('In client config the mail saving into the journal is actual disabled.')); + } $self->render('email_journal/list', title => $::locale->text('Email journal'), ENTRIES => $self->models->get, diff --git a/SL/DB/MetaSetup/Default.pm b/SL/DB/MetaSetup/Default.pm index 2f407eae8..821ed98fe 100644 --- a/SL/DB/MetaSetup/Default.pm +++ b/SL/DB/MetaSetup/Default.pm @@ -46,6 +46,7 @@ __PACKAGE__->meta->columns( dunning_ar_amount_fee => { type => 'integer' }, dunning_ar_amount_interest => { type => 'integer' }, duns => { type => 'text' }, + email_journal => { type => 'integer', default => 2 }, expense_accno_id => { type => 'integer' }, fxgain_accno_id => { type => 'integer' }, fxloss_accno_id => { type => 'integer' }, diff --git a/SL/Mailer.pm b/SL/Mailer.pm index dc6002b42..653685058 100644 --- a/SL/Mailer.pm +++ b/SL/Mailer.pm @@ -236,12 +236,18 @@ sub _all_recipients { sub _store_in_journal { my ($self, $status, $extended_status) = @_; + my $journal_enable = $::instance_conf->get_email_journal; + + return if $journal_enable == 0; + $status //= $self->{driver}->status if $self->{driver}; $status //= 'failed'; $extended_status //= $self->{driver}->extended_status if $self->{driver}; $extended_status //= 'unknown error'; - my @attachments = grep { $_ } map { + my @attachments; + + @attachments = grep { $_ } map { my $part = $self->_create_attachment_part($_); if ($part) { SL::DB::EmailJournalAttachment->new( @@ -250,7 +256,7 @@ sub _store_in_journal { content => $part->body, ) } - } @{ $self->{attachments} || [] }; + } @{ $self->{attachments} || [] } if $journal_enable > 1; my $headers = join "\r\n", (bundle_by { join(': ', @_) } 2, @{ $self->{headers} || [] }); diff --git a/locale/de/all b/locale/de/all index 9fedf0f55..3e2289a56 100755 --- a/locale/de/all +++ b/locale/de/all @@ -1365,6 +1365,7 @@ $self->{texts} = { 'Import profiles' => 'Import-Profil', 'Import result' => 'Import-Ergebnis', 'Import summary' => 'Import-Zusammenfassung', + 'In client config the mail saving into the journal is actual disabled.' => 'Das Speichern von versendeten E-Mails ist derzeit in der Mandantenkonfigurierung abgeschaltet.', 'In order to do that hit the button "Delete transaction".' => 'Drücken Sie dafür auf den Button "Buchung löschen".', 'In order to migrate the old folder structure into the new structure you have to chose which client the old structure will be assigned to.' => 'Um die alte Ordnerstruktur in die neue Struktur zu migrieren, müssen Sie festlegen, welchem Mandanten die bisherige Struktur zugewiesen wird.', 'In order to use kivitendo you have to create at least a client, a user and a group.' => 'Um kivitendo zu nutzen, müssen Sie mindestens einen Mandanten, einen Benutzer und eine Gruppe anlegen.', @@ -1679,6 +1680,7 @@ $self->{texts} = { 'No Company Address given' => 'Keine Firmenadresse hinterlegt!', 'No Company Name given' => 'Kein Firmenname hinterlegt!', 'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden', + 'No Journal' => 'Kein Journal', 'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Händler gefunden', 'No acceptance statuses has been created yet.' => 'Es wurde noch kein Abnahmestatus angelegt.', 'No action defined.' => 'Keine Aktion definiert.', @@ -2359,6 +2361,7 @@ $self->{texts} = { 'Sellprice significant places' => 'Verkaufspreis: Nachkommastellen', 'Semicolon' => 'Semikolon', 'Sender' => 'AbsenderIn', + 'Sent emails can be stored with or without attachments in database or general not stored' => 'gesendete E-Mails können mit oder ohne Anhänge in der Datenbank gespeichert werden', 'Sent on' => 'Verschickt am', 'Sep' => 'Sep', 'Separator' => 'Trennzeichen', @@ -3178,8 +3181,10 @@ $self->{texts} = { 'What type of item is this?' => 'Was ist dieser Artikel?', 'When converting a requirement spec into a quotation or an oder each section gets converted into a line position in the new record. This is the article used by default for this conversion.' => 'Wenn ein Pflichtenheft in ein Angebot oder Auftrag umgewandelt wird, wird für jeden Abschnitt eine Position im neuen Beleg angelegt. Dies ist der Artikel, der standardmäßig bei dieser Umwandlung genutzt wird.', 'Which is located at doc/kivitendo-Dokumentation.pdf. Click here: ' => 'Diese befindet sich unter doc/kivitendo-Dokumentation.pdf. Klicken Sie hier:', + 'With Attachments' => 'Journal mit Anhängen', 'With Extension Of Time' => 'mit Dauerfristverlängerung', 'With the introduction of clients each client gets its own WebDAV folder.' => 'Mit der Einführung von Mandanten erhält jeder Mandant sein eigenes WebDAV-Verzeichnis.', + 'Without Attachments' => 'Journal ohne Anhänge', 'Workflow Delivery Order' => 'Workflow Lieferschein', 'Workflow purchase_order' => 'Workflow Lieferantenauftrag', 'Workflow request_quotation' => 'Workflow Preisanfrage', diff --git a/sql/Pg-upgrade2/defaults_enable_email_journal.sql b/sql/Pg-upgrade2/defaults_enable_email_journal.sql new file mode 100644 index 000000000..577057de4 --- /dev/null +++ b/sql/Pg-upgrade2/defaults_enable_email_journal.sql @@ -0,0 +1,5 @@ +-- @tag: defaults_enable_email_journal +-- @description: Email Journal konfigurierbar machen +-- @depends: email_journal + +ALTER TABLE defaults ADD COLUMN email_journal integer DEFAULT 2; diff --git a/templates/webpages/client_config/_features.html b/templates/webpages/client_config/_features.html index 14f6d10b1..744f77cbe 100644 --- a/templates/webpages/client_config/_features.html +++ b/templates/webpages/client_config/_features.html @@ -111,6 +111,14 @@ [% 'Manually sent E-Mails will have their BCC field appended with this address. Will not trigger for employees without the right to send bcc, and will not apply to mails sent by automated jobs.' | $T8 %] + + [% LxERP.t8('Email journal') %] + + [% L.select_tag('defaults.email_journal', [ [ 0, LxERP.t8('No Journal') ],[ 1, LxERP.t8('Without Attachments') ],[ 2, LxERP.t8('With Attachments') ] ], default=SELF.defaults.email_journal) %] + + [% 'Sent emails can be stored with or without attachments in database or general not stored' | $T8 %] + + [% LxERP.t8("Requirement Specs") %] -- 2.20.1