X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Freportgenerator.pl;h=f2eb1ef1dcf75b664ed4339efb808d5a306c4c8e;hb=45ee0662e55cf328d365c1662694cc1b333c723d;hp=5f5d4079bd27feb58b2e6e60797c34b1426162af;hpb=fc8ad1a3510949f71a0b35415130d573599fb5d4;p=kivitendo-erp.git diff --git a/bin/mozilla/reportgenerator.pl b/bin/mozilla/reportgenerator.pl index 5f5d4079b..f2eb1ef1d 100644 --- a/bin/mozilla/reportgenerator.pl +++ b/bin/mozilla/reportgenerator.pl @@ -13,11 +13,15 @@ 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; + sub report_generator_set_default_sort { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; my $default_sortorder = shift; my $default_sortdir = shift; @@ -26,12 +30,40 @@ sub report_generator_set_default_sort { $form->{sortdir} = $default_sortdir unless (defined $form->{sortdir}); $form->{sortdir} = $form->{sortdir} ? 1 : 0; - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } +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 { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; if ($form->{report_generator_pdf_options_set}) { my $saved_form = save_form(); @@ -44,7 +76,7 @@ sub report_generator_export_as_pdf { report_generator_do('HTML'); } - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); return; } @@ -60,44 +92,56 @@ 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, }); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub report_generator_export_as_csv { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my $locale = $main::locale; if ($form->{report_generator_csv_options_set}) { report_generator_do('CSV'); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); return; } 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 }); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub report_generator_back { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); report_generator_do('HTML'); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub report_generator_do { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); my $format = shift; + my $form = $main::form; + my $locale = $main::locale; + my $nextsub = $form->{report_generator_nextsub}; if (!$nextsub) { $form->error($locale->text('report_generator_nextsub is not defined.')); @@ -113,11 +157,14 @@ sub report_generator_do { call_sub($nextsub); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub report_generator_dispatcher { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my $locale = $main::locale; my $nextsub = $form->{report_generator_dispatch_to}; if (!$nextsub) { @@ -128,7 +175,7 @@ sub report_generator_dispatcher { call_sub($nextsub); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } 1;