Make WordPress Core

Opened 12 years ago

Last modified 7 years ago

#21132 new enhancement

List tables' "select all" should let you really select all, regardless of screen options

Reported by: evansolomon's profile evansolomon Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: Posts, Post Types Keywords: needs-patch
Focuses: ui, administration Cc:


The select all checkbox in list tables selects all the items in your current view. Usually what I really want is to select all the items on all the pages.

As a hack, I'll often leave the screen options setting for items per page on something really high, like 1,000. Unfortunately this means the tables are often really slow for no benefit (most of the time I don't need them all). A better solution would be a way to intelligently select all items without needing to show them on the page.

The best example of this that I know of is Gmail, which adds a line above the list of emails when you click the select all box that looks something like this: "All 50 conversations on this page are selected. Select all 653 conversations in Spam". The second sentence is a link that, as expected, selects all of your emails that fit the current view, regardless of paging. Screenshot attached.

Attachments (1)

gmail-select-all.png (7.5 KB) - added by evansolomon 12 years ago.

Download all attachments as: .zip

Change History (11)

#1 @ocean90
12 years ago

  • Cc ocean90 added
  • Component changed from General to Administration
  • Keywords ux-feedback added

#2 @scribu
12 years ago

  • Cc scribu added

#3 @sabreuse
12 years ago

  • Cc sabreuse@… added

#4 @swissspidy
11 years ago

  • Cc hello@… added

#5 @markjaquith
10 years ago

I think this is a worthwhile idea. Example uses include adjusting authorship, terms, status, ping/comment status, on a list of posts based on a search result or a taxonomy query, or authorship.

First, we need UX. I think Gmail has the right idea... when you select all items on the page but there are more pages, offer to select all.

When chosen, insert a hidden flag "select_all" that is checked on submit, and if set, the select query is run specifically to grab IDs, taking into account all the filters active (search, etc). Then with IDs in hand, we perform the bulk edit transformations requested.

Some concerns: this could time out. The fact that showing 2000 posts on a screen is painful and itself might time out, can almost act as protection against the user attempting a bulk action that would fail. We could put an upper bound on select all. Or we could do automatic chunking of "all", so that it happens 100 at a time, say. So, like how you have to manually do it now, but without waiting, selecting all, submitting. It could just keep re-submitting until done.

#6 @GaVrA
10 years ago

Regarding bulk editing, one possible idea would be to do something like this:

So there are 33 posts in total, 2 of them are selected. If the user wants to do some action to all 33 posts, he would click some button ( it's not in this screenshot (: ) and new line would be added to the list of posts on the left. So in screenshot it says "Will be applied to 31 more post.". Maybe this could be colored differently ?

#7 @swissspidy
10 years ago

I think Gravity Forms does offer such an option as well. When you select all form entries on the current page, the option to select all appears. Maybe we can have a look at their code?

#8 @helen
9 years ago

  • Component changed from Administration to Posts, Post Types
  • Focuses ui administration added
  • Keywords ux-feedback removed

Gmail UX seems like a good route to try - the high possibility of timeout seems to be more of an issue, in my mind.

This ticket was mentioned in Slack in #core-restapi by swissspidy. View the logs.

7 years ago

#10 @swissspidy
7 years ago

There's a new and already quite popular plugin by @engelen that does this:

Note: See TracTickets for help on using tickets.