GNOME Bugzilla – Bug 789078
Refine conversation lifecycle and label/folder management
Last modified: 2021-07-05 13:25:47 UTC
Geary is currently somewhat inconsistent and incomplete in how it lets people manage the lifecycle and labelling of conversations. This is in part due due to trying to fit the conversation model to both IMAP and GMail, and part due to feature growth over the years. We should tidy this up to make it both consistent and complete. Based on some notes I made, conversations seem to exist in two different finite state machines — one that covers labelling of conversations, i.e. conversations that should be kept, and one that covers the overall conversation lifecycle. States sometimes represent mailboxes, but sometimes are an abstract state, and the transitions between these states define the actions that people might want to take. These actions should be made available to people as high-level UI items, and Geary should manage the implications of the actions under the hood. Labelling FSM ------------- States: - Inbox - Archive - User defined mailboxes Transitions: - Archive - Move & Copy - Restore Lifecycle FSM ------------- States: - [Normal] (Any conversation in the FSM above) - Draft - Trash - Junk - [Deleted] Transitions: - Trash - Junk - Restore - Delete See the attached diagrams for what transition is applicable for each state. User Experience --------------- A conversation's current state defines what UI is presented to the user when it is selected. E.g. in the Archive state these actions should be available: Restore, Copy, Move, Trash, Junk. Archive and Trash are primary action for conversations in the Inbox and so they should probably be emphasised and easily activated via the UI. The Restore action is the only primary action for most other states, and hence that should be similarly emphasised, although implementing this properly will be tricky, e.g. to ensure that sent mail in the conversation is restored to Sent, and received mail in the conversation is restored to whatever other mailbox(es) it was in. So I'm imagining that Archive, Trash and Restore should be toolbar buttons with text labels, while the rest can be icons? Notes ----- Still to be defined is how these actions apply to individual messages in the conversation. E.g. Should Trash move just the messages in the current mailbox to the Trash (as at the moment), or all messages (e.g. including any in Sent?) Comments welcome!
Created attachment 361702 [details] labelling and lifecycle FSMs Illustration of the two finite state machines.
Created attachment 361703 [details] Source for FSM illustration
*** Bug 750234 has been marked as a duplicate of this bug. ***
*** Bug 768506 has been marked as a duplicate of this bug. ***
*** Bug 740745 has been marked as a duplicate of this bug. ***
Created attachment 361709 [details] Labelling and lifecycle FSMs Updated FSM illustration.
Created attachment 361710 [details] Source for FSM illustration Updated illustration source
See the wiki for an updated version of the description above: https://wiki.gnome.org/Apps/Geary/Design/ConversationLifecycle Feedback welcome!
*** Bug 785739 has been marked as a duplicate of this bug. ***
Created attachment 365949 [details] Toolbar/Actionbar UI mockup This shows a mockup of the toolbar/actionbar for the following folders, based on current state of the wiki. 1. Inbox 2. Archive/user-defined folders 3. Drafts 4. Trash 5. Junk Sent isn't shown, but would be similar to (1) or (2) but without a primary action button or Junk button.
Created attachment 372911 [details] Labelling and lifecycle FSMs Updated labelling FSM
Created attachment 372912 [details] Labelling and lifecycle FSMs Update lifecycle FSM
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/geary/-/issues/ Thank you for your understanding and your help.