X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FHelper%2FPaginated.pm;h=8d572ecbd5ca2550ea55244fdc316ed541db983c;hb=d820c1162bb08a580dfb4d01800d0406b001e169;hp=15997b8e9447bc2dbb8a5b4f5f512f76d65ad577;hpb=061cb2d3a9dda6f2fa93caad2c2ba26c967ff4cb;p=kivitendo-erp.git diff --git a/SL/Controller/Helper/Paginated.pm b/SL/Controller/Helper/Paginated.pm index 15997b8e9..8d572ecbd 100644 --- a/SL/Controller/Helper/Paginated.pm +++ b/SL/Controller/Helper/Paginated.pm @@ -18,6 +18,7 @@ sub make_paginated { $specs{MODEL} =~ s{ ^ SL::DB:: (?: .* :: )? }{}x; $specs{PER_PAGE} ||= "SL::DB::Manager::$specs{MODEL}"->default_objects_per_page; $specs{FORM_PARAMS} ||= [ qw(page per_page) ]; + $specs{PAGINATE_ARGS} ||= '__FILTER__'; $specs{ONLY} ||= []; $specs{ONLY} = [ $specs{ONLY} ] if !ref $specs{ONLY}; $specs{ONLY_MAP} = @{ $specs{ONLY} } ? { map { ($_ => 1) } @{ $specs{ONLY} } } : { '__ALL__' => 1 }; @@ -58,6 +59,7 @@ sub get_current_paginate_params { ); my %paginate_args = ref($spec->{PAGINATE_ARGS}) eq 'CODE' ? %{ $spec->{PAGINATE_ARGS}->($self) } + : $spec->{PAGINATE_ARGS} eq '__FILTER__' ? $self->get_current_filter_params : $spec->{PAGINATE_ARGS} ? do { my $sub = $spec->{PAGINATE_ARGS}; %{ $self->$sub() } } : (); my $calculated_params = "SL::DB::Manager::$spec->{MODEL}"->paginate(%paginate_params, args => \%paginate_args);