Draft: Spatial Model and Actions
Hi all,
this issue is just to discuss the
Spatial Model
of Geary, based on the idea of mails as conversations and a three pane interface.
Hierarchically Geary treats 5 levels
-
(LA) a List of Accounts
[A_i]
. Each AccountA_i
is comprised of -
(LF) a List of Folders
[F_i,j € A_i]
. Each FolderF_i,j
is comprised of -
(LC) a List of Conversations
[C_i,j,k € F_i,j]
. Each ConversationC_i,j,k
is comprised of -
(LM) a List of Mails
LM=[M_i,j,k,l € C_i,j,k]
and of course the nucleus are single Mails . We abbreviate these 5 levels via
M c LM = C c LC = F c LF = A c LA
Here a scheme of Geary's interface
[Actions on Accounts A_i]
|
|
============================+===================================================================================
| Header Bar 1 (M)| Header Bar 2 | Header Bar 3 (x)|
================================================================================================================
| F_i,j = Folders of Accounts | C_i,j,k = Conversations in a Folder | M_i,j,k,k = One Conversation in a Folder |
=========================================================================================+======================
|
|
[Actions on single Mails M_i,k,l]
Navigation
in Geary reflects the hierarchy from Level 2 to Level 4, i.e. LF -> LC -> LM
, from a list of Folders to a list of Conversations to a list of Mails, precisely
- selecting in
Pane 1
a folderF_i,j € A_i
leads us inPane 2
to its content, which are the conversationsC_i,j,k € F_i,j
- selecting in
Pane 2
a conversationC_i,j,k € F_i,j
leads us inPane 3
to its content, which are the mailsM_i,j,k,l € C_i,j,k
Note, that Pane 1
contains accounts and folders, i.e. two levels at the same time, which makes Pane 1
an outlier.
Actions
On each of the five hierarchy levels
M c LM = C c LC = F c LF = A c LA
actions can be performed on each level.
Apart from the level M we act on Lists, which are just ordered sets. Actions on a List are typically searching, adding, deleting, renaming and rearranging elements of that List.
Actions on LA
Actions on a List of Accounts are hidden in the menu (M)
. This is also probably the least frequent action, a user will perform on a regular basis in every day use.
Actions on LF, LC and LM
Recall, that this means acting on lists of folders, lists of conversations and lists of mails.
For these actions we have the header bars above the corresponding panes at our disposition, i.e. buttons or menu entries thereon acting on what is below, i.e.
-
Header Bar 1
acts on the List of Folders (actions on the account are hidden in the menu(M)
) -
Header Bar 2
acts on a List of Conversations, forming a Folder -
Header Bar 3
acts on a List of Mails, forming a Conversation
or in other words
Header Bar 1 -> Acts on what is below it = a List of Folders (ignoring the account aspect)
Header Bar 2 -> Acts on what is below it, selected in `Pane 1` = Folder content = a List of Conversations
Header Bar 3 -> Acts on what is below it, selected in pane 2 = Conversation content = a List of Mails
Actions on M
Actions on M are actions on single Mails. Each single Mail in Pane 3
, which exposes a List of Mails, comes with a dedicated Mail Header
, which allows actions on the single mail, like replying, printing etc.
Current State
The LA level
As exposed above, Pane 1
shows Accounts and Folders, but the actions on the LA level are hidden away in the menu (M)
The LF level
Header Bar 1 should act on the LF level, i.e. on a List of Folders, but currently no actions are present. Candidates are
- searching
- renaming
- selecting
- adding or deleting, see #432
- merging
The LC level
Header Bar 2 should act on the LC level, i.e. on a List of Conversations. Present are the buttons for
-
New Mail
(why here or why not also on the other panes) Select Conversations
Search Conversation
But selecting a bunch of conversations gives us
Notably actions on a selected list of conversations are missing, e.g.
- deleting said list
Move to Folder
The LM level
Header Bar 3
should act on LM, i.e. on a list of mails - and not a single mail.
Here a scheme of Pane 3
===================================
|(<)|R|RA|F| |MF|A|D|DD|T| |S|(x)|
===================================
| Header M1 Collapsed |
===================================
| Header M2 Expanded |
-----------------------------------
| Mail 2 Content |
===================================
| Header M3 Expanded |
-----------------------------------
| Mail 3 Content |
===================================
| Header M4 Collapsed |
===================================
with
-
|R|RA|F|
reply actions :Reply
,Reply all
andForward
are misplaced here, as we do not reply to a conversation, but reply to a mail! Could be done as a bottom bar for each single mail, when focused.- to elaborate: as in a natural conversation between two or more people, one can at any moment reply to a statement earlier in the conversation. So.. the
|R|RA|F|
here actually breaks Geary's base idea of representing mails a conversations.
- to elaborate: as in a natural conversation between two or more people, one can at any moment reply to a statement earlier in the conversation. So.. the
-
|MF|A|DD|T|
folder actions : check -
(S)
search : a search action on a list of mails must help us to find a single mail. And indeed(S)
reads through all mails, not just the focused one. Check!
The M level
A Mail Header
, see the M1
- M4
above, should act on single Mails. Present are
-
Reply
,Reply all
andForward
: this is primary functionality hidden behind a secondary menu -
Mark Read/Unread
: probably better done by a toggle on the mail header -
Mark Read/Unread from here
: this is a property on the LM level, not on the M level and should be done from Header Bar 3. -
Move to Trash
: again primary functionality hidden behind a secondary menu -
Print
andShow Code
are fine here
Additional candidates are
- Search : probably not really important in view of
(S)
- #148 Editing a single mail as a draft
- #587 Answering to a mail with a stock reply
An obvious problem with the M level is, that space is scarse. The Mail Header
should contain sufficient information to identify the mail within conversation, i.e. the list LM, and we have many primary actions See also #414, proposing a button bar for primary actions
A proposal would be
===================================
|(<) Header Bar 3 (x)|
===================================
| Conversation Title + Folder Name|
===================================
| Header Bar M1 Collapsed |
===================================
| Header Bar M2 Expanded |
-----------------------------------
| Mail 2 Content |
-----------------------------------
| Bottom Bar M2 |
===================================
| Header Bar M3 Expanded |
-----------------------------------
| Mail 3 Content |
-----------------------------------
| Bottom Bar M3 |
===================================
| Header Bar M4 Collapsed |
===================================
where
- the collapsed
Mail Headers
just contain, say, sender info, time and presence of attachment
=======================================================================
| ( Sender ) |Sender Name| | Sender Time | (Attachment Indicator) |
| ( Icon ) | First line of the email text | |
=======================================================================
- the expanded
Mail Header
contain some more additional information, like theTo
,CC
fields and aSecondary Menu
==============================================================================
| ( Sender ) |Sender Name | | Exact Sender Time | ( Three Dot Menu ) |
| ( Icon ) | Sender Mail | | List of Labels | ( Starring ) |
| | To Field | | CC + dropdown | ( Open in New Window ) |
==============================================================================
- the
Mail Bottom
shows primary functionality, likeReply
,Reply all
andForward
orEdit as New Mail
while in the three dotSecondary Menu
we can hide other stuff.
Questions
- Every Conversation belongs to a unique Folder, whose name should be shown in the
Conversation Title + Folder Name
. But what aboutLabels
? A singleMail
can have severalLabels
and the expandedMail Header
gives a place to show them. But should Geary supportLabels
at all?