X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Famtemplates.pl;h=d32cf790a1b5602839ea4b6fd85cd6b2ca4c9d72;hb=af9a1f44788ded346d8510511d26a760d996ba14;hp=1dc734470fcfd4678f7e2860f41b83531a037df9;hpb=faad5f2cf0207ac5d63605c2f969c02702049b4b;p=kivitendo-erp.git diff --git a/bin/mozilla/amtemplates.pl b/bin/mozilla/amtemplates.pl index 1dc734470..d32cf790a 100644 --- a/bin/mozilla/amtemplates.pl +++ b/bin/mozilla/amtemplates.pl @@ -24,13 +24,17 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. #====================================================================== # # administration # #====================================================================== +use File::Find; + +use SL::DB::Default; use SL::AM; use SL::Form; @@ -61,7 +65,7 @@ sub display_template { my $form = $main::form; - $main::auth->assert('config'); + $main::auth->assert('admin'); $form->{edit} = 0; display_template_form(); @@ -74,7 +78,7 @@ sub edit_template { my $form = $main::form; - $main::auth->assert('config'); + $main::auth->assert('admin'); $form->{edit} = 1; display_template_form(); @@ -89,7 +93,7 @@ sub save_template { 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"); @@ -111,9 +115,15 @@ sub display_template_form { my %myconfig = %main::myconfig; my $locale = $main::locale; - $main::auth->assert('config'); + $main::auth->assert('admin'); + + my $defaults = SL::DB::Default->get; + $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates; + + 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"); @@ -187,6 +197,37 @@ sub display_template_form { @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 $template_dir = $defaults->templates; + 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|^\Q$template_dir\E/||; + # remove .tex from name + $fname =~ s|.tex$||; + + push(@all_files, $fname); + + }, $template_dir); + + # 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 ]; # @@ -236,10 +277,7 @@ sub display_template_form { $options{"CAN_EDIT"} = $form->{"edit"}; - if ($form->{edit}) { - $form->{fokus} = "Form.content"; - - } else { + if (!$form->{edit}) { $options{"content"} = "\n\n" if (!$options{"content"}); $options{"SHOW_SECOND_EDIT_BUTTON"} = $options{"lines"} > 25; }