Realtime editing is enabled by default, for all plain wiki pages, when the preferred editor is WYSIWYG. The user can leave the realtime editing session though using the “Allow Realtime Collaboration” checkbox. I’m wondering, what are the use cases we want to cover with this? Initially, when realtime editing was under development, it provided a quick way to disable an experimental feature. But this feature is not experimental anymore, so is there a real use case for leaving the realtime editing session and editing alone?
One big difference between editing alone and editing in realtime is that for the latter you lose the fine-grained control over the document history:
a single revision can include changes from multiple contributors and (currently at least) you can’t know who did what (unless we save the chain of operational transformations, but it’s not easy)
you can’t add a version summary to explain your changes because:
your changes are saved along with changes from other users
with auto-save you don’t control the time when your changes are triggered
partial changes are saved
This can’t work well with any type of document or in any type of organization. It’s fine for writing meeting notes or gathering brainstorming ideas, but it might not be a good fit for documents that have to go through a validation workflow for instance, where each change needs to be well documented and tracked.
In these cases, where precise history tracking is very important:
you probably want to start editing alone from the start
or at least start realtime editing on a draft that you can merge when you think it’s ready, and at that point you can document the changes, keeping a clean history on the original document (see Realtime: Auto-save original document vs. a draft )
The first solution could be easily implemented by allowing the user to mark the pages that are not supposed to be edited in realtime (e.g. by adding a xobject to the page).
But for the rest of the pages, that are supposed to be edited in realtime, is there a real need to allow the user to leave the realtime session to edit alone? I doubt it. And I haven’t seen other tools (like Notion or Confluence) to offer this option. So I think we should at least make this option less visible in the UI, if not remove it completely (for simple users at least).
To be sure I understand your proposal: if I’m editing a page alone, with the checkbox “Allow realtime collaboration” enabled, does the mechanism still performs autosave? And then if anyone starts to edit they would join the realtime session I created I imagine?
I’m wondering if this shouldn’t be the contrary: by default, when you’re starting to edit alone the realtime mechanism shouldn’t be enabled so the user controls how things are saved; but then if someone joins in the user should be informed that a realtime session is about to start and should be allowed to refuse it to continue editing alone if they want. And I guess we could have some user preferences to have default / automatic answers for this (e.g. always refuse joining realtime session, always accept or always ask).
So I agree on the fact that right now the checkbox is of poor value, but I think we need a better mechanism to allow people to edit pages that might be edited in realtime, alone.
Currently, when you edit a page with the WYSIWYG editor (in-place or standalone) you are implicitly creating a realtime session, if one is not already created, so any other user that enters the edit mode (with the WYSIWYG editor) will join directly the realtime session, without being asked to force the lock. And yes, auto-save is on even if you are editing alone in a realtime session.
This is an interesting approach, but I have some questions:
is the accept / deny for a specific user, or it is for the realtime editing with any user? It’s probably the latter.
what happens if after you accept to switch to realtime editing, the other user leaves (because they finished their changes), and you’re left alone, but this time in a realtime session (so with auto-save)
Note that the other user can leave and re-join simply because of network issues, so it wouldn’t be nice to switch between editing alone (no auto-save) and realtime (auto-save) whenever someone joins or leaves.
I’d be fine to do this only once, when the first user joins, but then once the realtime session is created, it should be kept until all users leave the editing session.
Note that once we do Loading... there will be significant differences between editing alone and editing in realtime.
So I guess that with your proposal we wouldn’t need to mark the pages that should not be edited in realtime. We would expect the users to simply refuse realtime editing on those documents.
Just a passing thought: since the user was already asked once if they wanted to create a realtime session, they could also be asked once if they want to close it, and if the answer is “no” then we don’t ask them again.
There is a big problem with this approach: the user that initially opened the page in edit mode might not see the question (right away):
because the browser tab / window is not the active one
because they are not in front of their computer
simply because they are busy with something else at that moment
I’m pretty sure the other users won’t wait and simply force the edit lock most of the time, especially if they want to do a quick change. So I’m not convinced this interactive confirmation to start the realtime editing would work. Honestly, I find the current checkbox better at this: if you don’t want to accept collaboration you uncheck it right after entering edit mode. No need to way for someone to ask for confimation.
But my question is: why would you want to edit alone a document for which realtime editing makes sense?