Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / bin / mozilla / reportgenerator.pl
index 89f3b72..f2eb1ef 100644 (file)
@@ -13,7 +13,7 @@ use List::Util qw(max);
 
 use SL::Form;
 use SL::Common;
-use SL::MoreCommon;
+use SL::MoreCommon qw(restore_form save_form);
 use SL::ReportGenerator;
 
 use strict;
@@ -34,6 +34,30 @@ sub report_generator_set_default_sort {
 }
 
 
+sub report_generator_setup_action_bar {
+  my ($type, %params) = @_;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      combobox => [
+        action => [
+          $type eq 'pdf' ? $::locale->text('PDF export') : $::locale->text('CSV export'),
+          submit => [ '#report_generator_form', { 'report_generator_dispatch_to' => "report_generator_export_as_${type}" } ],
+        ],
+        action => [
+          $::locale->text('PDF export with attachments'),
+          submit  => [ '#report_generator_form', { report_generator_dispatch_to => "report_generator_export_as_pdf", report_generator_addattachments => 1 } ],
+          only_if => $params{allow_attachments},
+        ],
+      ],
+      action => [
+        $::locale->text('Back'),
+        submit => [ '#report_generator_form', { 'report_generator_dispatch_to' => "report_generator_back" } ],
+      ],
+    );
+  }
+}
+
 sub report_generator_export_as_pdf {
   $main::lxdebug->enter_sub();
 
@@ -68,6 +92,9 @@ sub report_generator_export_as_pdf {
   $allow_font_selection = 0 if ($@);
 
   $form->{title} = $locale->text('PDF export -- options');
+
+  report_generator_setup_action_bar('pdf', allow_attachments => !!$form->{report_generator_hidden_l_attachments});
+
   $form->header();
   print $form->parse_html_template('report_generator/pdf_export_options', { 'HIDDEN'               => \@form_values,
                                                                             'ALLOW_FONT_SELECTION' => $allow_font_selection, });
@@ -90,6 +117,9 @@ sub report_generator_export_as_csv {
   my @form_values = $form->flatten_variables(grep { ($_ ne 'login') && ($_ ne 'password') } keys %{ $form });
 
   $form->{title} = $locale->text('CSV export -- options');
+
+  report_generator_setup_action_bar('csv');
+
   $form->header();
   print $form->parse_html_template('report_generator/csv_export_options', { 'HIDDEN' => \@form_values });