Make WordPress Core

Opened 10 months ago

Closed 4 months ago

#24551 closed enhancement (wontfix)

Post locking prevents collaboration

Reported by: johnbillion Owned by:
Milestone: Priority: normal
Severity: normal Version: 3.6
Component: Administration Keywords: ui-feedback
Focuses: Cc:


Occasionally I'll discuss the content of a post with a colleague by opening the editing screen for that post at the same time as my colleague. It may be that neither of us are actively editing it, but we are discussing the content via VOiP or IM or whatever and both looking at it on the editing screen.

The new post editing lock prevents two people from having the editing screen for the same post open at the same time.


The above modal provides no option for dismissing the modal and viewing the editing screen. Preferably there would be a read-only mode of the editing screen, which disabled the buttons in the publish metabox.

I think this is quite important behaviour. Due to the nature of testing (ie. mostly solitary) it'll be unlikely that people have noticed the new behaviour until people start using it in production environments.


Change History (14)

comment:1 johnbillion10 months ago

The post lock also prevents users from viewing the comments on a post or viewing the revisions for a post. The latter is particularly important if you've just been kicked out of editing a post and your content is now sitting in a revision that you have no way to access (without taking over again).


comment:2 johnbillion10 months ago

  • Component changed from General to Administration

comment:3 azaozz10 months ago

The new post editing lock prevents two people from having the editing screen for the same post open at the same time.

That's why the Preview button was added. We can add Preview to the "post lock taken over" dialog too but the user usually sees that shortly after another user takes over, so there are no changes yet. We can add a link to the revisions screen too, but will need to disable the Restore button there. Not sure if that will be useful.

Not sure we need to have the Edit Post screen in read-only mode. Would be quite confusing. Seeing a preview works better imho.

comment:4 johnbillion10 months ago

What about non-public post types? Also a preview is not the same as viewing the post on the editing screen. "The shortcode I entered isn't working for some reason, can you take a look?"

While they're uncommon scenarios, they're far from edge cases.

comment:5 johnbillion10 months ago

  • Keywords ui-feedback added

comment:6 azaozz10 months ago

"The shortcode I entered isn't working for some reason, can you take a look?"

Still better to take over post editing in these cases imho. The problem with disabling the Post Locked dialogs is that nobody would know who has the lock. Going to a read-only Edit Post screen won't help as user B won't be able to make changes. If the post lock is ignored, user A (who opened the post first) would overwrite (autosave) any edits made by user B after user B closes the post.

There is a patch to make superadmins "invisible" when viewing a post on a blog they are not a member of, followed by a discussion in #wordpress-dev about it. The consensus was to leave that for plugins.

The best solution here would be to have full collaborative editing. However this is very server-intensive. Every keystroke is send to the server and updates are pushed every few seconds to the browsers, so there are several simultaneous connections per second while the users are typing. I doubt we would ever be able to have this as default in core as there are even concerns about heartbeat "overloading" a shared hosting server with one connection every 15 sec.

comment:7 nacin9 months ago

Moving to 3.6 for a final discussion on this during Wednesday's dev chat.

comment:8 nacin9 months ago

  • Milestone changed from Awaiting Review to 3.6

comment:9 markjaquith9 months ago

  • Milestone changed from 3.6 to Future Release

There was a discussion on IRC.

The conclusion was that although this may hinder some workflows, it doesn't actually prevent anyone from doing anything. We decided to let it stay as-is for 3.6, and see what feedback we get. Additionally, a plugin could very easily add in an "ignore" button that would close the modal and give someone a view of the post. Useful for, say, support staff.

comment:10 azaozz9 months ago

Additionally, a plugin could very easily add in an "ignore" button that would close the modal and give someone a view of the post.

Here is a (very) basic plugin that does this:

add_action( 'post_lock_text', '_my_post_lock_text' );
function _my_post_lock_text() {
	if ( is_multisite() && is_super_admin() ) {
		<p><a href="#" class="my-disable-locked-dialog">Disable post locks</a></p>
		jQuery('#post-lock-dialog .my-disable-locked-dialog').click( function(e) {

Note that removing the dialog HTML also stops checking the lock with heartbeat.

comment:11 ericlewis8 months ago

I've run into this issue with clients now twice since 3.6 dropped.

I'll have to explain how to manage content to them, and we can't edit the same post at the same time, so I can't walk through the editing experience and explain to them exact steps, and the exact items to click on.

Woocommerce is a great example, since they have such rich user interfaces to manage product content. "Scroll down to Product Data, and you'll notice a few tabs. Click the one that says Variations, and you'll notice three entries here I've added for this product. Click one of them, and you'll notice Price, Sales Price, etc."

comment:12 bpetty7 months ago

  • Cc bpetty added
  • Priority changed from high to normal
  • Type changed from defect (bug) to enhancement

Moving to enhancement since this is actually more of a feature suggestion, everything is actually working as intended, it just might not be the ideal way.

comment:13 bpetty7 months ago

If you find yourself running into this dialog frequently, and would rather just have the same old behavior back from WordPress 3.5 and older (even though it risks overwriting each other's autosaves, and other possible bugs), I've written a plugin to just disable post locking altogether:


comment:14 johnbillion4 months ago

  • Milestone Future Release deleted
  • Resolution set to wontfix
  • Status changed from new to closed

Wontfixing this in favour of Bryan's plugin.

Note: See TracTickets for help on using tickets.