element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
74 stars 12 forks source link

Collaborative Editing and Account Sharing #1333

Open eaterjolly opened 5 years ago

eaterjolly commented 5 years ago

Use Cases:

+-------------+----------------+--------------+------------+-------------------+
| Roleplaying | Coding Parties | Pinned Posts | Org Emails | Imaginary Friends |
+-------------+----------------+--------------+------------+-------------------+

Backend Support

Collaborative Editing

Fundamentally already an existing feature as discussed in vector-im/element-web#9793, without UI support. Protocol needs to support character-by-character attribution, like any collaborative text editor.

Account Sharing

Shouldn't require any protocol support, aside from concurrent logins. Usability will also require the client to support concurrent logins. I'll describe implementation without attribution confusion in UX.

Permissions

Rooms should have Collaborative Editing unticked by default. Members should by default receive edit requests as ping messages only visible to them. Next to a member's ticked checkbox to receive edit requests, an advanced settings button should allow them to whitelist (auto-accept) or blacklist (auto-decline) other members.

A "Pass-and-Play" mode, by default disabled in the room's settings, should make the avatar, next to the compose message box, selectable to open a list of concurrently logged-in accounts. Then client and server track each letter per account, so, in a magnified view, a box surrounds those characters indicating the author by username along with a shrunk avatar.

UX

Even the most unsavy participants must learn to identify a message author by the username or avatar next to the message, so, to make abundantly clear the abnormal attribution, the client must ommit the usernames then either replace the avatar with a "mobile desktop style" folder, some other graphic, or an ascii design styled in a manner unmistakably not a username.

Who:

As an amateur, I would enjoy the challenge of building a branch testing out such a functionality. I have wanted to for a long while, studying the code on multiple occasions with this in mind. Any willingness to offer help or answer questions, greatly appreciated.

hex-m commented 3 years ago

How is Account Sharing related to collaborative editing? Can you please elaborate on the different use-cases to make it more clear what would need to get implemented?

If I understand it correctly this is a request for a native alternative to the etherpad-widget. Maybe a pinned message that is editable by all room members would be a start?

This is probably related to Message editing.