]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/DB/Helper/Paginated.pm
Paginating Sanity:
[kivitendo-erp.git] / SL / DB / Helper / Paginated.pm
index a5a07d0679a1d5cff2fc07f0fd187265305c484d..df5a6e3d9b8a65d87fff2da1a49b8e095d874c99 100644 (file)
@@ -6,6 +6,8 @@ require Exporter;
 our @ISA    = qw(Exporter);
 our @EXPORT = qw(paginate);
 
+use List::MoreUtils qw(any);
+
 sub paginate {
   my ($self, %params) = @_;
   my $page = $params{page} || 1;
@@ -47,12 +49,21 @@ sub make_common_pages {
   my ($cur, $max) = @_;
   return [
     map {
-      active => $_ != $cur,
-      page   => $_,
+      active  => $_ != $cur,
+      page    => $_,
+      visible =>
     }, 1 .. $max
   ];
 }
 
+sub calc_visibility {
+  my ($cur, $max, $this) = @_;
+  any { $_ } abs($cur - $this) < 5,
+             $cur <= 3,
+             $cur == $max,
+             any { ! abs ($cur - $this) % $_ } 10, 50, 100, 500, 1000, 5000;
+}
+
 1;
 
 __END__