Make WordPress Core

Opened 11 years ago

Closed 11 years ago

#24551 closed enhancement (wontfix)

Post locking prevents collaboration

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

Description

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.

http://i.imgur.com/PeZ60wd.png

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.

Thoughts?

Change History (14)

#1 @johnbillion
11 years 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).

http://i.imgur.com/vQBn17S.png

#2 @johnbillion
11 years ago

  • Component changed from General to Administration

#3 @azaozz
11 years 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.

#4 @johnbillion
11 years 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.

#5 @johnbillion
11 years ago

  • Keywords ui-feedback added

#6 @azaozz
11 years 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.

#7 @nacin
11 years ago

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

#8 @nacin
11 years ago

  • Milestone changed from Awaiting Review to 3.6

#9 @markjaquith
11 years 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.

#10 @azaozz
11 years 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>
		<script>
		jQuery('#post-lock-dialog .my-disable-locked-dialog').click( function(e) {
			jQuery('#post-lock-dialog').remove();
			e.preventDefault();
		});
		</script>
		<?php
	}
}

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

#11 @ericlewis
11 years 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."

#12 @bpetty
11 years 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.

#13 @bpetty
11 years 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:

http://wordpress.org/plugins/disable-post-locking/

#14 @johnbillion
11 years 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.