#243 ✓invalid
biscazziere

Problem with :inner_window and :outer_window

Reported by biscazziere | September 2nd, 2008 @ 03:15 AM

I'm not sure if I get correctly ho to use those settings, but it seems to me that in version 2.3.2 they don't work as expected:

I do in the view: <%= will_paginate @articles, :inner_window => 2, :outer_window => 0 %>

Then I have 8 pages: I go to page 1 and I see: 1 2 3 4 5 ... 8 Next >

If I go to page 4, I see: < Previous 1 2 3 4 5 6 7 8 Next >

On page 7 I see: < Previous 1 ... 4 5 6 7 8 Next >

if :inner_windows represent the number of page links I see around the current page, it seems to work bad.

Comments and changes to this ticket

  • biscazziere

    biscazziere September 2nd, 2008 @ 03:16 AM

    • Assigned user changed from “Chris Wanstrath” to “Mislav”

    I'm not sure if I get correctly ho to use those settings, but it seems to me that in version 2.3.2 they don't work as expected:

    I do in the view: <%= will_paginate @articles, :inner_window => 2, :outer_window => 0 %>

    Then I have 8 pages: I go to page 1 and I see: 1 2 3 4 5 ... 8 Next >

    If I go to page 4, I see: < Previous 1 2 3 4 5 6 7 8 Next >

    On page 7 I see: < Previous 1 ... 4 5 6 7 8 Next >

    if :inner_windows represent the number of page links I see around the current page, it seems to work bad.

  • Mislav

    Mislav September 2nd, 2008 @ 05:25 PM

    • State changed from “new” to “invalid”

    Hey, your observation is correct, but this is not a bug. It's just some undocumented behavior.

    When you go to page N with :inner_window being 2, the visible pages around it should be:

    
    ... N-2  N-1  N  N+1  N+2 ...
    

    But when the page N is first or last, we have a problem. Watch what pages would be visible if we're on the first page:

    
    -1 0 1 2 3 ...
    

    Oops, pages "-1" and "0" don't exist. They are out of bounds. So what will_paginate does is that it takes visible pages out of bounds on the left and adds them to visible pages on the right (and vice-versa).

    This means that page 1 has, instead of 2 numbers on the left and 2 on the right, 0 numbers on the left and 4 on the right.

    This behavior ensures that rendered page links will always be roughly the same width.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

Everyone's favorite Ruby library for pagination of practically anything!

People watching this ticket

Referenced by

Pages