Pretty much everyone we've shown the inline editing feature to has noted a couple of things:
a) You need to click "Save" on every field as you are editing it, which makes editing lots of fields at once tedious.
b) The fact that clicking this save button publishes changes instantly freaks people out.
We want to instead move to a model where we are saving inline editing changes to a "draft" revision, while the original revision stays published, and have an explicit "Publish" action that makes the draft revision the new published one.
Work on this feature will happen in the Edit module issue queue.
Community input on workflow-ish modules:
#1730772: Research "draft revision" modules
#1494640: Add a workflow/revisioning module to Spark
Other relevant issues:
- #1678002: Edit should provide a usable entity-level toolbar for saving fields
- #1678034: Auto-save revisions on edit + generate log message
- #1586416: [Meta] Make Save/Publish distinction clearer
- #1664590: Finish the view/edit mode toggle
- #1664594: Where to put the "Edit Article" edit button / What to do with tabs?
- #1678020: Auto-generate log message in revision log when saving new revision stating what field was changed
- #1677684: "Edit <entity label>" button is triggered inconsistently
- #1677674: "Close" icon is not accessible
Designs:
Comments
Comment #1
Wim LeersAlso related:
- #1664590: Finish the view/edit mode toggle
- #1664594: Where to put the "Edit Article" edit button / What to do with tabs?
- #1678020: Auto-generate log message in revision log when saving new revision stating what field was changed
- #1677684: "Edit <entity label>" button is triggered inconsistently
- #1677674: "Close" icon is not accessible
[EDIT: Incorporated into issue summary]
Comment #2
webchickMoving to the Spark queue and re-tagging for this sprint.
Comment #3
webchickAnd that drives me nuts. ;)
Comment #4
cosmicdreams CreditAttribution: cosmicdreams commentedIs there an issue for introducing the concept of a changeset, or a collection of field revisions?
Comment #5
webchickNope, but feel free to file one. It's not a bad idea at all, just is a bit more complex than we'll be able to get to during this sprint.
Comment #6
Wim Leers#4: it depends on how you look at it. It'll work similarly to the node/edit form. You can change any and all fields, and the ones you changed will all end up in the same revision.
So, in a sense, you're combining the changes to one or more fields in a single revision.
Comment #7
webchickAdded #1730772: Research "draft revision" modules
Comment #7.0
webchickFleshing out issue summary more.
Comment #8
indytechcook CreditAttribution: indytechcook commentedThe concept of a collection of revisions: http://drupal.org/project/collections. It's what we are using on SPS (http://drupal.org/project/sps)
Comment #9
Wim LeersThat's very interesting. If feasible, we should follow LSD's lead here.
Comment #10
webchickThis turned out to be a little bit too ambitious for this sprint (silly DrupalCon :)), so untagging and also unassigning Wim for now. The good news is we made a lot of progress on this design review-wise!
Here's how the interaction is planned to work:
1) When you click on "Edit," the screen does its "white out" thing, as well as showing blue outlines of all "editables" for about 2 seconds so you can see what things are editable. Then those both fade away and you see your site exactly as your user would see it, to help cut down on visual clutter.
2) When you click into a field and make changes, the "Save" button in the toolbar becomes active. You can choose to click it to save interim progress. This will create a draft revision of the node, ahead of the published revision.
3) Changes to a field will *also* be saved when you click outside of the field if there are changes (and just as above, this will create a draft revision ahead of the published revision). Having both of these is important because on a desktop, this will be the most natural behaviour, while on a mobile device being able to actually "save" things is explicitly important since it's hard to click out of a field. Being able to "save" things explicitly is also important for long stretches of typing, even in a single field like Body.
4) When saving is occurring, a little "Saving... " spinner indicator will appear in the toolbar in place of the Save button, and when finished will revert to the Save button.
5) If you want to "undo" a change, you use the drop-down in the toolbar to select a previous draft revision to revert to.
6) Upon clicking the "Publish" button, the draft revisions will get "smooshed" down into just a single revision, so as not to clutter up the node_revisions table, the revision log, etc.
Now. This workflow also brings with it a fun interaction, which is that:
WHEW! Ladies and gentlemen, it looks like we have a spec! :)
Comment #11
webchickAnd it's possible Collection module could fit in here in that we would "tag" all of the draft revisions we're creating with some kind of naming convention, and then use that tag in order to do the "smooshing."
That, however, would mean that we need the ability to tag revisions in core. I searched and wasn't able to find an existing issue about that, but I reached out to the Phase2 guys to see if they knew of one.
Comment #12
cbrookins CreditAttribution: cbrookins commentedWoot! Sounds great - this will be a big improvement.
I'm curious what the drop down will show when not selected. e.g. before editing does it show a revision name, and then while editing, does it show the same revision name, and then when you click outside to another field does it show the new revision name? What will be format of these revision names while editing fields versus the published revisions? Will the drop down show the name of the last user who saved it too?
Comment #13
Wim Leers#10: Too ambitious indeed :) Also: good that I didn't start on it yet, because it wasn't flushed out enough yet after all.
#11: isn't that what #1730772: Research "draft revision" modules is about?
Comment #13.0
Wim LeersAdding designs.
Comment #14
webchick#12: Good question! I've updated the issue summary with the mock of the revisions drop-down.
#13: Maybe. That issue was more about the specific "Draft vs. Live" revision requirement, but the comments in that have ballooned to other outside concerns so it's probably worth a mention over there, too.
Comment #15
MustangGB CreditAttribution: MustangGB commentedAfter reading through #10 I have a suggestion for a subtle but useful improvement. As already described interim drafts can still be created by clicking "Save". However there will also be a working or active draft that gets saved to on every key press. This working draft could also be used for the "clicking out of the field" save feature as well which negates the need for a separate draft for each field change, instead just update the working draft.
Essentially this would afford you:
Comment #16
webchickOk, round two. :) Slotting in for this sprint, and Gábor will be taking the case.
Comment #17
webchickRegarding #15, my concern there would be performance, especially on mobile devices, because each keystroke would involve a round-trip to the server. :\
Comment #17.0
webchickAdding link to image showing revision list.
Comment #18
Gábor HojtsyUpdate: I posted a first pass at moving the Save button to the toolbar instead of individual fields at the existing #1678002: Edit should provide a usable entity-level toolbar for saving fields sub-issue.
Comment #19
webchickWe are going to de-prioritize this for now this sprint, in favour of getting some plumbing work done on the Layouts stuff in Drupal 8. We'll probably be back in sprint 6. :)
Comment #20
Wim LeersThe only issue I could find that isn't linked yet from this issue is #1780984: Test prototype for Save/Publish in one place + revision selection.
EDIT: for some reason, I cannot incorporate this into the issue summary.
Comment #21
Gábor HojtsyTagging for content workflow.
Comment #21.0
Gábor Hojtsyx
Comment #22
webchickWe actually did end up doing this in the end, so yay.