#
#======================================================================
+use File::Find;
+
use SL::AM;
use SL::Form;
my $form = $main::form;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
$form->{edit} = 0;
display_template_form();
my $form = $main::form;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
$form->{edit} = 1;
display_template_form();
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- $main::auth->assert('config');
+ $main::auth->assert('admin');
$form->isblank("formname", $locale->text("You're not editing a file.")) unless ($form->{type} eq "stylesheet");
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- $main::auth->assert('config');
+ $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");
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'),
- "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"),
+ # 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);
@values = sort({ $a->{"label"} cmp $b->{"label"} } @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 ];
#
$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"});