WordPress.org

Make WordPress Core

Opened 4 years ago

Last modified 4 years ago

#16262 closed task (blessed)

Remove AJAX and extendability from list tables — at Version 8

Reported by: nacin Owned by: nacin
Milestone: 3.1 Priority: highest omg bbq
Severity: normal Version: 3.1
Component: Administration Keywords: has-patch
Focuses: Cc:

Description (last modified by markjaquith)

We keep discovering new bugs for the AJAX in the list tables. Some current ones include issues with pushState (browser history is broken), bulk actions URI redirects and resets (which is a worse issue for usability than we thought). These strike at the core of the AJAX component. These are not easy to address, and will require some new API in some cases (such as transients for updated notices).

The leads have discussed this and the decision is to remove AJAX from the list tables for 3.1. Without AJAX, the user functionality is unchanged from 3.0. This allows the re-architecture to be spread over multiple releases.

Considerations:

  1. Don't enqueue the JavaScript.


  1. Don't add the ajax nonce fields or any spinners.


  1. The top pagination input doesn't work. Solution is to only have the pagination input on the top.


  1. The search box button shouldn't have a name.


  1. Sorting needs to kick back to page one.


  1. Remove the filters in get_list_table() and merge get_list_table() and require_list_table() into a private _get_list_table(). Mark all tables as private.
  1. The architecture of the list tables needs to be reviewed this week for potential changes. Right now it isn't at the state where we are comfortable with release, especially when considering future requirements for backwards compatibility. By removing the JS for 3.1, we can spend the next week getting the classes exactly how we want them.
  1. edit-comments.dev.js and theme.dev.js both declare list-table a dependency. I don't see anything in theme.dev.js, but there are some things in edit-comments.dev.js that will need to be neutered.

Patch to follow shortly.

Change History (10)

comment:1 @nacin4 years ago

  • Owner set to nacin
  • Status changed from new to accepted

comment:2 follow-up: @nacin4 years ago

  • Keywords has-patch added

Patch attached handles points 1 through 6. I'm adding one more, which koopersmith said he can handle.

  1. edit-comments.dev.js and theme.dev.js both declare list-table a dependency. I don't see anything in theme.dev.js, but there are some things in edit-comments.dev.js that will need to be neutered.

@nacin4 years ago

comment:3 @scribu4 years ago

  • Cc scribu added

comment:4 in reply to: ↑ 2 @ocean904 years ago

Replying to nacin:

I don't see anything in theme.dev.js

http://core.trac.wordpress.org/browser/trunk/wp-admin/js/theme.dev.js#L33

(A sadly decision :()

@nacin4 years ago

comment:5 @nacin4 years ago

(In [17321]) Revert [17270], [17273], see #16166, see #16262.

comment:6 @nacin4 years ago

(In [17322]) Remove AJAX from list tables. first pass. see #16262.

comment:7 @nacin4 years ago

[17322] addresses points 1 through 6.

We'll execute point 7 early this week.

Point 8 needs someone to tear out some JS.

comment:8 @markjaquith4 years ago

  • Description modified (diff)
  • Keywords has-patch removed
  • Priority changed from normal to high
Note: See TracTickets for help on using tickets.