X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Famtemplates.pl;h=0917769f3b7e44c1a8a92c5c2733f637b264324a;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hp=9f21e22c7154cc605388df981215132771591ab1;hpb=4b85e0abf6e356485d8b99fd3a6ba62e13d1ebef;p=kivitendo-erp.git diff --git a/bin/mozilla/amtemplates.pl b/bin/mozilla/amtemplates.pl index 9f21e22c7..0917769f3 100644 --- a/bin/mozilla/amtemplates.pl +++ b/bin/mozilla/amtemplates.pl @@ -24,7 +24,8 @@ # 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 @@ -33,8 +34,10 @@ use File::Find; +use SL::DB::Default; use SL::AM; use SL::Form; +use SL::Locale::String qw(t8); use Data::Dumper; @@ -93,7 +96,7 @@ sub save_template { $main::auth->assert('admin'); - $form->isblank("formname", $locale->text("You're not editing a file.")) unless ($form->{type} eq "stylesheet"); + $form->isblank("formname", $locale->text("You're not editing a file.")); my ($filename) = AM->prepare_template_filename(\%myconfig, $form); if (my $error = AM->save_template($filename, $form->{content})) { @@ -115,13 +118,16 @@ sub display_template_form { $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|.*/||; } my $format = $form->{"format"} eq "html" ? "html" : "tex"; - $form->{"title"} = $form->{"type"} eq "stylesheet" ? $locale->text("Edit the stylesheet") : $locale->text("Edit templates"); + $form->{"title"} = $locale->text("Edit templates"); if ($form->{"format"}) { $form->{"title"} = uc($form->{"format"}) . " - " . $form->{"title"}; } @@ -130,7 +136,7 @@ sub display_template_form { my @hidden = qw(type format); - if (($form->{"type"} ne "stylesheet") && !$form->{"edit"}) { + if (!$form->{"edit"}) { $options{"SHOW_EDIT_OPTIONS"} = 1; # @@ -197,6 +203,7 @@ sub display_template_form { # if ($format eq "tex") { # search all .tex-files in template dir (recursively) + my $template_dir = $defaults->templates; my @all_files; find( sub { @@ -205,13 +212,13 @@ sub display_template_form { my $fname = $File::Find::name; # remove template dir from name - $fname =~ s|^$myconfig{templates}/||; + $fname =~ s|^\Q$template_dir\E/||; # remove .tex from name $fname =~ s|.tex$||; push(@all_files, $fname); - }, $myconfig{templates}); + }, $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; @@ -260,7 +267,7 @@ sub display_template_form { push(@hidden, qw(formname language printer)); } - if ($form->{formname} || ($form->{type} eq "stylesheet")) { + if ($form->{formname}) { $options{"SHOW_CONTENT"} = 1; ($options{"filename"}, $options{"display_filename"}) @@ -271,21 +278,51 @@ sub display_template_form { $options{"CAN_EDIT"} = $form->{"edit"}; - if ($form->{edit}) { - $::request->{layout}->focus("#edit_content"); - - } else { - $options{"content"} = "\n\n" if (!$options{"content"}); - $options{"SHOW_SECOND_EDIT_BUTTON"} = $options{"lines"} > 25; + if (!$form->{edit}) { + $options{"content"} = "\n\n" if (!$options{"content"}); } } $options{"HIDDEN"} = [ map(+{ "name" => $_, "value" => $form->{$_} }, @hidden) ]; + setup_amtemplates_display_form_action_bar( + mode => $form->{edit} ? 'edit' : 'show', + template_selected => $options{SHOW_CONTENT}, + ); + $form->header; print($form->parse_html_template("am/edit_templates", \%options)); $main::lxdebug->leave_sub(); } +sub setup_amtemplates_display_form_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Edit'), + submit => [ '#form', { action => 'edit_template' } ], + accesskey => 'enter', + only_if => $params{mode} eq 'show', + disabled => !$params{template_selected} ? t8('No template has been selected yet.') : undef, + ], + + action => [ + t8('Save'), + submit => [ '#form', { action => 'save_template' } ], + accesskey => 'enter', + only_if => $params{mode} eq 'edit', + ], + + action => [ + t8('Abort'), + call => [ 'kivi.history_back' ], + only_if => $params{mode} eq 'edit', + ], + ); + } +} + 1;