X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Famtemplates.pl;h=9f21e22c7154cc605388df981215132771591ab1;hb=075bd42af8885aee3c18fe055a2c82b8b43f4cea;hp=77f7659a2f820955167575560a71722fed9fe216;hpb=d629acd82a27e980899a044ca8b0f4becc8e94bb;p=kivitendo-erp.git diff --git a/bin/mozilla/amtemplates.pl b/bin/mozilla/amtemplates.pl index 77f7659a2..9f21e22c7 100644 --- a/bin/mozilla/amtemplates.pl +++ b/bin/mozilla/amtemplates.pl @@ -31,11 +31,15 @@ # #====================================================================== +use File::Find; + use SL::AM; use SL::Form; use Data::Dumper; +use strict; + 1; require "bin/mozilla/common.pl"; @@ -43,37 +47,51 @@ require "bin/mozilla/common.pl"; # end of main sub display { - call_sub($form->{display_nextsub}); + call_sub($main::form->{display_nextsub}); } sub save { - call_sub($form->{save_nextsub}); + call_sub($main::form->{save_nextsub}); } sub edit { - call_sub($form->{edit_nextsub}); + call_sub($main::form->{edit_nextsub}); } sub display_template { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + + $main::auth->assert('admin'); $form->{edit} = 0; display_template_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub edit_template { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + + $main::auth->assert('admin'); $form->{edit} = 1; display_template_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub save_template { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('admin'); $form->isblank("formname", $locale->text("You're not editing a file.")) unless ($form->{type} eq "stylesheet"); @@ -85,20 +103,32 @@ sub save_template { $form->{edit} = 0; display_template_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub display_template_form { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('admin'); + + if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) { + $form->{"formname"} =~ s|.*/||; + } - $form->{"formname"} =~ s|.*/||; my $format = $form->{"format"} eq "html" ? "html" : "tex"; $form->{"title"} = $form->{"type"} eq "stylesheet" ? $locale->text("Edit the stylesheet") : $locale->text("Edit templates"); + if ($form->{"format"}) { + $form->{"title"} = uc($form->{"format"}) . " - " . $form->{"title"}; + } my %options; - my @hidden = qw(login password type format); + my @hidden = qw(type format); if (($form->{"type"} ne "stylesheet") && !$form->{"edit"}) { $options{"SHOW_EDIT_OPTIONS"} = 1; @@ -107,32 +137,35 @@ sub display_template_form { # Setup "formname" selection # + $form->get_lists("printers" => "ALL_PRINTERS", + "languages" => "ALL_LANGUAGES", + "dunning_configs" => "ALL_DUNNING_CONFIGS"); + my %formname_setup = ( - "balance_sheet" => { "translation" => $locale->text('Balance Sheet'), "html" => 1 }, - "bin_list" => $locale->text('Bin List'), - "bwa" => { "translation" => $locale->text('BWA'), "html" => 1 }, - "check" => { "translation" => $locale->text('Check'), "html" => 1 }, - "credit_note" => $locale->text('Credit Note'), - "income_statement" => { "translation" => $locale->text('Income Statement'), "html" => 1 }, - "invoice" => $locale->text('Invoice'), - "packing_list" => $locale->text('Packing List'), - "pick_list" => $locale->text('Pick List'), - "proforma" => $locale->text('Proforma Invoice'), - "purchase_order" => $locale->text('Purchase Order'), - "receipt" => { "translation" => $locale->text('Receipt'), "tex" => 1 }, - "request_quotation" => $locale->text('RFQ'), - "sales_order" => $locale->text('Confirmation'), - "sales_quotation" => $locale->text('Quotation'), - "statement" => $locale->text('Statement'), - "storno_invoice" => $locale->text('Storno Invoice'), - "storno_packing_list" => $locale->text('Storno Packing List'), - "ustva-2004" => { "translation" => $locale->text("USTVA 2004"), "tex" => 1 }, - "ustva-2005" => { "translation" => $locale->text("USTVA 2005"), "tex" => 1 }, - "ustva-2006" => { "translation" => $locale->text("USTVA 2006"), "tex" => 1 }, - "ustva-2007" => { "translation" => $locale->text("USTVA 2007"), "tex" => 1 }, - "ustva" => $locale->text("USTVA"), - "zahlungserinnerung" => $locale->text('Payment Reminder'), + # balance_sheet => { translation => $locale->text('Balance Sheet'), html => 1 }, + bin_list => $locale->text('Bin List'), + bwa => { translation => $locale->text('BWA'), html => 1 }, + check => { translation => $locale->text('Check'), html => 1 }, + credit_note => $locale->text('Credit Note'), + income_statement => { translation => $locale->text('Income Statement'), html => 1 }, + invoice => $locale->text('Invoice'), + pick_list => $locale->text('Pick List'), + proforma => $locale->text('Proforma Invoice'), + purchase_delivery_order => { translation => $::locale->text('Purchase delivery order'), tex => 1 }, + purchase_order => $locale->text('Purchase Order'), + receipt => { translation => $locale->text('Receipt'), tex => 1 }, + request_quotation => $locale->text('RFQ'), + sales_delivery_order => { translation => $::locale->text('Sales delivery order'), tex => 1 }, + sales_order => $locale->text('Confirmation'), + sales_quotation => $locale->text('Quotation'), + statement => $locale->text('Statement'), + storno_invoice => $locale->text('Storno Invoice'), + "ustva-2004" => { translation => $locale->text("USTVA 2004"), tex => 1 }, + "ustva-2005" => { translation => $locale->text("USTVA 2005"), tex => 1 }, + "ustva-2006" => { translation => $locale->text("USTVA 2006"), tex => 1 }, + "ustva-2007" => { translation => $locale->text("USTVA 2007"), tex => 1 }, + ustva => $locale->text("USTVA"), ); my (@values, $file, $setup); @@ -142,56 +175,86 @@ sub display_template_form { push(@values, { "value" => $file, - "label" => ref($setup) ? $setup->{"translation"} : $setup, - "default" => $file eq $form->{"formname"} }); + "label" => ref($setup) ? $setup->{"translation"} : $setup }); + } + + # "zahlungserinnerung" => $locale->text('Payment Reminder'), + + foreach my $ref (@{ $form->{"ALL_DUNNING_CONFIGS"} }) { + next if !$ref->{"template"}; + + push(@values, + { "value" => $ref->{"template"}, + "label" => $locale->text('Payment Reminder') . ": " . $ref->{"dunning_description"} }, + { "value" => $ref->{"template"} . "_invoice", + "label" => $locale->text('Payment Reminder') . ": " . $ref->{"dunning_description"} . ' (' . $locale->text("Invoice for fees") . ')' }); } @values = sort({ $a->{"label"} cmp $b->{"label"} } @values); - $options{"FORMNAME"} = [ @values ]; + # + # at the end: others/includes for tex + # + if ($format eq "tex") { + # search all .tex-files in template dir (recursively) + my @all_files; + find( + sub { + next if (-l $_ || -d $_); + next unless (-f $_ && $_ =~ m/.*?\.tex$/); + + my $fname = $File::Find::name; + # remove template dir from name + $fname =~ s|^$myconfig{templates}/||; + # remove .tex from name + $fname =~ s|.tex$||; + + push(@all_files, $fname); + + }, $myconfig{templates}); + + # filter all files already set up (i.e. not already in @values) + my @other_files = grep { my $a=$_; not grep {$a eq $_->{value}} @values } @all_files; + + # add other tex files + foreach my $o (@other_files) { + push(@values, { "value" => $o, "label" => $locale->text("Others")." ($o)" }); + } + } + + $options{FORMNAME} = [ @values ]; # # Setup "language" selection # - $form->get_lists("printers" => "ALL_PRINTERS", - "languages" => "ALL_LANGUAGES"); - - @values = ( { "value" => "", "label" => "", "default" => 0 } ); + @values = (); foreach my $item (@{ $form->{"ALL_LANGUAGES"} }) { next unless ($item->{"template_code"}); - my $key = "$item->{id}--$item->{template_code}"; - push(@values, - { "value" => $key, - "label" => $item->{"description"}, - "default" => $key eq $form->{"language"} }); + { "value" => "$item->{id}--$item->{template_code}", + "label" => $item->{"description"} }); } - $options{"LANGUAGE"} = [ @values ]; - $options{"SHOW_LANGUAGE"} = scalar(@values) > 1; - - @values = ( { "value" => "", "label" => "", "default" => 0 } ); + $options{LANGUAGE} = [ @values ]; # # Setup "printer" selection # + @values = (); + foreach my $item (@{ $form->{"ALL_PRINTERS"} }) { next unless ($item->{"template_code"}); - my $key = "$item->{id}--$item->{template_code}"; - push(@values, - { "value" => $key, - "label" => $item->{"printer_description"}, - "default" => $key eq $form->{"printer"} }); + { "value" => "$item->{id}--$item->{template_code}", + "label" => $item->{"printer_description"} }); } - $options{"PRINTER"} = [ @values ]; - $options{"SHOW_PRINTER"} = scalar(@values) > 1; + $options{PRINTER} = [ @values ]; } else { push(@hidden, qw(formname language printer)); @@ -209,7 +272,7 @@ sub display_template_form { $options{"CAN_EDIT"} = $form->{"edit"}; if ($form->{edit}) { - $form->{fokus} = "Form.content"; + $::request->{layout}->focus("#edit_content"); } else { $options{"content"} = "\n\n" if (!$options{"content"}); @@ -222,7 +285,7 @@ sub display_template_form { $form->header; print($form->parse_html_template("am/edit_templates", \%options)); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } 1;