$form->{print_and_post} = 0;
$form->{resubmit} = 0;
}
- if ($myconfig{role} eq 'admin') {
- $bcc = qq|
- <tr>
- <th align="right" nowrap="true">| . $locale->text('Bcc') . qq|</th>
- <td><input name="bcc" size="30" value="| . Q($form->{bcc}) . qq|"></td>
- </tr>
-|;
- }
- if ($form->{formname} =~ /(pick|packing|bin)_list/) {
- $form->{email} = $form->{shiptoemail} if $form->{shiptoemail};
- }
+ $form->{email} = $form->{shiptoemail} if $form->{shiptoemail} && $form->{formname} =~ /(pick|packing|bin)_list/;
if ($form->{"cp_id"} && !$form->{"email"}) {
CT->get_contact(\%myconfig, $form);
$form->{"email"} = $form->{"cp_email"};
}
- $name = $form->{ $form->{vc} };
- $name =~ s/--.*//g;
- $title = $locale->text('E-mail') . " $name";
+ $form->{ $form->{vc} } =~ /--/;
+ $title = $locale->text('E-mail') . " $`";
$form->{oldmedia} = $form->{media};
$form->{media} = "email";
- my %formname_translations =
- (
+ my %formname_translations = (
"bin_list" => $locale->text('Bin List'),
"credit_note" => $locale->text('Credit Note'),
"invoice" => $locale->text('Invoice'),
"sales_quotation" => $locale->text('Quotation'),
"storno_invoice" => $locale->text('Storno Invoice'),
"storno_packing_list" => $locale->text('Storno Packing List'),
- );
+ );
my $attachment_filename = $formname_translations{$form->{"formname"}};
my $prefix;
$form->{"format"} =~ /opendocument/i ? ".odt" :
$form->{"format"} =~ /html/i ? ".html" : "");
$attachment_filename =~ s/ /_/g;
- my %umlaute =
- (
- "ä" => "ae", "ö" => "oe", "ü" => "ue",
- "Ä" => "Ae", "Ö" => "Oe", "Ü" => "Ue",
- "ß" => "ss"
- );
- map({ $attachment_filename =~ s/$_/$umlaute{$_}/g; } keys(%umlaute));
+ my %umlaute = ( "ä" => "ae", "ö" => "oe", "ü" => "ue",
+ "Ä" => "Ae", "Ö" => "Oe", "Ü" => "Ue", "ß" => "ss");
+ map { $attachment_filename =~ s/$_/$umlaute{$_}/g } keys %umlaute;
} else {
$attachment_filename = "";
}
- if ($form->{"email"}) {
- $form->{"fokus"} = "Form.subject";
- } else {
- $form->{"fokus"} = "Form.email";
- }
+ $form->{"fokus"} = $form->{"email"} ? "Form.subject" : "Form.email";
$form->header;
- print qq|
-<body onload="fokus()">
-
-<form name="Form" method="post" action="$form->{script}">
+ my (@nh, %nh, @hiddenkeys);
+ @nh = qw(action email cc bcc subject message formname sendmode format header override); $nh{@nh} = (1)x@nh;
+ @hidden_keys = grep { !$nh{$_} } grep { !ref $form->{$_} } keys %$form;
-<table width="100%">
- <tr class="listtop">
- <th class="listtop">$title</th>
- </tr>
- <tr height="5"></tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align="right" nowrap>| . $locale->text('To') . qq|</th>
- <td><input name="email" size="30" value="| .
- Q($form->{"email"}) . qq|"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Cc') . qq|</th>
- <td><input name="cc" size="30" value="| .
- Q($form->{"cc"}) . qq|"></td>
- </tr>
- $bcc
- <tr>
- <th align="right" nowrap>| . $locale->text('Subject') . qq|</th>
- <td><input name="subject" size="30" value="| .
- Q($form->{"subject"}) . qq|"></td>
- </tr>
- <tr>
- <th align="right" nowrap>| . $locale->text('Attachment name') .
- qq|</th>
- <td><input name="attachment_filename" size="30" value="| .
- Q($attachment_filename) . qq|"></td>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <table>
- <tr>
- <th align="left" nowrap>| . $locale->text('Message') . qq|</th>
- </tr>
- <tr>
- <td><textarea name="message" rows="15" cols="60" wrap="soft">| .
- H($form->{"message"}) . qq|</textarea></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
-|;
-
- print_options();
-
- map { delete $form->{$_} }
- qw(action email cc bcc subject message formname sendmode format header override);
-
- # save all other variables
- foreach $key (keys %$form) {
- $form->{$key} =~ s/\"/"/g;
- print qq|<input type="hidden" name="$key" value="| . Q($form->{$key}) . qq|">\n|;
- }
-
- print qq|
- </td>
- </tr>
- <tr>
- <td><hr size="3" noshade></td>
- </tr>
-</table>
-
-<input type="hidden" name="nextsub" value="send_email">
-
-<br>
-<input name="action" class="submit" type="submit" value="|
- . $locale->text('Continue') . qq|">
-</form>
-
-</body>
-</html>
-|;
+ print $form->parse_html_template('generic/edit_email',
+ { title => $title,
+ a_filename => $attachment_filename,
+ _print_options_ => print_options('inline'),
+ HIDDEN => [ map +{ name => $_, value => $form->{$_} }, @hidden_keys ],
+ SHOW_BCC => $myconfig{role} eq 'admin' });
$lxdebug->leave_sub();
}
'Apr' => 'Apr',
'April' => 'April',
'Attachment' => 'als Anhang',
- 'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Aug' => 'Aug',
'August' => 'August',
'Billing Address' => 'Rechnungsadresse',
'Bin' => 'Lagerplatz',
'Bin List' => 'Lagerliste',
- 'Cc' => 'Cc',
'City' => 'Stadt',
'Company Name' => 'Firmenname',
'Confirmation' => 'Auftragsbestätigung',
'March' => 'März',
'May' => 'Mai',
'May ' => 'Mai',
- 'Message' => 'Nachricht',
'Minimum Amount' => 'Mindestbetrag',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
- 'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'Template' => 'Druckvorlage',
'Terms missing in row ' => '+Tage fehlen in Zeile ',
'Assemblies' => 'Erzeugnisse',
'Assembly Number missing!' => 'Erzeugnisnummer fehlt!',
'Attachment' => 'als Anhang',
- 'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Aug' => 'Aug',
'August' => 'August',
'Bought' => 'Gekauft',
'Buchungsgruppe' => 'Buchungsgruppe',
'Cannot delete item!' => 'Artikel kann nicht gelöscht werden!',
- 'Cc' => 'Cc',
'City' => 'Stadt',
'Company Name' => 'Firmenname',
'Confirm!' => 'Bestätigen Sie!',
'March' => 'März',
'May' => 'Mai',
'May ' => 'Mai',
- 'Message' => 'Nachricht',
'Microfiche' => 'Mikrofilm',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
- 'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'TOP100' => 'Top 100',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
'Apr' => 'Apr',
'April' => 'April',
'Attachment' => 'als Anhang',
- 'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Aug' => 'Aug',
'August' => 'August',
'Billing Address' => 'Rechnungsadresse',
'Bin' => 'Lagerplatz',
'Bin List' => 'Lagerliste',
- 'Cc' => 'Cc',
'City' => 'Stadt',
'Company Name' => 'Firmenname',
'Confirmation' => 'Auftragsbestätigung',
'March' => 'März',
'May' => 'Mai',
'May ' => 'Mai',
- 'Message' => 'Nachricht',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
- 'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
- 'To' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Unknown dependency \'%s\'.' => 'Unbekannte Abhängigkeit \'%s\'.',
'April' => 'April',
'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
'Attachment' => 'als Anhang',
- 'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Aug' => 'Aug',
'August' => 'August',
'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
'Cannot post payment!' => 'Zahlung kann nicht gebucht werden!',
'Cannot storno storno invoice!' => 'Kann eine Stornorechnung nicht stornieren',
- 'Cc' => 'Cc',
'City' => 'Stadt',
'Company Name' => 'Firmenname',
'Confirm!' => 'Bestätigen Sie!',
'May' => 'Mai',
'May ' => 'Mai',
'Memo' => 'Memo',
- 'Message' => 'Nachricht',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
- 'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'Tax Included' => 'Steuer im Preis inbegriffen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
- 'To' => 'An',
'Total' => 'Summe',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'April' => 'April',
'Are you sure you want to delete Invoice Number' => 'Soll die Rechnung mit folgender Nummer wirklich gelöscht werden:',
'Attachment' => 'als Anhang',
- 'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Aug' => 'Aug',
'August' => 'August',
'Cannot post payment for a closed period!' => 'Es können keine Zahlungen für abgeschlossene Bücher gebucht werden!',
'Cannot post payment!' => 'Zahlung kann nicht gebucht werden!',
'Cannot storno storno invoice!' => 'Kann eine Stornorechnung nicht stornieren',
- 'Cc' => 'Cc',
'Choose Customer' => 'Endkunde wählen:',
'Choose Vendor' => 'Händler wählen',
'City' => 'Stadt',
'May' => 'Mai',
'May ' => 'Mai',
'Memo' => 'Memo',
- 'Message' => 'Nachricht',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
- 'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'Tax Included' => 'Steuer im Preis inbegriffen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
- 'To' => 'An',
'Total' => 'Summe',
'Trade Discount' => 'Rabatt',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Are you sure you want to delete Order Number' => 'Soll der Auftrag mit folgender Nummer wirklich gelöscht werden:',
'Are you sure you want to delete Quotation Number' => 'Sind Sie sicher, dass Angebotnummer gelöscht werden soll?',
'Attachment' => 'als Anhang',
- 'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Aug' => 'Aug',
'August' => 'August',
'Cannot delete quotation!' => 'Angebot kann nicht gelöscht werden!',
'Cannot save order!' => 'Auftrag kann nicht gespeichert werden!',
'Cannot save quotation!' => 'Angebot kann nicht gespeichert werden!',
- 'Cc' => 'Cc',
'Choose Customer' => 'Endkunde wählen:',
'Choose Vendor' => 'Händler wählen',
'City' => 'Stadt',
'Max. Dunning Level' => 'höchste Mahnstufe',
'May' => 'Mai',
'May ' => 'Mai',
- 'Message' => 'Nachricht',
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Street' => 'Straße',
- 'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'Tax' => 'Steuer',
'Tax Included' => 'Steuer im Preis inbegriffen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
- 'To' => 'An',
'Total' => 'Summe',
'Trade Discount' => 'Rabatt',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
--- /dev/null
+<body onload="fokus()">
+
+<form name="Form" method="post" action="<TMPL_VAR script>">
+
+<table width="100%">
+ <tr class="listtop">
+
+ <th class="listtop"><TMPL_VAR title></th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap>An</th>
+
+ <td><input name="email" size="30" value="<TMPL_VAR email>"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Cc</th>
+ <td><input name="cc" size="30" value="<TMPL_VAR cc>"></td>
+ </tr>
+<TMPL_IF SHOW_BCC>
+ <tr>
+ <th align="right" nowrap>Bcc</th>
+ <td><input name="bcc" size="30" value="<TMPL_VAR bcc>"></td>
+ </tr></TMPL_IF>
+ <tr>
+ <th align="right" nowrap>Betreff</th>
+
+ <td><input name="subject" size="30" value="<TMPL_VAR subject>"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap>Name des Anhangs</th>
+ <td><input name="attachment_filename" size="30" value="<TMPL_VAR a_filename>"></td>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="left" nowrap>Nachricht</th>
+ </tr>
+ <tr>
+ <td><textarea name="message" rows="15" cols="60" wrap="soft"><TMPL_VAR message></textarea></td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+
+<TMPL_VAR _print_options_>
+<TMPL_LOOP HIDDEN><input type="hidden" name="<TMPL_VAR name>" value="<TMPL_VAR value ESCAPE=HTML>"></TMPL_LOOP>
+
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+</table>
+
+<input type="hidden" name="nextsub" value="send_email">
+
+<br>
+<input name="action" class="submit" type="submit" value="Weiter">
+</form>
+
+</body>
+</html>
--- /dev/null
+<body onload="fokus()">
+
+<form name="Form" method="post" action="<TMPL_VAR script>">
+
+<table width="100%">
+ <tr class="listtop">
+
+ <th class="listtop"><TMPL_VAR title></th>
+ </tr>
+ <tr height="5"></tr>
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="right" nowrap><translate>To</translate></th>
+
+ <td><input name="email" size="30" value="<TMPL_VAR email>"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Cc</translate></th>
+ <td><input name="cc" size="30" value="<TMPL_VAR cc>"></td>
+ </tr>
+<TMPL_IF SHOW_BCC>
+ <tr>
+ <th align="right" nowrap><translate>Bcc</translate></th>
+ <td><input name="bcc" size="30" value="<TMPL_VAR bcc>"></td>
+ </tr></TMPL_IF>
+ <tr>
+ <th align="right" nowrap><translate>Subject</translate></th>
+
+ <td><input name="subject" size="30" value="<TMPL_VAR subject>"></td>
+ </tr>
+ <tr>
+ <th align="right" nowrap><translate>Attachment name</translate></th>
+ <td><input name="attachment_filename" size="30" value="<TMPL_VAR a_filename>"></td>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table>
+ <tr>
+ <th align="left" nowrap><translate>Message</translate></th>
+ </tr>
+ <tr>
+ <td><textarea name="message" rows="15" cols="60" wrap="soft"><TMPL_VAR message></textarea></td>
+
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>
+
+<TMPL_VAR _print_options_>
+<TMPL_LOOP HIDDEN><input type="hidden" name="<TMPL_VAR name>" value="<TMPL_VAR value ESCAPE=HTML>"></TMPL_LOOP>
+
+ </td>
+ </tr>
+
+ <tr>
+ <td><hr size="3" noshade></td>
+ </tr>
+</table>
+
+<input type="hidden" name="nextsub" value="send_email">
+
+<br>
+<input name="action" class="submit" type="submit" value="<translate>Continue</translate>">
+</form>
+
+</body>
+</html>