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 {
+ $main::lxdebug->enter_sub();
+
+ my $form = $main::form;
+
+ my $default_sortorder = shift;
+ my $default_sortdir = shift;
+
+ $form->{sort} ||= $default_sortorder;
+ $form->{sortdir} = $default_sortdir unless (defined $form->{sortdir});
+ $form->{sortdir} = $form->{sortdir} ? 1 : 0;
+
+ $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();
report_generator_do('HTML');
}
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
return;
}
$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.'));
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) {
call_sub($nextsub);
- $lxdebug->leave_sub();
+ $main::lxdebug->leave_sub();
}
1;