X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FHelper%2FPaginated.pm;h=15997b8e9447bc2dbb8a5b4f5f512f76d65ad577;hb=d14f72e7f3ce339b7565e27fcb169181ff90d64b;hp=d3da20dc04f1994e8d3261076539ed2260d583e9;hpb=4fa7102b36468079313df9e579f7537d49aab859;p=kivitendo-erp.git diff --git a/SL/Controller/Helper/Paginated.pm b/SL/Controller/Helper/Paginated.pm index d3da20dc0..15997b8e9 100644 --- a/SL/Controller/Helper/Paginated.pm +++ b/SL/Controller/Helper/Paginated.pm @@ -7,7 +7,9 @@ our @EXPORT = qw(make_paginated get_paginate_spec get_current_paginate_params _s use constant PRIV => '__paginatedhelper_priv'; -my $controller_paginate_spec; +use List::Util qw(min); + +my %controller_paginate_spec; sub make_paginated { my ($class, %specs) = @_; @@ -20,7 +22,7 @@ sub make_paginated { $specs{ONLY} = [ $specs{ONLY} ] if !ref $specs{ONLY}; $specs{ONLY_MAP} = @{ $specs{ONLY} } ? { map { ($_ => 1) } @{ $specs{ONLY} } } : { '__ALL__' => 1 }; - $controller_paginate_spec = \%specs; + $controller_paginate_spec{$class} = \%specs; my %hook_params = @{ $specs{ONLY} } ? ( only => $specs{ONLY} ) : (); $class->run_before('_save_current_paginate_params', %hook_params); @@ -38,7 +40,7 @@ sub make_paginated { sub get_paginate_spec { my ($class_or_self) = @_; - return $controller_paginate_spec; + return $controller_paginate_spec{ref($class_or_self) || $class_or_self}; } sub get_current_paginate_params { @@ -59,15 +61,10 @@ sub get_current_paginate_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); - %paginate_params = ( - %paginate_params, - num_pages => $calculated_params->{max}, - common_pages => $calculated_params->{common}, - ); - # $::lxdebug->dump(0, "get_current_paginate_params: ", \%paginate_params); + # $::lxdebug->dump(0, "get_current_paginate_params: ", $calculated_params); - return %paginate_params; + return %{ $calculated_params }; } sub disable_pagination {