You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A menu allows to choose the editing mode of a shared document:
Editing: edit document directly. This is the current state of RTC for everyone collaborating on a document.
Suggesting: edits become suggestions. This is the new mode added by this PR.
When entering suggesting mode, the frontend asks for a fork of the shared document. The forked document is a new document which is kept in sync with the root document, i.e. all updates to the root document are applied to the forked document. However the changes to the forked document are not applied to the root document yet. A user in suggesting mode makes changes to the forked document, not the root document. Only when these changes are accepted do they get merged in the root document. A new room is created in the backend for the forked document. The user in suggesting mode disconnects their shared document from the root room, and connects it to the forked room through its room ID.
Forked documents are advertised on the root document, in the ystate root Map type as a new entry fork_{forkId}. This way, a user editing the root document can be notified of suggestions. They can then connect their shared document to a forked room through its room ID.
Currently a user either sees the root document or a forked document, but not a diff of the forked document and the root document. Google Docs shows a unified view where all suggestions are shown with a different color. This would require the frontend to connect to the root document and all its forks at the same time, interpret the changes and show them on the same view. This is not currently possible as there can be only one document provider at a time.
The text was updated successfully, but these errors were encountered:
Add suggestion support in RTC, similarly to how Google Docs works.
This work is currently being done in these 3 PRs:
A menu allows to choose the editing mode of a shared document:
When entering suggesting mode, the frontend asks for a fork of the shared document. The forked document is a new document which is kept in sync with the root document, i.e. all updates to the root document are applied to the forked document. However the changes to the forked document are not applied to the root document yet. A user in suggesting mode makes changes to the forked document, not the root document. Only when these changes are accepted do they get merged in the root document. A new room is created in the backend for the forked document. The user in suggesting mode disconnects their shared document from the root room, and connects it to the forked room through its room ID.
Forked documents are advertised on the root document, in the
ystate
root Map type as a new entryfork_{forkId}
. This way, a user editing the root document can be notified of suggestions. They can then connect their shared document to a forked room through its room ID.Currently a user either sees the root document or a forked document, but not a diff of the forked document and the root document. Google Docs shows a unified view where all suggestions are shown with a different color. This would require the frontend to connect to the root document and all its forks at the same time, interpret the changes and show them on the same view. This is not currently possible as there can be only one document provider at a time.
The text was updated successfully, but these errors were encountered: