Make WordPress Core

Opened 13 years ago

Closed 13 years ago

#17685 closed defect (bug) (fixed)

Posts Administration Pagination/Search Bug

Reported by: johnonolan's profile JohnONolan Owned by: azaozz's profile azaozz
Milestone: 3.2 Priority: normal
Severity: minor Version: 3.1.4
Component: Administration Keywords: has-patch dev-feedback
Focuses: Cc:

Description

When searching through posts in the administration area, pagination is not reset when a new search term is entered.

Steps to reproduce:

  • Go to the main posts overview screen
  • Enter a search term and press enter
  • Navigate to page 3 of search results
  • Enter a new search term and press enter

Expected behaviour: You are taken to page 1 of search results for the new term

Actual behaviour: You are taken to page 3 of search results for the new term

Note: Search terms must both have sufficient results to reproduce this bug. If the first term has 3 pages of results and the 2nd term has 1 page of results then this bug doesn't appear.

Attachments (5)

17685.diff (1.7 KB) - added by greuben 13 years ago.
17685-paging.diff (1.6 KB) - added by solarissmoke 13 years ago.
17685-paging.2.diff (1.5 KB) - added by solarissmoke 13 years ago.
Simpler JS
17685-paging.3.diff (1.5 KB) - added by solarissmoke 13 years ago.
Works for all list tables
17685.2.diff (1.5 KB) - added by koopersmith 13 years ago.
Stylistic/comment tweaks.

Download all attachments as: .zip

Change History (20)

#1 @nacin
13 years ago

  • Milestone changed from Awaiting Review to 3.2

Confirmed as a 3.0 to 3.1 regression. Moving to 3.2. If not a simple patch, it'll need a punt.

#2 @solarissmoke
13 years ago

The problem is caused by the <input class="current-page" name="paged"> which is submitted along with the search query, and therefore forces the page number to be retained. This is an issue with the list-table class and so affects all list tables.

@greuben
13 years ago

#3 follow-up: @greuben
13 years ago

  • Keywords has-patch added; needs-patch removed

17685.diff - a bit hacky

#4 in reply to: ↑ 3 @sterlo
13 years ago

Replying to greuben:

17685.diff - a bit hacky

Patch doesn't appear to resolve the issue.

I'm still seeing it.

  1. Add 10 posts
  2. Set post view to 5 per page
  3. Move to page 2
  4. Search for term
  5. Stays on page 2

#5 @solarissmoke
13 years ago

This needs to be fixed for more than just search - it affects all filters. For example:

  • Filter posts by category and go to page 3 of the results
  • Now filter posts by another category - you will be taken to page 3 again (assuming both categories have enough posts)

I think this needs some overhaul of how wp-list-table handles filters and paging - and probably something that will have to wait till 3.3.

#6 @azaozz
13 years ago

  • Milestone changed from 3.2 to Future Release

Agree with @solarissmoke, we would need to fix this for all filters and probably add some more logic to handle all possible combinations of filters and search results.

#7 @greuben
13 years ago

  • Keywords needs-patch added; has-patch removed

#8 @nacin
13 years ago

I have an idea for a patch.

This is a pretty bad regression and usability issue. Let's move this back to 3.2 for now.

#9 @nacin
13 years ago

What if we printed the query string on the page, and on submit (via JS), we detect to see if the query string -- other than paged -- changed? At which point we then detach the paged inputs and let the submit continue.

#10 @solarissmoke
13 years ago

  • Keywords has-patch dev-feedback added; needs-patch removed

@nacin I had a similar idea, based on using JS alone. See patch.

#11 @nacin
13 years ago

  • Milestone changed from Future Release to 3.2

I didn't consider that if the page wasn't changing, then it should be reset. That's a brilliant solution.

@solarissmoke
13 years ago

Simpler JS

@solarissmoke
13 years ago

Works for all list tables

#12 @solarissmoke
13 years ago

First pass only worked for the wp-admin/edit.php, have updated it to work with any form that uses the list-table class.

Version 0, edited 13 years ago by solarissmoke (next)

@koopersmith
13 years ago

Stylistic/comment tweaks.

#13 @koopersmith
13 years ago

Other than a slight tweak or two, looks great to me. Nice solution! :)

#14 @azaozz
13 years ago

Would have preferred backend/PHP solution. Perhaps force paged=1 when submitting new filter or new search?

Also we are adding another script file, queueing it, checking dependencies, etc. just for 4-5 lines of JS? Perhaps better to add it to common.js as it's used on several admin pages if we have to use JS there.

Last edited 13 years ago by azaozz (previous) (diff)

#15 @azaozz
13 years ago

  • Owner set to azaozz
  • Resolution set to fixed
  • Status changed from new to closed

In [18237]:

Fix pagination when searching or filtering, props solarissmoke, koopersmith, fixes #17685

Note: See TracTickets for help on using tickets.