X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FHelper%2FSorted.pm;h=c9e5779116db5c66cd585dad8cef6866d27a2ad0;hb=4a5e3c2cddaae9021659466eb6ad152bfdcbab9b;hp=57fb5e0bcf23c7b077045a524b24dc542bcea546;hpb=28cda5b67bc9cef793911fa4e65b6aa9b81903e3;p=kivitendo-erp.git diff --git a/SL/Controller/Helper/Sorted.pm b/SL/Controller/Helper/Sorted.pm index 57fb5e0bc..c9e577911 100644 --- a/SL/Controller/Helper/Sorted.pm +++ b/SL/Controller/Helper/Sorted.pm @@ -3,6 +3,7 @@ package SL::Controller::Helper::Sorted; use strict; use Carp; +use List::MoreUtils qw(uniq); use Exporter qw(import); our @EXPORT = qw(make_sorted get_sort_spec get_current_sort_params set_report_generator_sort_options @@ -21,7 +22,7 @@ sub make_sorted { while (my ($column, $spec) = each %specs) { next if $column =~ m/^[A-Z_]+$/; - $spec = $specs{$column} = { title => $spec } if !ref $spec; + $spec = $specs{$column} = { title => $spec } if (ref($spec) || '') ne 'HASH'; $spec->{model} ||= $specs{MODEL}; $spec->{model_column} ||= $column; @@ -90,6 +91,13 @@ sub set_report_generator_sort_options { } $params{report}->set_sort_indicator($current_sort_params{by}, 1 - $current_sort_params{dir}); + + if ($params{report}->{export}) { + $params{report}->{export}->{variable_list} = [ uniq( + @{ $params{report}->{export}->{variable_list} }, + @{ $self->get_sort_spec->{FORM_PARAMS} } + )]; + } } # @@ -342,16 +350,28 @@ applying default parameters etc). =item C -This function sets two things in an instance of -L: the sort indicator and the links for those -column headers that are sortable. +This function does three things with an instance of +L: + +=over 4 + +=item 1. it sets the sort indicator, + +=item 2. it sets the the links for those column headers that are +sortable and + +=item 3. it adds the C fields to the list of variables in +the report generator's export options. + +=back The report generator instance must be passed as the parameter C. The parameter C must be an array reference of column names that are sortable. -The report generator instance must already have its columns set via a -call to its L function. +The report generator instance must already have its columns and export +options set via calls to its L and +L functions. =back