"content has been modified" message confusing

coltrane - March 7, 2009 - 22:09
Project:Drupal
Version:7.x-dev
Component:node.module
Category:task
Priority:normal
Assigned:Unassigned
Status:needs work
Issue tags:Needs text review, UBUserTesting2009, Usability
Description

Identified at UB Usability Testing: http://www.drupalusability.org/node/154

Create a node and save
Edit the node, save
Hit back to return to the edit form, alter the body and save
Given "This content has been modified by another user, changes cannot be saved." error message

While an error is correct, the text is confusing to users, as they are in fact the actual user, not "another user".

Related issues about node diff/merge
http://drupal.org/node/106953

#1

chrisshattuck - March 12, 2009 - 05:49
Status:active» needs review

The diff/merge idea would be great, is there any way that's getting into core?

Here is a patch which just removes the 'by another user'. It seems like the text could still be improved, but this is at least succinct.

AttachmentSizeStatusTest resultOperations
node.module.patch717 bytesIdleFailed: Failed to apply patch.View details | Re-test

#2

System Message - March 12, 2009 - 05:55
Status:needs review» needs work

The last submitted patch failed testing.

#3

chrisshattuck - March 12, 2009 - 16:10
Status:needs work» needs review

Failed because I didn't roll the patch from root (thanks, webchick). Re-rolled, uploading again.

AttachmentSizeStatusTest resultOperations
node.module.patch781 bytesIdlePassed: 10551 passes, 0 fails, 0 exceptionsView details | Re-test

#4

ultimateboy - March 12, 2009 - 16:20
Status:needs review» needs work

There are two times when this message appears (on a usual basis).

  • A user edits a node, saves the changes, uses the back button to navigate back, makes additional changes, and saves.
  • Two users attempt to edit the same node at the same time. The second user to click save will receive this error.

The problem with the current error message is that it does not work for the first case. The problem with the proposed change is that it does not work for the second.

Let's keep working until both meanings of this message are relayed.

#5

chrisshattuck - March 12, 2009 - 16:58

Thanks for the feedback, ultimateboy,

Could you clarify on how the proposed text doesn't address the second issue? "This content has been modified, changes cannot be saved" doesn't state which user did the modifications, which (while it can no doubt be improved) seems like it should work for both cases.

Understood if this still seems like an incomplete solution. I wonder if it would be worth looking at splitting the messaging based on the scenario. I played with the text for a while, but it just kept getting unwieldy having to address both issues in the same message. i.e "The content on this page has either been modified by another user, or you have already submitted modifications using this form. As a result, your changes cannot be saved.".

Also, it seems like there is consistency in Drupal error reporting in that errors will state the problem, but not a solution. I can see good reasons for this, such as if there are multiple solutions. Do you know of any places where this convention is bypassed an a solution is offered? For example:

"The content on this page has either been modified by another user, or you have already submitted modifications using this form. As a result, your changes cannot be saved. To modify, [start edit link] refresh the node edit page [end link]."

#6

ultimateboy - March 12, 2009 - 17:41

The proposed change in #3 could be very confused for the second scenario outlined in #4. Seeing this message, users could possibly think "well yes, I understand that I modified the page, why can't it be saved?" I do not think it is clear that another user has probably altered the node at the same time.

Given that, I do think that the split solution outlined in #5 is the direction to go. I think it makes it extremely clear what the two possibilities are, and gives a solution.. this is very nice.

I guess the other possibility is to figure out which scenario is true by looking at who last modified the content and if it is the same uid, then report accordingly. But I think the former solution is the better way to go.

#7

chrisshattuck - March 13, 2009 - 00:00

I like the idea of checking the for the last user to modify the node, but I feel like there might be some edge cases where the text might not be accurate.

Attached is a patch with the text proposed in #5: "The content on this page has either been modified by another user, or you have already submitted modifications using this form. As a result, your changes cannot be saved."

Thanks again, ultimateboy.

AttachmentSizeStatusTest resultOperations
node.module.patch870 bytesIdlePassed: 10551 passes, 0 fails, 0 exceptionsView details | Re-test

#8

chrisshattuck - March 13, 2009 - 00:01
Status:needs work» needs review

#9

Dries - March 14, 2009 - 19:28
Status:needs review» fixed

Committed to CVS HEAD. Thanks.

#10

System Message - March 28, 2009 - 19:30
Status:fixed» closed

Automatically closed -- issue fixed for 2 weeks with no activity.

#11

seanburlington - July 15, 2009 - 13:14
Status:closed» needs work

While I think the above changes helps a bit - I think it is the behaviour that is confusing.

Users expect to be able to use the back button (without thinking too much about the semantics of it)

For my current project I've cooked up this quick bit of javascript which is working OK for me in test at the moment.

This is for Drupal 6 and is only loaded on a specific type of node edit page.

$(document).ready(function(){

var location = "" + top.location;
if (location.search(/#back/) != -1){
top.location.replace('#');
top.location.reload();
}

$('input#edit-submit').click(function(event){
top.location.replace('#back');

});

}

What it does is adds a fragment identifier to mark the history as dirty - and checks for this on page load - clearing the marker and reloading the page if it is found.

Needs work (and cross browser testing) but what do people think in principle?

#12

Vako - September 17, 2009 - 05:17

I like your logic, I hope it can be implemented even on version 6.

But in general, we should have a better solution like this:
User1 is Editing a node.
User2 clicks on the Edit button for the same node. Immediately User2 should get a message indicating that the node is being used and if (s)he need to be notified when it is available. i.e.: some kind of a locking mechanism.
Microsoft Word has this feature already, so as many other applications.

#13

toitimhcm - December 19, 2009 - 04:18
 
 

Drupal is a registered trademark of Dries Buytaert.