From: Jan Büren Date: Sat, 29 Jul 2017 18:19:10 +0000 (+0200) Subject: GenericTranslation um Vorbelegungen für E-Mail-Texte erweitert X-Git-Tag: release-3.5.4~939 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=ee056f2390b1c698e70b1914a73f1a6f0c016f4b;p=kivitendo-erp.git GenericTranslation um Vorbelegungen für E-Mail-Texte erweitert Neuer Menüpunkt: System-> Sprachen und Übersetzungen -> Vorbelegte Texte für E-Mail Falls ein Ansprechpartner hinterlegt ist, wird entsprechend des Geschlechts und der vorbelegten Textbaustein die Anrede zusammengesetzt. Falls kein Ansprechpartner gewählt ist, kommt die allgemeine Grußformel. Bis auf Gutschrift und Mahnung(en) sind alle Workflow Masken im Ein- und Verkauf umgesetzt. --- diff --git a/bin/mozilla/generictranslations.pl b/bin/mozilla/generictranslations.pl index 5d945566f..d3341f212 100644 --- a/bin/mozilla/generictranslations.pl +++ b/bin/mozilla/generictranslations.pl @@ -5,6 +5,23 @@ use SL::Locale::String qw(t8); use strict; +# convention: +# preset_text_$formname will generate a input textarea +# and will be preset in $form email dialog if the form name matches + +my %mail_strings = ( + salutation_male => t8('Salutation male'), + salutation_female => t8('Salutation female'), + salutation_general => t8('Salutation general'), + salutation_punctuation_mark => t8('Salutation punctuation mark'), + preset_text_sales_quotation => t8('Preset email text for sales quotations'), + preset_text_sales_order => t8('Preset email text for sales orders'), + preset_text_sales_delivery_order => t8('Preset email text for sales delivery orders'), + preset_text_invoice => t8('Preset email text for sales invoices'), + preset_text_request_quotation => t8('Preset email text for requests (rfq)'), + preset_text_purchase_order => t8('Preset email text for purchase orders'), +); + sub edit_greetings { $main::lxdebug->enter_sub(); @@ -135,6 +152,61 @@ sub save_sepa_strings { $main::lxdebug->leave_sub(); } +sub edit_email_strings { + $main::lxdebug->enter_sub(); + + $main::auth->assert('config'); + + my $form = $main::form; + my $locale = $main::locale; + + $form->get_lists('languages' => 'LANGUAGES'); + unshift @{ $form->{LANGUAGES} }, { 'id' => 'default', }; + + my (%translations, $translation_list); + foreach (keys %mail_strings) { + $translation_list = GenericTranslations->list(translation_type => $_); + %translations = map { ( ($_->{language_id} || 'default') => $_->{translation} ) } @{ $translation_list }; + + foreach my $language (@{ $form->{LANGUAGES} }) { + $language->{$_} = $translations{$language->{id}}; + } + } + setup_generictranslations_edit_email_strings_action_bar(); + + $form->{title} = $locale->text('Edit preset email strings'); + $form->header(); + print $form->parse_html_template('generictranslations/edit_email_strings',{ 'MAIL_STRINGS' => \%mail_strings }); + + $main::lxdebug->leave_sub(); +} + +sub save_email_strings { + $main::lxdebug->enter_sub(); + + $main::auth->assert('config'); + + my $form = $main::form; + my $locale = $main::locale; + + $form->get_lists('languages' => 'LANGUAGES'); + + unshift @{ $form->{LANGUAGES} }, { }; + foreach my $language (@{ $form->{LANGUAGES} }) { + foreach (keys %mail_strings) { + GenericTranslations->save('translation_type' => $_, + 'translation_id' => undef, + 'language_id' => $language->{id}, + 'translation' => $form->{"translation__" . ($language->{id} || 'default') . "__" . $_}, + ); + } + } + $form->{message} = $locale->text('The Mail strings have been saved.'); + + edit_email_strings(); + + $main::lxdebug->leave_sub(); +} sub setup_generictranslations_edit_greetings_action_bar { my %params = @_; @@ -163,5 +235,18 @@ sub setup_generictranslations_edit_sepa_strings_action_bar { ); } } +sub setup_generictranslations_edit_email_strings_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Save'), + submit => [ '#form', { action => "save_email_strings" } ], + accesskey => 'enter', + ], + ); + } +} 1; diff --git a/doc/changelog b/doc/changelog index b36292e7e..d10b4c89b 100644 --- a/doc/changelog +++ b/doc/changelog @@ -9,6 +9,7 @@ kleinere neue Features und Detailverbesserungen: - SEPA-XML: alle Sonderzeichen filtern - SEPA-Export: Export wieder rückgängig machen, falls noch Status offen - Stammdaten -> Berichte -> Artikel: Standardlager und Lagerplatz optional anzeigen + - Vorbelegte Texte inkl. Ansprechpartner für den E-Mail-Versand bei allen Workflows hinzugefügt. 2017-07-17 - Release 3.5.0 diff --git a/locale/de/all b/locale/de/all index f742c36ab..4df7f503d 100755 --- a/locale/de/all +++ b/locale/de/all @@ -1132,6 +1132,7 @@ $self->{texts} = { 'Edit payment term' => 'Zahlungsbedingungen bearbeiten', 'Edit picture' => 'Bild bearbeiten', 'Edit pre-defined text' => 'Vordefinierten Textblock bearbeiten', + 'Edit preset email strings' => 'Vorbelegte Texte für E-Mails editieren', 'Edit price rule' => 'Preisregel bearbeiten', 'Edit pricegroup' => 'Preisgruppe bearbeiten', 'Edit prices and discount (if not used, textfield is ONLY set readonly)' => 'Preise und Rabatt in Formularen frei anpassen (falls deaktiviert, wird allerdings NUR das textfield auf READONLY gesetzt / kann je nach Browserversion und technischen Fähigkeiten des Anwenders noch umgangen werden)', @@ -2200,6 +2201,13 @@ $self->{texts} = { 'Prepare bank collection via SEPA XML' => 'Einzug via SEPA XML vorbereiten', 'Prepare bank transfer via SEPA XML' => 'Überweisung via SEPA XML vorbereiten', 'Prepayment' => 'Vorauszahlung', + 'Preset email strings' => 'Vorbelegte E-Mail-Texte', + 'Preset email text for purchase orders' => 'Vorbelegter E-Mail-Text für Einkaufsaufträge', + 'Preset email text for requests (rfq)' => 'Vorbelegter E-Mail-Text für Anfragen', + 'Preset email text for sales delivery orders' => 'Vorbelegter E-Mail-Text für Verkaufs-Lieferscheine', + 'Preset email text for sales invoices' => 'Vorbelegter E-Mail-Text für Rechnungen', + 'Preset email text for sales orders' => 'Vorbelegter E-Mail-Text für Aufträge', + 'Preset email text for sales quotations' => 'Vorbelegter E-Mail-Text für Angebote', 'Preview' => 'Vorschau', 'Preview Mode' => 'Vorschaumodus', 'Previous transdate text' => 'wurde gespeichert am', @@ -2530,10 +2538,13 @@ $self->{texts} = { 'Sales quotation #1 has been deleted.' => 'Angebot #1 wurde gelöscht.', 'Sales quotation #1 has been updated.' => 'Angebot #1 wurde aktualisiert.', 'Salesman' => 'Verkäufer/in', - 'Salesman (ID)' => 'Verkäufer/in (ID)', 'Salesman (database ID)' => 'Verkäufer/in (Datenbank-ID)', 'Salesman (login)' => 'Verkäufer/in (Login)', 'Salesperson' => 'Verkäufer', + 'Salutation female' => 'Anrede weiblich', + 'Salutation general' => 'Anrede anonym (personenlos)', + 'Salutation male' => 'Anrede männlich', + 'Salutation punctuation mark' => 'Zeichensetzungs-Trenner nach der Anrede-Formel (Punkt, Ausrufezeichen, etc)', 'Same Filename !' => 'unveränderter Dateiname !', 'Same as the quote character' => 'Wie Anführungszeichen', 'Sat. Fax' => 'Sat. Fax', @@ -2901,6 +2912,7 @@ $self->{texts} = { 'The ID #1 is not a valid database ID.' => 'Die ID #1 ist keine gültige Datenbank-ID.', 'The LDAP server "#1:#2" is unreachable. Please check config/kivitendo.conf.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/kivitendo.conf.', 'The MT940 import needs an import profile called MT940' => 'Der MT940 Import benötigt ein Importprofil mit dem Namen "MT940"', + 'The Mail strings have been saved.' => 'Die vorbelegten E-Mail-Texte wurden gespeichert.', 'The PDF has been created' => 'Die PDF-Datei wurde erstellt.', 'The PDF has been printed' => 'Das PDF-Dokument wurde gedruckt.', 'The SEPA export has been created.' => 'Der SEPA-Export wurde erstellt', diff --git a/menus/user/00-erp.yaml b/menus/user/00-erp.yaml index c520c4b68..eae8faf77 100644 --- a/menus/user/00-erp.yaml +++ b/menus/user/00-erp.yaml @@ -1200,6 +1200,13 @@ module: generictranslations.pl params: action: edit_sepa_strings +- parent: system_languages_and_translations + id: system_languages_and_translations_email_strings + name: Preset email strings + order: 500 + module: generictranslations.pl + params: + action: edit_email_strings - parent: system id: system_payment_terms name: Payment Terms diff --git a/templates/webpages/generictranslations/edit_email_strings.html b/templates/webpages/generictranslations/edit_email_strings.html new file mode 100644 index 000000000..c24a8c831 --- /dev/null +++ b/templates/webpages/generictranslations/edit_email_strings.html @@ -0,0 +1,37 @@ +[%- USE T8 %] +[%- USE HTML %] +

[% HTML.escape(title) %]

+[%- IF message %] +

+ [% HTML.escape(message) %] +

+[%- END %] +
+ + [%- FOREACH mail_string IN MAIL_STRINGS.keys.sort %] + + + + + + [%- FOREACH language = LANGUAGES %] + + + + + [%- END %] + [%- END %] +
 [% MAIL_STRINGS.$mail_string %]
+ [%- IF language.id == 'default' %] + [% 'Default (no language selected)' | $T8 %] + [%- ELSE %] + [%- HTML.escape(language.description) %] + [%- END %] + + [%- IF mail_string.search('preset') %] + + [%- ELSE %] + + [%- END %] +
+