New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation view #6

Open
cup opened this Issue Dec 9, 2014 · 18 comments

Comments

Projects
None yet
6 participants
@cup
Copy link

cup commented Dec 9, 2014

Gmail has conversation view.

I have been looking for a privacy-conscious email service that offers this
as well. I have been using OpenMailbox and RiseUp, however they both
use RoundCube software.

RoundCube has had a ticket open on this for 9 years so who knows when they
will implement this, if ever. Please add conversation view so I can dump Gmail
for good.

@mpfau

This comment has been minimized.

Copy link
Contributor

mpfau commented Dec 9, 2014

Steven, thanks for your input!

This has already been prepared but not implemented on the client. Only the GUI is missing...

I posted your idea on our uservoice:
http://tutanota.uservoice.com/forums/237921-general/suggestions/6820765-conversation-view

You can vote for it!

@cup

This comment has been minimized.

Copy link

cup commented Jan 18, 2015

It has been over a month, any updates?

@mpfau

This comment has been minimized.

Copy link
Contributor

mpfau commented Jan 19, 2015

Sure. It has been upvoted and is one of the most wanted features. We are going to implement it soon.

@armhub armhub closed this Mar 20, 2015

@cup

This comment has been minimized.

Copy link

cup commented Mar 20, 2015

@armhub is this fixed?

@armhub

This comment has been minimized.

Copy link
Contributor

armhub commented Mar 20, 2015

The conversation view is not implemented yet, but I closed this issue as we track it here: http://tutanota.uservoice.com/forums/237921-general/suggestions/6820765-conversation-view

@cup

This comment has been minimized.

Copy link

cup commented Sep 8, 2018

@mpfau @armhub any update? its been almost 4 years now and im still using Gmail because this feature is missing from tutanota

@mpfau

This comment has been minimized.

Copy link
Contributor

mpfau commented Sep 10, 2018

@cup I will add it to our roadmap...

@mpfau mpfau reopened this Sep 10, 2018

@mpfau mpfau added this to the Roadmap milestone Sep 10, 2018

@vladimiry

This comment has been minimized.

Copy link

vladimiry commented Sep 11, 2018

I was exploring the possibility to enable conversation view mode as a part of this issue vladimiry/email-securely-app#32 (comment) and so far it looks feasible. Tutanota maintains the conversation entry and email message entities, which are linked with each other using one-one reference. The conversation entry entity is needed to construct the tree-like conversation view mode based on its previous/parent property. But the thing is that backend removes the conversation entry in along with removing the corresponding email message, which makes the conversation consistency broken. Building the desktop app I can get around that with a simple trick of never removing the conversation entries, just ignoring removing from the local database when Tutanota does that. @charlag would appreciate any other ideas for handling the possible conversation consistency breaking issue.

@charlag

This comment has been minimized.

Copy link
Contributor

charlag commented Sep 12, 2018

@vladimiry we've discussed conversation view yesterday, it shouldn't take too long on our side because backend is mostly there. Thanks for pointing out this issue, maybe we should make some changes on the backend for this to work, we will discuss it and will try to get back to you soon

@vladimiry

This comment has been minimized.

Copy link

vladimiry commented Sep 12, 2018

I was not fully correct writing that backend just removes the conversation entries. Now I see that backend sets the entry.conversationType value to 3 if there are remaining messages in the conversation, and removes all the linked conversation entries only when the conversation gets empty. Such scenario allows preserving the conversation tree consistency, so there is no issue. I guess value 3 means removed? It's not yet listed here

export const ConversationType = {

@charlag

This comment has been minimized.

Copy link
Contributor

charlag commented Sep 12, 2018

@vladimiry yup, that's just what I learned from the team
It is
NEW REPLY FORWARD UNKNOWN // a message for which no mail exists in Tutanota (unknown external mail or deleted mail)

we will update the definition

vladimiry added a commit to vladimiry/email-securely-app that referenced this issue Sep 13, 2018

@armhub armhub added the new feature label Sep 20, 2018

@vladimiry

This comment has been minimized.

Copy link

vladimiry commented Sep 25, 2018

If someone wants to try it in action, the first beta of a desktop app with conversation view mode of the local database explorer has been just published.

@gabrielmip

This comment has been minimized.

Copy link

gabrielmip commented Nov 17, 2018

@vladimiry How independent is your work from the main Tutanota repo? Are you planning on submitting a PR here with the conversation view? Thanks!

@vladimiry

This comment has been minimized.

Copy link

vladimiry commented Nov 18, 2018

@gabrielmip the code of the desktop app I've been building is not designed to be submitted to the Tutanota repo. Besides, regarding the desktop app, there is an essential piece of work that is happening on the backend, which in the case of Tutanota is not open-sourced (not a part of this repo). The backend task is preparing the data for displaying in the conversation mode and I guess Tutanota team will need to adjust the server-side code first, ie the API. If you are interested in trying the desktop app, I'd recommend taking the latest beta from this page, it works quite stable despite of the beta status.

@charlag

This comment has been minimized.

Copy link
Contributor

charlag commented Nov 19, 2018

@vladimiry would you mind sharing which part we would need to adjust? Conversations are recorded correctly afaik.

@vladimiry

This comment has been minimized.

Copy link

vladimiry commented Nov 19, 2018

@charlag, this is what I've found out so far. There are two linked between each other entities, Mail and ConversationEntry. ConversationEntry is needed to construct the conversation tree. It's a common thing for the conversation view mode to initially display only the single most recent mail of each individual conversation with an option to expand the conversation. So there is a need in a sort of aggregation function that constructs the conversations based on the Mail and ConversationEntry entities, then it sorts the emails in each conversation and picks the most recent messages and sorts the final list based on these most recent messages. So the outcome of this function would be a list of the most recent emails in conversation plus some metainformation, like conversation size at least, so you know on the client side that conversation is expandable. Besides the final list will need to be reactively constructed and re-displayed on emails creating/removing events. It might be possible to do such kind of aggregation on the client side, but it would probably be more efficient to perform it at the server side. I might be missing something since I've explored only the Tutanota's client-side code and only to the extent needed to fulfill the desktop project building task.

Conversations are recorded correctly afaik.

Conversation view mode is supported for about 2 months already by the mentioned before desktop app (since v2.0.0-beta.1) and conversation is a default view mode since v2.0.0-beta.6. I have not noticed so far any issues with the conversation structure recording and so I confirm that conversations structure is well recorded.

@charlag

This comment has been minimized.

Copy link
Contributor

charlag commented Nov 19, 2018

@vladimiry thanks for sharing!
I think it's already does all the mapping. Mail has a reference to conversation entry (which is in a list). Conversation entry has a reference to the mail and to the previous conversation entry and there are some other parts I don't understand yet.

@vladimiry

This comment has been minimized.

Copy link

vladimiry commented Nov 19, 2018

I think it's already does all the mapping.

It does the mapping, but the data convenient for displaying as the continuous feed is a different thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment