OVERVIEW
This document will eventually become the full spec for the Preview Dashboard. Originally we had put together a 4 stage proposal for a 0.7 dashboard which was to be scaled down to fit into 0.7's 3 planning phases. Since we are now thinking of extending the 0.7 release to be our Preview release, we have decided to replace the 4 stage 0.7 dashboard with a spec for the Preview Dashboard . As a result, this spec will not exactly match the original staged proposal.
From a design perspective, we are trying to iterate on the Dashboard based on dogfood usage. As a result, we hope to stage development of the Dashboard in a way that makes it possible for users to experiment with the workflows we've designed, even as we continue to build out all of the features. Much of what we are trying to accomplish with the Dashboard is new and for this reason, we believe that getting something out to users as quickly as possible is key to the success of the design. This means that even though we will try to detail out features we think we will need in future phases of the Dashboard, we fully expect to have to make changes to the design and/or add functionality as a result of user feedback.
This first iteration of the Dashboard focuses on implementing a basic table which includes a number of bug fixes and new features that aren't supported today. This will be followed by a several stages of Dashboard features defined around specific usage scenarios we want to test through dogfooding.
Along the way, we will try to outline table functionality we foresee needing in the future in order to help developers make better architectural decisions.
What is the Dashboard? What is the dashboard view?
The Dashboard is in part, inspired by GTD methodology and many of David Allen's insights into the problems with the ways in which people process information and get too easily sidetracked from important tasks in today's interruption-prone information workplaces.
However, the mainstay of the Dashboard design has always been how users have found ways to hack the software tools they have today in order to meet their specific needs.
The Dashboard is the runway view of all of your information. The closest thing users have to a Dashboard today is their email client Inbox.
It's where the user has their nose to the ground, processing new information as it comes in while managing and maintaining their focus.
The Dashboard is the point of origin for where users begin their information processing workflows. It spans all Kinds of information. It spans all Kinds of information across all of your projects and areas of responsibility. However, each user-defined collection is also presented to the user in dashboard view.
You can think of the difference between the Dashboard and user-defined collection dashboard views as one of altitude.
The Dashboard is:
- Where the user makes minute-by-minute decisions about what to do with new information; and
- Where the user makes minute-by-minute decisions about what they need to deal with RIGHT NOW; and
- How the user stays focused on the things they need to deal with RIGHT NOW.
A user-defined collection dashboard view is where the user can back away a little from the immediacy of RIGHT NOW and review projects and areas of responsibility from a longer distance. More forest, less trees. The dashboard view of user-defined collections allows users to:
- Get an immediate, high-level overview of the status of a project or area of responsibility
- Process new information
- Manage the focus of the project or area of responsibility
Why do we need both a Dashboard and dashboard views of user-defined collections?
We found that users often struggled with keeping their Project plan in sync with the daily grind of processing new, incoming information. In Chandler, the Task Item users define in their Dashboards can be the same Item they keep track of in their Project collectoin dashboard views. The hope is, a feedback loop emerges to helps users maintain 'honest' Project plans that reflect the minute-minute Triage decisions they make in their Dashboards.
What is the user problem the Dashboard is trying to solve?
The Dashboard is the runway view of all of your information. The closest thing users have to a Dashboard today is their email client Inbox.
In order to understand the motivations behind the Dashboard design, we must first take a look at why we think the Inbox as a universal information store and task management tool is broken.
- The Inbox does not include all information that is important, relevant to you. It only includes inbound messages.
- As a result, many users simply don't use the taskemail information to themselves so that they can keep track of it in their Inbox.
- As a result, many users don't use the task or even calendar and contacts applications that come with their PIMs. They handle all of their information as email because having a single context (the Inbox) is more important than the specialized task and calendaring tools offered by their PIM. (The exception here are users who work in enterprise environments where their PIMs come with pre-filled contacts directories and scheduling workflows that automatically fill-up your calendar for you, inspite of yourself.)
- The Inbox is not organized with respect what information is important, relevant to you, it is organized by when you received a message.
- As a result, some users email messages to themselves over and over again in order to keep them at the top of the queue.
- If you flag messages as a way of marking that they are important to you, you are caught between an impossible choice. You can either sort your Inbox by flag to see all of your important messages together; or you can sort your Inbox by date in order to see all of your new messages. Unless you can keep the number of flagged items below 20 (some users we interviewed have hundreds of flagged items), you're unlikely to find a satisfactory way of seeing both.
- The Inbox is a trap. If you file messages out of the Inbox, you lose track of them. However, if you don't file messages out of the Inbox, your Inbox fills up and users find themselves re-scanning Inbox messages to figure out what they need to do. In other words, you can't organize messages until you're completely done with them. Organizing and archiving are conflated. (You can use rule-based folders to get around this problem, but there are limitations to smart folders, namely, discoverability and IMAP sync.)
While many users insisted on doing everything in email: task management, scheduling meetings, storing contact information; and refused to use readily available tools that were specifically designed for tasks, calendaring and contacts management. This might be because email is panacea for all information management needs. However, people clearly ran up against problems with email once they got further along in their workflows. This indicated to us that something else was going on. Email was a great place to start, but it wasn't necessarily a great place to end up. So the questions we asked ourselves were: Why is email such a great starting place? And why does it fail people half-way through?
- Email is a great place to start precisely because it is a-semantic. When you email something to yourself or flag an email you receive from someone else, you don't have to decide if it belongs on a task list or your calendar. You don't have to decide when it's going to happen or what the due-date is. A single email can contain several information items that would otherwise need to be parsed into separate task items in your task manager and/or separate events on your calendar, all packaged together into a single message. In other words, you don't really have to know what it is. You just need to know that it's something that isn't finished.
- Email is a great place to start because most of the information you receive arrives via email. The easiest way to manage and store that information is to do nothing, just leave it in email.
- However, once you've figured out what it is you're looking at, email is horrible place to end-up, precisely because it is a-semantic.
Given the user behaviors we observed, we identified the following problems as central workflow issues that the Dashboard need to address at a structural level:
- Users need a semantic free collection box for 'things they need to keep track of' and 'new things that they still need to process in order to decide if they need to keep track of them or not'.
- Over time, as users make progress on any particular piece of information, they need to be able to record the knowledge they've gained and decisions they've made, iteratively, aka add semantics. (e.g. This is a task, This belongs on my calendar, This belongs on my calendar for next week, This belongs on my calendar for next Monday at 2PM, This is a task that Terry needs to do.)
- Users need a better way to manage their focus. e.g. 'Things to keep track of' need to be sub-divided into at the very least: 'Things I need to keep track of right now' versus 'Things I need to keep track of for later.'
- Users need to set automatic ways to re-focus their attention on information.
- Organizing needs to be separated from Archiving.
The general term we are using to describe our solution to these workflow issue is Triage.
Background
Currently, in Chandler 0.6, all collections under the All, Mail and Task application areas display as tables in the summary pane. The In, Out and Trash collections in the Calendar application area also display as a table. Since the 0.6 tenets focused on building out the calendar view specifically, we did notexpend much effort on enhancing or fixing bugs in the existing table view and it remains much the same as it was in 0.5. In 0.7, we want the user to start experimenting with the general information processing workflows, which means that we expect users to be stepping out of the Calendar app area and using all App areas and the table view. As a first step, we need to revisit the existing table design and UI and look at what infrastructure pieces need to be put in place to make the Dashboard work properly. A table with basic functionality right will be the foundation for a building a framework that will support the Triage and task management workflows we want to have in the later phases of 0.7.
Use Cases
High-level classes of use cases, in order of importance:
- Getting information out of my face so that I can maintain focus on the task(s) at hand (without losing track of information). This includes Triage and Tickling.
- Processing information and making sure it ends up in the right context, where context is defined as where something needs to be so that I trip over the right thing at the right time. (aka Stamping and Tickling).
- Organizing information so that I can find it later (aka Tagging, Labeling, filing and linking).
ALPHA 2 DASHBOARD - BASIC TABLE
Goals and Objectives
The Alpha 2 goal is to get a basic table view up and running, which means work in the following areas.
- Clean up existing bugs/nits that were deferred from 0.6 or previous releases.
- Improve interaction and visual polish, on par with the Calendar view.
- Introduce new features that are considered basic table features.
Requirements
Sort: We need to have the ability to sort columns in a table. Both primary and secondary sort should be supported. The secondary sort is always the date column. (Sort is not working for the stamping columns in Alpha 2.) The specific design details of how sort works is most likely going to change for Beta. In Alpha 2, sort is limited to sorting by what appears in the Who, About and Date columns.
Header: The table header should be visually polished and have all the affordances expected of native header widgets. The 'sorted' column should be highlighted, there should be a mousedown state on Windows and Linux, the columns should be resizable. We would also like to the ability to add new columns or change the existing ones (user-defined). This may not be a visual goal for 0.7 but we should plan for it from an infrastructure perspective. Column headers can have either text or an icon displayed.
Search: For 0.7, we will have bare-bones support for search in a table view. Please refer to the separate search spec for more details.
Multi-select: Items in a table should be multi-selectable for drag and drop, cut, copy, duplicate and paste. This was left out of 0.6 and is an important requirement for 0.7 (Drag and drop is not working in Alpha 2.)
Visual polish: There are a number of bugs and enhancements we need to make around the presentation and layout of information in the table. This includes font faces, sizes and colors, column widths, margins and gutters.
Bugs: We know there are a number of existing bugs that need to be addressed in 0.7. Most of these are logged under 0.6 and were deferred since they weren't in line with the 0.6 tenets.
In-place Editing: In-place editing of individual cells in the table needs to be supported for all columns. In later phases, we would like to implement in-place editing with clickable icon widgets. We do not plan to support full spreadsheet-like keyboard navigation for 1.0 but will pick some reasonable subset. Beyond what is detailed in the Alpha2 section below, we will draft a separate spec for 1.0 keyboard support.
Drag and Drop: You should be able to drag and drop Items out of the table in order to add them to other collections. In later phases, we would like to support dragging Items in and out the table to and from outside of the Chandler window (e.g. to and from the desktop).
Keyboard Navigation: Some keyboard navigation with the arrow keys to navigate up and down the rows of the table and Multi-select via Shift or Cmd/Ctrl - Arrow keys.
Additional Columns: We want to clarify the end-user mental model of the domain model by adding in separate columns for the task stamp, communications status and the calendar stamp.
Cut Copy, Duplicate & Paste: Basic support for cut copy, duplicate and paste. This includes the ability to cut, copy and paste text (from selected rows) and cut, copy, duplicate and paste for selected table items (presumably, cut, copy, duplicate & paste will work for calendar items as well). Q. Do we need a separate spec for Cut, Copy, Duplicate and Paste?
Assumptions
1. The user will be using the Dashboard and dashboard views primarily for managing tasks, events and notes and any email communications resulting from calendaring or task management workflows. For 0.7 we are not assuming that Chandler will be used as an email client or event as a secondary email client.
Basic Table
Below is a wire-frame of the basic table layout for 0.7. The columns from left to right are: Task stamp, Communications status, Who, Title, Reminder, Date, and Triage status.
In the future, we would like to allow users to modify the columns displayed as well as the order in which they display (this is on the table for 0.7).
General table characteristics
- The font size should be medium. (12 point)
- The divider lines should be removed.
- The table should resize correctly, without losing any columns (as in the horizontal scroll bar should never appear).
- Use smart defaults for column widths.
- The summary pane should have a minimum width. (Need to look over someone's shoulder to tweak this.)
- There should be a 10 pixel gutter between columns.
- Columns should be resizable.
- Display the Tickler date for Items with custom-date Ticklers and Start date and time (if there is one) for Calendar dates in the Date column
Sorting and Column headers
- Capitalize Who, Title and Date in the column headers
- Who and Date will display parenthetical text which specifies which Who and Date attribute is being displayed for the selected Item
- If multiple Items are selected, the parenthetical text displays the attributes of the most recently selected Item.
- Parenthetical text styles
- ALL CAPS
- XS size font (10, bold)
- 50% Grey
- The Title column should sort and display ascending and descending sort arrows
- In Alpha 3 and 4 we will still be trying to figure out how to go about sorting/sectioning the Who and Date columns, as a result we will most likely turn off sorting for the Who and Date columns (see more details in the Beta Dashboard section)
- Task, Communications status, Reminder and Triage status columns will sort with very specific sort orders (more details below) and will display icons with no ascending and descending sort arrows.
Nice to haves
- Left-align date information and Right-align time information (like in Apple Mail)
- Users can add/remove columns from the table (on a per App area - collection intersection)
- Users reorder columns via drag and drop
- More sophisticated UI for sorting-like affordances (being hashed out on the design list right now)
Task, Communications status and Reminder columns
The column headers for the Task stamp, Communications status and Reminder columns will have the following characteristics and behavior.
- The header will display only an icon. The header will not display a sort order arrow. Icons can often convey more information that text and make for a better use of space.
Task stamp column
- The Task stamp column has 2 states: Stamped (checkmark) and Unstamped (nothing).
- For Alpha 2, users can only Stamp and Unstamp Items to add and remove them from the task list from Task stamp button in the mark-up bar. Clicking the icon in the table will NOT stamp or unstamp it. In future phases of the product, we will want to be able to display multiple flavors of tasks (ie. Todo, Read, Research, Write-up, Call, Errand, Chore).
Mail stamp/Communication status column
- For Alpha 2, the Communications column has 2 states: Stamped (person) and Unstamped (nothing).
- For Alpha 2, the Communication status column will work exactly the same way as the Task column. Users can only address Items and remove addresses via the Communications stamp button in the mark-up bar.
- In Alpha 3 and 4, we are planning on changing the semantics of this column. We want this column to function more as a Communication status column where the user can cycle through three options: Unread, Read, Needs reply and a different icon displays depending on the state of the Item (states are defined below).
Reminder column (formerly known as Calendar stamp column)
- For Alpha2, the Reminder column has 2 states - Stamped (clock) and Unstamped (nothing).
- For Alpha 2, as with the Task and Communications columns, users can only add and remove items from their calendar via the Calendar stamp button in the mark-up bar.
Multi-selecting Items
We would like to support multi-selection of Items in 0.7. As in the calendar view, multi-selecting items in the summary table should blank out the detail view. We should distinguish between Shift-multi-select and Cmd/Ctrl-multi-select We should be able to drag and drop multi-selected Items as well as cut, copy, duplicate and paste Items in both the summary table view and the calendar view.
If you multi-select events in 2 different sidebar collections (you have them overlayed), both selected events become saturated, but there is no change in selection in the sidebar. (See iCal for the desired behavior.)
In-place Editing/Keyboard Support
In place editing of table items should work correctly in 0.7. The user should be able to edit the Who, and Title columns. At a minimum, we should support the ability to edit the Title column. Editing dates could be useful for adding custom-date ticklers and adding Items to the calendar, but there are some complexities here so we will leave this out for 0.7. (This wouldn't be complex if we could store gobbledy-gook in the start date field.)
It's reasonable to assume there will be some keyboard support in 0.7 for navigating the summary table view and editing items. This has not been fully spec'd out but we have a running list of questions/issues.
- Can users navigate between cells (up-down-left-right)?
- Can users navigate between rows?
- Is the unit of selection the cell or the row?
- Are there two modes? When the user hits Enter, what does that mean?
- Stay on the same cell, but exit edit mode.
- Exit the cell, but stay on the same row and exit edit mode.
- Move to the next cell on the right.
- Move to the next cell, below.
- Move to the next row, below.
General Table Bugs
As a result of the narrow calendar focus of 0.6, quite a few table/stamping bugs were deferred to future releases. Most of these should be reviewed and a good portion of them cleaned up in 0.7. This work will be phases across all Alpha releases. There is a wiki page listing all of the items identified so far (this is not extensive). We will review these and add them into the Alpha releases as appropriate.

PREVIEW DASHBOARD
In Alpha 4 we will continue work on the Dashboard by adding some finishing touches to the basic table functionality that fell out of Alpha 2 and introduces Triage status and custom-date Ticklers for all Items, not just Calendar events. Much of the work we need in order to get a basic Dashboard up and running centers around the Stamping workflows. Although this spec contains some sections of the Stamping spec, it is strongly suggested that you read the Stamping spec as well in order to get the complete picture of the Dashboard workflows.
Rather than try and detail all the incremental dashboard features for each Chandler milestone (Alpha4, Alpha5 etc), we felt it was easier simply to spec out the dashboard features we want to have for Preview and PPD will work with the developers on an ongoing basis to stage this over multiple milestones. What gets implemented first depends on many different factors but PPD has included a priorities section indicating what they feel is more important to iterate on first. Getting to a proof of concept dashboard for Preview is an incremental process.
Navigating to the Dashboard
Users go to the Dashboard by selecting the Dashboard collection in the sidebar. We are changing all the "My" collections to Dashboard for Alpha 3 (see details in the Sidebar spec). If we want to see the Dashboard for all our Items, we go to the Dashboard in the All app area. Alternatively, we can see Dashboards for just Messages, Tasks and Calendar by clicking to the appropriate App area in the App bar. In this respect, the dashboard is simply a type of view and users have various dashboard views which can be narrowed depending on what type of view we want to have of the data.
The "Keep out of My Items" menu items will NOT be automatically replaced by "Keep out of My Dashboard". We are intending on changing the names of these menu items which is yet to be discussed on the design list.
The Task, Reminder and Communication Columns
There are 3 important columns that provide the user with visual affordances and feedback to manipulate items in the dashboard. The Task column is the most straightforward. The Communication column is used to provide a wide range of visual feedback ie: read, unread items, and whether items have been sent, received, updated etc. The Reminder column indicated whether or not the item has event information and/or has a tickler associated with it. The behavior for all 3 columns will be further described below.
Other than separating out the Stamp column into separate Task, Communication status and Reminder columns, we didn't do much work on supporting Stamping in the table view in Alpha 2. In Preview, users should be able to Sort on those columns by clicking on the header. It's important to note that we will not have a (descending or acending) sort arrow displayed in the header for these columns. It's less important that we different between ascending and descending for these columns because the columns are iconic don't have an alpha-numeric order
Task Column
- For any Item in the summary table, clicking in the Task column cycles through the following 2 options:
- Add to task list
- Remove from task list
- When you stamp an Item, the icon appears. When you unstamp an Item, the icon disappears.
- Tooltip should read: Add to task list. Remove from task list.
- Each option has 4 interaction states:
- Active
- Rollover
- Mousedown
- Mousedown - Mouse-off
- In the future phases, we will want to support multiple flavors of tasks with a click-and-hold pulldown widget (ie. Todo, Read, Research, Write-up, Call, Errand, Chore). However for Alpha 4, there will only be a stamped and unstamped state.
- Ascending sort order:
- Tasks
- Non-tasks
- The Task column should be sub-sorted by the Triage status column
Mail/Communications status Column
The Communications column works slightly differently from the Task column.
The user can click on the Communications status column to cycle through the following 3 options:
- Mark as Unread
- Mark as Read
- Mark as Needs reply.
- Tooltip should read: Mark as Unread, Mark as Read, Mark as Needs reply.
Clicking on an Unread Item row also marks the Item as Read
Unlike the Task column, the Communications status column does not map to the Communication stamp (in the markup bar). It does not toggle to turn this item into a communication. It displays 14 communication states x 3 options for each state: Read, Unread, and Needs reply = 42 states.
- However 3 of the states displays the same icon.
- All of the states display the same icon for 'Needs reply'
- 8 of the states display no icon for 'Read'
- The remaining 6 states that do display an icon for 'Read', display a greyed out variation of their respective 'Unread' icons
- All in all, users see 12 different icon or no icon at all.
Communication states:
- In (toMe) versus Out (fromMe) versus Neutral (neither):
- In versus Out depends on whether you are in the From:, Send via, Sent by, Edited by, Updated by OR To:, CC:, or BCC: fields of the Communications stamp.
- In or Out status is not related to whether you are in the From: OR To:, CC; or BCC: fields of the underlying email.
- Depending on your perspective, a message could be toMe, fromMe or NEUTRAL
- If you're in the From field, it's a fromMe communication and you see the message in the Out collection and who the message is TO in the Who column.
- If you're in the TO, CC, BCC, its a toMe communication and you see the item in the In collection who the message is FR or ED or UP in the Who column.
- If you're in the TO, CC, or BCC fields AND you're Sending, Editing, have Sent or have Updated an item, it's both fromMe and toMe, shows up in both In and Out collections, but the message shows up as fromMe in the communications status column and you only see who the message is TO in the Who column.
- If you're in none of these fields OR the item is not a message, the item is NEUTRAL and you see both who the message is FR and TO
- The Who column sorts on the contact listed in the column, not on a particular attribute, e.g. FR or TO.
- First-time communication versus Update versus Created versus Edited:
Created and Edited here apply only to non-message items.
First-time communication and Update apply only to messages. Messages you create would be first-time communications up until you’ve sent them; after subsequent edits they become updates. Similarly, an item you receive for the first time via email is a first-time communication. Once you edit (or the sender changes and sends) the message, it is an update.
- Draft versus Queued versus Sent versus Error:
Draft, Queued and Sent only apply to messages. The use of “Sent” here shouldn’t be confused with what is called a “first-time communication” in the previous section: “Sent” refers to messages whose last modification was to be sent or updated.
Any item can have state Error (e.g. non-messages could have a sharing conflict).
- Nice to have in the Future: Forwarded, Replied to
Each icon has 4 interaction states:
- Active
- Rollover
- Mousedown
- Mousedown - Mouse-off
For more details and design context, please see Stamping Spec: http://svn.osafoundation.org/docs/trunk/docs/specs/rel0_7/Stamping-0.7.html
For more details on recent visual design tweaks, please see: http://lists.osafoundation.org/pipermail/design/2007-April/006954.html
Once FULLY implemented, the proposed sort order is: (NOTE: Bryan and I are trying to work out the exact sort order.)
Originally spec'd out sort order:
- Unread
- Unread Created
- Unread Edited
- Unread Received First-time
- Unread Received Update
- Unread Draft of an Inbound First-time message
- Unread Draft of an Inbound Update
- Unread Draft First-time
- Unread Draft Update
- Unread Queued First-time
- Unread Queued Update
- Unread Sent First-time
- Unread Sent Update
- Unread Error
- Needs reply Created
- Needs reply Edited
- Needs reply Received First-time
- Needs reply Received Update
- Needs reply of an Inbound First-time message
- Needs reply Draft of an Inbound Update
- Needs reply Draft First-time
- Needs reply Draft Update
- Needs reply Queued First-time
- Needs reply Queued Update
- Needs reply Sent First-time
- Needs reply Sent Update
- Needs reply Error
- Read
- Read Created
- Read Edited
- Read Received First-time
- Read Received Update
- Read Draft of an Inbound First-time message
- Read Draft of an Inbound Update
- Read Draft First-time
- Read Draft Update
- Read Queued First-time
- Read Queued Update
- Read Sent First-time
- Read Sent Update
- Read Error
- Unread Created
- Unread Edited
- Unread fromMe [First-time communication]
- Unread fromMe Update
- Unread toMe
- Unread toMe Update
- Unread Neutral (Same icon as Unread Created)
- Unread Neutral Update (Same icon as Unread Created)
- Unread fromMe Error
- Unread fromMe Update Error (Same icon as Unread fromMe Error)
- Unread toMe Error (Same icon as Unread fromMe Error)
- Unread toMe Update Error (Same icon as Unread fromMe Error)
- Unread Neutral Error (Same icon as Unread fromMe Error)
- Unread Neutral Update Error (Same icon as Unread fromMe Error)
- Unread fromMe Queued
- Unread fromMe Update Queued (Same icon as Unread fromMe Queued)
- Unread toMe Queued (Same icon as Unread fromMe Queued)
- Unread toMe Update Queued (Same icon as Unread fromMe Queued)
- Unread Neutral Queued (Same icon as Unread fromMe Queued)
- Unread Neutral Update Queued (Same icon as Unread fromMe Queued)
- Unread fromMe Draft
- Unread fromMe Update Draft
- Unread toMe Draft
- Unread toMe Update Draft
- Unread Neutral Draft
- Unread Neutral Update Draft (Same icon as Unread Neutral Draft)
- Needs reply Created
- Needs reply Edited
- Needs reply fromMe
- Needs reply fromMe Update
- Needs reply toMe
- Needs reply toMe Update
- Needs reply Neutral (Same icon as Needs reply Created)
- Needs reply Neutral Update (Same icon as Needs reply Created)
- Needs reply fromMe Error
- Needs reply fromMe Update Error (Same icon as Needs reply fromMe Error)
- Needs reply toMe Error (Same icon as Needs reply fromMe Error)
- Needs reply toMe Update Error (Same icon as Needs reply fromMe Error)
- Needs reply Neutral Error (Same icon as Needs reply fromMe Error)
- Needs reply Neutral Update Error (Same icon as Needs reply fromMe Error)
- Needs reply fromMe Queued
- Needs reply fromMe Update Queued (Same icon as Needs reply fromMe Queued)
- Needs reply toMe Queued (Same icon as Needs reply fromMe Queued)
- Needs reply toMe Update Queued (Same icon as Needs reply fromMe Queued)
- Needs reply Neutral Queued (Same icon as Needs reply fromMe Queued)
- Needs reply Neutral Update Queued (Same icon as Needs reply fromMe Queued)
- Needs reply fromMe Draft
- Needs reply fromMe Update Draft
- Needs reply toMe Draft
- Needs reply toMe Update Draft
- Needs reply Neutral Draft
- Needs reply Neutral Update Draft (Same icon as Needs reply Neutral Draft)
- Read Created
- Read Edited
- Read fromMe
- Read fromMe Update
- Read toMe
- Read toMe Update
- Read Neutral (Same icon as Read Created)
- Read Neutral Update (Same icon as Read Created)
- Read fromMe Error
- Read fromMe Update Error (Same icon as Read fromMe Error)
- Read toMe Error (Same icon as Read fromMe Error)
- Read toMe Update Error (Same icon as Read fromMe Error)
- Read Neutral Error (Same icon as Read fromMe Error)
- Read Neutral Update Error (Same icon as Read fromMe Error)
- Read fromMe Queued
- Read fromMe Update Queued (Same icon as Read fromMe Queued)
- Read toMe Queued (Same icon as Read fromMe Queued)
- Read toMe Update Queued (Same icon as Read fromMe Queued)
- Read Neutral Queued (Same icon as Read fromMe Queued)
- Read Neutral Update Queued (Same icon as Read fromMe Queued)
- Read fromMe Draft
- Read fromMe Update Draft
- Read toMe Draft
- Read toMe Update Draft
- Read Neutral Draft
- Read Neutral Update Draft (Same icon as Read Neutral Draft)
The Communications status column should be sub-sorted by the Triage status column.
The following table lists the icon names actually used by Chandler for the above. (Since there are variations for rollover, active, read, etc, these are only prefixes for the real filenames):
| Icon | Filename Prefix |
|---|---|
| created/edited | MailPlain |
| plain draft | MailPlainDraft |
| inbound draft | MailInDraft |
| received | MailIn |
| draft | MailOutDraft |
| sent | MailOut |
| draft-out-update | MailOutdateDraft |
| updated | MailOutdate |
| draft-in-update | MailIndateDraft |
| received update | MailIndate |
| queued | MailQueued |
| error | MailError |
Determing Inbound versus Outbound
- Inbound versus Outbound, aka toMe or fromMe is calculated from the Addressing fields (detailed below).
- An item is toMe if the item is a message item and the user's email address appears in any of the following Addressing fields: TO, CC or BCC.
- An item is fromMe if the item is a message item and the user's email address appears in any of the following fields: FROM, Send/Sent as, Edited by, Updated by.
Open issue: Currently, we are not sharing BCC, so there are no circumstances under which users will 'receive' message items where they are mentioned in the BCC field. I have logged a bug to track this for Post-Preview because I believe there are scenarios where sharing BCC will be useful: http://bugzilla.osafoundation.org/show_bug.cgi?id=8206
- Items can be both toMe and fromMe
- toMe items live in the IN collection
- fromMe items live in the OUT collection
- In addition to the rules populating the IN and OUT collections, the collections also support user-defined Inclusions and Exclusions (via Drag and Drop)
- In the Dashboard, fromMe always wins over toMe
When to display an Error or Alert icon
See list discussion: http://lists.osafoundation.org/pipermail/design/2007-March/006620.html
Logged as bug: https://bugzilla.osafoundation.org/show_bug.cgi?id=8555
If a conflict arises on an item while syncing a collection:
- Show an error/alert icon next to the collection in the Sidebar
- Show an error/alert icon in the communication status column for the affected item(s) in the Triage Table
- Update the tooltip to explain the Conflict:
- For the collection: You have pending changes on x items in this collection.
- For the item: You have x pending changes on this item.
- For the collection: You have pending changes on x items in this collection.
If a conflict arises on an item via edit/update:
- Show an error/alert icon next to the IN collection in the Sidebar
- Show an error/alert icon in the communication status column of the affected item in the Triage Table
- Update the tooltip to explain the Conflict:
- For the collection: You have pending changes on x items in this collection.
- For the item: You have x pending changes on this item.
- For the collection: You have pending changes on x items in this collection.
If a sharing error occurs on an item while syncing a collection:
- Show an error/alert icon next to relevant collection in the Sidebar
- Show an error/alert icon in the communication status column for the affected item in the Triage Table
- Update the tooltip to explain the Error: Error syncing collection: <Error message>
If a sharing error occurs while syncing a collection, but the error does not affect any particular item:
- Show an error/alert icon next to relevant collection(s) in the Sidebar
- Do not show an error/alert icon in the communication status column for every item in the collection in the Triage Table
- Update the tooltip to explain the Error: Error syncing collection: <Error message>
If an error occurs while downloading mail (POP and/or IMAP):
- Show an error/alert icon next to the IN collection in the Sidebar
- Show an error/alert icon in the communication status column for the affected item(s) in the Triage Table (if applicable)
- Update the tooltip to explain the Error: Error downloading mail from <ACCOUNT NAME>: <Error message>
If an error occurs while sending mail:
- Show an error/alert icon next to the OUT collection in the Sidebar
- Show an error/alert icon in the communication status column for the affected item(s) in the Triage Table
- Update the tooltip to explain the Error: Error sending mail from <ACCOUNT NAME>: <Error message>
Whenever there is an error/alert on an individual item, the error or alert message should display in the red banner area at the top of the detail view (below the mark-up bar).
Read/Unread status Workflow
- Item is marked as Unread under the following conditions:
- New items created by user in the CLI toolbar text field
- New items created by sharees
- Newly received messages
- Newly received updates to existing items
- Items edited by sharees
- Items with errors
- Tickling into the NOW section is not a reason in and of itself to mark an item as Unread.
- Items are automatically marked as Read when:
- The user selects the item in the summary pane.
For more on read/unread status behavior, see the section below on Recurrence.
Reminder Column (formerly known as the Calendar stamp column)
Once we have Ticklers, we will want to turn the Calendar stamp column into an 'Add a custom-date tickler' column where users can toggle between adding and removing custom-date Ticklers. The column would still display Calendar date status, however adding a custom-date tickler will override the calendar stamp, much in the same way that marking an Item 'Needs reply' in the Communication status column overrides communication status icons.
User motivations:
-
Adding custom-date Ticklers to Items may be far more common a user task than adding Items to the calendar, especially if users are not receiving all of their email in Chandler.
-
Adding an Item to the calendar will most likely require the user to interact with the detail view of that Item. As a result, having the ability to add Items to the calendar from the summary table view is less important.
When clicking in the Reminder column, users can cycle through the following 2 options:
- Add custom-date Tickler (Tickler icon)
- Remove custom-date Tickler (Whatever Date state icon was displayed before)
- Tooltip should read: Add tickler, Remove tickler
- Adding a custom-date Tickler overrides any other date status icons (e.g. Calendar stamp icon)
- Adding a custom-date Tickler will automatically assign a default Tickler date (End-of-day) which the user could reset in the Date column of the table view or the detail view of the Item
- If the user deletes the custom Tickler date in the detail view or summary table, the Date column displays no date.
There are 3 possible Date states in the Reminder column:
- On calendar (clock icon)
- Not on calendar (no clock icon)
- Nice to have:
- Calendar start-date confirmed (confirmed clock icon)
- Calendar start-date tentative (tentative clock icon)
- Calendar start-date FYI (FYI clock icon)
Each icon has 4 interaction states:
- Active
- Rollover
- Mousedown
- Mousedown - Mouse-off
Descending sort order for the Reminder column:
- Ticklers
- Calendar dates (Confirmed, Tentative, FYI)
- Everything else
- Reminder column should be sub-sorted by the Triage status column
Activating the Reminder icon in the Reminder column blanks out the Date column for that row, overriding whatever Date should be displayed in the Date column. User motivation: This provides users with a way to 'tag' Items as 'Needs to be assigned a Tickler date.'
However, once the user assigns a Tickler date, the usual Date column rules apply. For example, if the custom Tickler date is not the right Date to be displayed, both the Tickler icon in the Reminder column and the Tickler date in the Date column will be overridden by the Calendar stamp icon and the Event Start-date and time. (See below in the Date column section for specifics).
Triage Status
Triage centers around quickly processing information into Now, Later and Done buckets in order to provide users with a better framework for managing their focus. All Chandler Items regardless of Kind: notes, communications, tasks, events and eventually resources and newly defined Kinds have a Triage status. Triage statuses are mutually exclusive. Out of the box, there are 3 status values: Now, Later and Done. In the future, we imagine that user will be able to define their own and add and remove status values.
Why do we think our target users will use the triage status? Assumptions derived from user interviews:
- Less of a cognitive burden: Users can process information faster because making a Triage decision requires less knowledge about the Item than making a filing decision
- Easier interaction: Users can process information faster with fewer mouse-clicks than dragging and dropping Items into folders or tagging Items
- Tickling allows users to get information out of their face without worrying that they'll never remember to look at it again.
- Triage + Tickling allows users to iterate on Items over time, as opposed to feeling like they need to get things Done in a single sitting or keep Items flagged in front of their face for weeks and months because they're afraid they will lose track of them.
- As a result, users will be able to maintain their focus more easily on what they need to get done RIGHT NOW.
- We feel strongly that Triage will be especially useful for our Hub users. Therefore, getting something up and running in order to dogfood it and work out the kinks is very important.
Out of the box, all table views will be sorted by the Triage status column with the following sort order: NOW, LATER, DONE. Click on the Triage status column header to reverse the sort order. See below for how Items are ordered within NOW, LATER and DONE.
For now, we have chosen to NOT have a separate section for NEW items to separate NEW items from those that appear in the NOW section. This will be discussed further on the design list and we are prepared to respond to feedback from users once we have the basic triage workflows up and running. We would like to start with just having 3 triage statuses for now and will re-evaluate once we have had some experimental usage.
Triage Status Model
Each item has a triage status that colors the NOW/LATER/DONE buttons shown in the dashboard and at the top of the detail view. The dashboard is divided into sections by triage status when sorted by the triage column; within each section, items are sub-sorted by how recently their triage status changed; an internal timestamp, "triageStatusChanged", is used to track this.
Normally, this same "button" triage status is used for sorting in the dashboard; however, because we occasionally want to pin an item in place when changing its button color, or move an item to a sort position other than what its button triage status would call for (see specifics below), a secondary "section" triage status overrides the button triage status if it's present. All items have button triageStatus (and triageStatusChanged); section triageStatus and sectionTriageStatusChanged are optional.
These attributes combine to work like this:
- When we want an item to pop to the top of the NOW section, we set its button triageStatus to NOW, and its button triageStatusChanged to the current time; because the dashboard sorts NOW items first, then by descending time within the NOW section, the new item appears at the top.
- If that item were already NOW, simply changing its button triageStatusChanged time to the current time causes it to move to the top of the section.
- Because section triage status (if present) overrides button triage status for sorting, but doesn't change button color, we can cause a LATER item to appear at the top of the NOW section while keeping its LATER button color, by setting sectionTriageStatus to NOW and sectionTriageStatusChanged to the current time; because we leave button triageStatus as LATER, the button still says LATER even at the top of the NOW section.
- The reverse of this also works: if we want to change the button color (say, from NOW to DONE) without moving the item from its current sort position, we copy button triageStatus to sectionTriageStatus, and button triageStatusChanged to sectionTriageStatusChanged, before changing the button color.
Also, we internally track whether we should automatically set triage status on the item when the user changes dates on the item (see below for details). This "doAutoTriageOnDateChange" flag defaults to "on" (enabling auto-triaging), but is updated by certain actions described below.
The button triage status attributes (triageStatus and triageStatusChanged) and the doAutoTriageOnDateChange flag are shared, only if the user chooses to "Share triage status" in the sharing dialog for a given collection. Note that if the user chooses to "share triage status", alarms must be shared as well, to avoid attribute wars (and spurious conflicts) of triage values. The section triage status attributes (sectionTriageStatus and sectionTriageStatusChanged) are never shared. (Behavior of these attributes at sharing time is described below.)
Triage Status Display
Triage status is displayed as two buttons: in the rightmost column of the dashboard, and in the markup bar in the detail view. Both these widgets are clickable, and act like buttons: they have active, rollover, and mousedown states, for each of the three status values NOW, LATER, and DONE:
- NOW is represented as green (#00cc00)
- LATER is represented as yellow (#ffcc00)
- DONE is represented as 33% gray
- All are white text with a colored background; in the dashboard, the color blocks should fill up the entire cell, leaving a 1-pixel gap between rows.
- The section headers also use swatches of these colors.
Triage status and unread-ness changes
Triage status changes fall into three categories: explicit actions by the user, implicit user actions, and internal auto-triaging. Certain sharing changes can also mark an item "unread" again.
Explicit user actions affecting triage status:
- When the user clicks on a triage widget, in either the dashboard or the detail view's markup bar.
- Button triage status will cycle through NOW, DONE, and LATER, in that order. It won't move in the dashboard, however: if it doesn't have a section triage status, its original button triage status will be copied to section triage status to pin it in place until purging.
- (Post-preview: If the item isn't displayed in a visible dashboard (that is, a calendar view is shown), this section triage status manipulation for pinning won't be done.)
- Changing triage status using the widgets is considered a modification with regard to the edit/update workflow (see the stamping spec).
- When the user changes triage status using one of the widgets, the doAutoTriageOnDateChange flag is set to "off" (keep reading for how this affects future auto-triaging).
- (Nice to have: if the new triage status matches the status that would be calculated as described below for a change to alarm time or event start time, the doAutoTriageOnDateChange flag is set back to "on" instead of being turned "off.")
- Purging: a "Triage" button on the toolbar scans all the non-"unread" items in the displayed collection: sectionTriageStatus (on any items that have it) is discarded, causing those items to re-sort to the positions determined by the button triage status. (This would cause those items to be reordered in other collections as well, since none of the triage status attributes are per-collection.)
- Post-preview: by dragging within the dashboard if it's sorted by the triage column.
- Dragging within the dashboard artificially manipulates the triageStatusChanged value, forcing a particular ordering within a section. Positioning an item this way applies to all collections that the item is in: Given items A, B, and C, that happen to all be in both collection X and collection Y, dragging item C between A and B in collection X will guarantee that the same ordering will appear in collection Y (though it's possible for other items not in X to be between A and B in Y; C's position relative to these items in Y is arbitrary).
- Dragging within the dashboard counts as a modification for edit/update, and if the triage status changes as a result of the drag, the doAutoTriageOnDateChange flag is updated just like clicking the widget (as described above).
Implicit user actions affecting triage status:
- Item creation
- Normally, a new item created by the user will have NOW button triage status, and no section triage status, causing it to appear at the top of the NOW section of the dashboard. However, if the item is created on the calendar (or by any other mechanism that causes it to start its life with an assigned start time), its button triage status will be set to DONE if the start time is in the past, or LATER otherwise; its section triage status will be NOW, causing it to appear at the top of the NOW section.
- (The rest of these changes don't happen unless the doAutoTriageOnDateChange flag is "on" for that item, and they only affect button color; the item doesn't change position until the user hits the "Triage" button.)
- Changing the user alarm time on an item, or the event start or end time on an event, or stamping an item as an event
- If it's an event:
- LATER if the start date is in the future or if there's an alarm in the future
- else DONE if the end date is in the past.
- else NOW otherwise.
- (Note that items newly stamped as events are "anytime today", and will thus be NOW.)
- Otherwise, if the item has an alarm time in the future
- LATER
- Otherwise, the triage status is left alone.
- If it's an event:
Automatic operations affecting triage status:
- When a user reminder goes off, or when an event's start time is reached
- The item's triage status gets set to NOW, and the item moves to (near) the top of the NOW section (overriding any pinning caused by sectionTriageStatus). (Its position is actually determined by the reminder or event start time that caused the move -- items will appear in reverse order that their alarms went off or times were reached. This is true even if Chandler wasn't running at the appointed times: the automatic operations will produce results in the right order when Chandler is restarted.)
- The doAutoTriageOnDateChange flag is turned off. (Nice to have: as above, if the new triage status matches the status that would be calculated as described below for a change to alarm time or event start time, the doAutoTriageOnDateChange flag is set to "on"; otherwise, it's turned "off.")
- When items are newly received or updated via sharing or mail, if this user's "Share triage status" choice is off in all collections this item belongs to:
- (These changes only affect item sort order, not button color; if the item had a pending unpurged sectionTriageStatus pinning it in place, this overrides it. When the next "Triage" purge happens, the item will move to the position determined by the triage status originally set by the local user.)
- The item is moved to the top of the NOW section.
- The item is marked "unread".
- When sharing, and any collection the item belongs to on that server has the "Share triage status" option selected
- Button triage status (and triageStatusChanged, and doAutoTriageOnDateChange) are synced like ordinary attributes: any existing item receiving a change to button triage status will have its button color updated immediately.
- Additionally, the item will move to the top of the NOW section (unless it already has a pending section triage status pinning it in place).
- When an error occurs syncing an item
- The item is moved to the top of the NOW section, without changing its button color. This overrides any pending unpurged positioning pinning it in place.
Note: The various automatic triaging (button triaging and section triaging) options described above are never mutually exclusive.
Sharing, Edit/Update and Error changes to an item affect the sectionTriageStatus of that item. However that does not preclude other automatic triage operations from having their way with the item.
If the change was a change to the item's date/time, then auto-triaging based on date/time changes should also take effect.
The only situation in which buttonTriageStatus would not be updated when there is a change to date/time information on the item is if the item in question has has its doAutoTriageOnDateChange flag set to false by the user or by sharees (if Triage status is being shared).
Ticklers
We would like to give users the ability to set alarms on all Items, regardless of Kind.
UI elements
- Clickable set custom-date Tickler widget in the Reminder column
- Add Reminder field to detail view of all Items
- Reminder field appears right above the Notes field for All Kinds of Items.
Workflow: Setting Ticklers from the Table view
- Click the set custom-date Tickler widget in the Reminder column
- Default Reminder date is set automatically: End of Today: Todays' date + 5PM
- This is where we might be able to experiment with Darshana, for example
- If it's before noon, automatically set Tickler to End of Today
- If it's after noon, automatically set Tickler to Tomorrow
- Other natural language Ticklers: End of this week, Next week, in[#] weeks, End of this month, Next month, etc
- Click Tickler icon in Reminder column to remove Tickler
- Tickler date persists even after it has fired
Workflow: Setting Ticklers from the Detail view
1. For non-Event Items, edit the Reminder field in the Detail view:
- None
- Custom date...
- Nice to have: Other options like End of Day, Tomorrow, End of Week, Next Week, End of Month, Next Month

2. For Event Items, the pull-down options are as follows:
- Before event...
- [x] Minutes/Hours/Days before |v| (see iCal for example)

- Custom date...
- In the future we may want to provide users with the option of having multiple reminders
- 3. If the user sets a Tickler that is NOT dependent on an Event date, a Tickler icon appears in the Reminder column.
- 4. If the user sets a Tickler that IS dependent on an Event date, a Tickler icon does NOT appear in the Reminder column, because the Date displayed in the Date column is NOT the Tickler date.
In the future we would like to add natural language options such as: End of day, Tomorrow, End of this week, Next week, [#] weeks, End of this month, Next month, etc. However for now, a custom date option will suffice.
The Date Column
With the addition of Ticklers, what appears in the date column becomes a bit more complicated. Dates should appear in the Date column in the following manner:
- Date and time format
- All dates appear in the form 'Mon DD, YYYY', e.g. May 12, 2006 except for Yesterday, Today and Tomorrow.
- All times appear in the form of '(H)H:MM AM/PM' e.g. 3:30 PM
- NEXT important date.
- If both the custom tickler and event start dates/times have past, in other words, if there is no NEXT important date, display the Start date and time of the event.
- If the custom tickler date has past and there is no event date/time, keep displaying the Custom Tickler date.
- If an Item is not an Event, always display the most RECENT date: either the Date last modified or the Date sent which ever one happened most recently.
- In the interest of simplifying the Date column we are not going implement a prioritization of 'Important date' for Preview. Instead, the Date column will simply display the next important date if there is an important date in the future; or the most recent important date if there isn't an important date in the future.
- This means that in the rare case that an user Sends an item that has a Reminder date or Event date in the past, the Date sent/received will override the Reminder or Event date. Since Alpha 4 will not have support for Edit and Update workflows, we think this is an edge case.
- When we do have support for Edit and Update workflows however, we would like to be able to rank order Important dates so that event and reminder dates always override Date sent/received, which in turn always overrides Last modified date.
- If an Item has none of these dates, the date column displays the Date created.
Recurring Events
There should be separate instances of recurring events (for a single series) in each Triage Status section, if applicable.
- I create an event for the future; it starts off as LATER, and stays that way while I make it recur.
- When the first occurrence rolls around; OR a ticklers fires, just that instance of the event changes to NOW.
- The instance of the recurring event in the NOW sections displays the date and time of that instance in the Date colunm.
- Meanwhile, there is still an entry in my LATER section for future occurrences of the event, if there are any.
- Nice to have: The instance of the event in the LATER section displays the recurrence rule in the Date column. e.g. Mondays 3-4PM or Monthly, 12th 1-1:30AMAt some point, I have the option of changing the instance of the event in the NOW section to DONE. Otherwise, just displays the date of the next instance.
- When the next occurrence rolls around; OR a tickler fires, repeat.
- I can triage the instance in the NOW section to DONE, where again, it would nice if we could display the recurrence rule in the Date column.
- Nice to have: Instances of a recurring even that have been detached from the series (edited in some way that is unique to the instance) should be displayed as individual items in the Dashboard.
Nice to have: Pruning of recurring events
Whenever possible, if users end up with 'extra' instances of a recurring event in a triage section, we should try to 'prune' the recurring event series and recombine instances that don't actually need to separate instances in the Dashboard (e.g. User changes the Title of a LATER instance and then changes it back to match the series Title.) It doesn't look like we'll have this for Preview, but it's logged as: bug: 7903: https://bugzilla.osafoundation.org/show_bug.cgi?id=7903
Sending, Editing and Updating Recurring Events
In the Preview timeframe: Send, Update, and adding, removing and editing the Addressing fields will always apply to the entire event series. However, only 'edited' instances will be popped to the top of the NOW section in the Dashboard view.
If the user makes a global Edit to a recurring event series and then sends out an Update, all instances of the recurring event in the Dashboard will pop to the top of the NOW section in the Dashboard. (We know this isn't ideal, but it's a first step for Preview. When we have a notion of clusters, we might be able to represent global edits as a single row item that can expand to show more instances.)
If the user Edits a specific instance in a recurring event series and then sends out an Update, only that instance will pop to the top of the NOW section in the Dashboard.
If the user makes a 'This and Future' edit to a recurring event series and then sends out an Update, the 'This and Future' edit will be represented at the top of the NOW section in the Dashboard by the 1st instance that was changed.
For more information on how replies and forwards will work with recurring events, see the Sending, Replying to and Forwarding Recurring Events section of the Email spec: http://svn.osafoundation.org/docs/trunk/docs/specs/rel0_7/Email-0.7.html
Marking up Recurring Events: Triage, Unread/Read/Needs reply status, Task stamp, Custom reminder dates
Marking buttonTriageStatus, Adding, Removing and Editing Custom Reminder Dates will always apply to individual occurrences no matter where you are, Dashboard or Calendar.
Marking an item as Unread/Read/Needs reply will always apply to the entire recurrence series.
Invoking the Task stamp should pop-up the dialog asking users if they want to apply/remove the stamp to the entire series, the single occurrence or this and future occurrences, regardless of where you are, Dashboard or Calendar.
Note: Ideally, we'd like users to be able to make recurring events as Read/Unread/Needs reply in the same way we Triage recurring events.
Sections
All dashboard views should section on triage status only. Most of this is basically working as of Alpha2 but there are just a few minor changes we would like to make in the area of visual polish and semantic clarity.
Out of the box, all table views are sectioned by Triage status in the following manner:
- NOW: Open
- LATER: Closed
- DONE: Closed
- Each section header displays the following (from left to right)
- Open and close arrows
- Name of the section in Medium size font (12): Now, Later, Done
- Nice to have: # of items in each section in XS size font (10 Bold)
- (Right-aligned) Triage status value color with white outline
- Section headers have 2 states: Open and Closed
- Section header styles:
- 80% Grey background
- 50% Grey for open and close arrow
- Medium size font (12) and Black text for section name
- XS size font (10, bold) and 50% Grey for # of items
Click on the Triage status column header to reverse the order of the Triage status sections: DONE, LATER, NOW
Click on a different column header to sort/section on a different attribute.
- In Alpha 4, we don't expect the Who and Date columns to sort/section properly. See below for more details on sorting/sectioning options.
- However would like the Task, Communications status and Reminder columns to sort properly
Nice to haves
- Ability to explicitly assign Triage status to Items by dragging and dropping Items from one Triage status section to another Triage status section.
Dashboard with sections

Multi-selecting table items (nice to have)
We believe users will often want to do the following tasks in batch:
- Triage Items
- Mark as Read or Unread
It is less likely, but still a possibility that users will want to perform the following tasks in batch:
- Add a Tickler
- Add to Task list
- Mark as Needs reply
As a result, we would like to eventually support the ability to:>
- Multi-select Items in the table
- Click in the Triage, Communications status, Reminder and Task columns to apply a single setting to all selected Items in 1 step.
Proposed workflow:
- I select 10 Items in the table
- I click in the Communication status column for 1 of the selected Items, which is currently marked as Unread,
- All 10 Items are now marked as Read
- If I click on a row that is not one of the 10 selected Items, then the click only applies to that particular row and does NOT affect any of the 10 Items I have selected.
This should also include multi-selecting items in order to drag and drop them into another collection.
Nice to have: Explicit Reordering for Triage status
Explicit reordering means that the user can drag and drop items within the table to reset the order in which Items were set to a particular Triage status value. (e.g. Item A was the 3rd Item set to NOW in my list of 37 NOW Items. I want to see it back at the top again. I will reset Item A to be the 38th Item set to NOW in my list of 37 NOW Items.)
Proposed staging for Preview
Things to do first:
- Change name of My collections to Dashboard
- Section by Triage status
- Set Triage status in the detail view
- Display Triage status with color and text in the table
- Display proper triage status icon in the header.
- Set custom-date Ticklers in the detail view
- Display custom-date Tickler icon in the Reminder column
- Auto-Triage Items to NOW (e.g. Newly created Items, when Ticklers and Event dates go off)
- Sort Triage sections according to spec
- Sort on the Task, Communications status and Reminder columns
- Sub-sort on Triage status
- Proper formatting and display of dates in the date column
- Mark Items as Read, Needs reply and Unread in the Communications status column
Things to do next:
- Set Triage status in the table
- Add Items to the Task list in the Task column
- Activate custom-date Ticklers in the Reminder column
- Display basic communication states: In v. Out v. Neither, Error, Updated.
- Display the right attribute in the Who column for the basic states that have been implemented (CR, ED, FR, TO)
- Display the right attribute in the Date column.
Nice to haves (in order of priority)
- Display icons for the remaining communications states in the table: Draft, Queued.
- Allow users to explicit order Items in each Triage section.
- Click in the Task, Communication status, Reminder or Triage status columns to apply a single setting to all selected Items.
- Multi-select a list of items and drag to a collection.
- Edit dates in the Date column
The following images are dashboard mockups for each phase listed above: Things to do first, things to do next and stuff that can potentially be deferred until Post-Preview.
Mockup - Things to do first:

Mockup - Things to do next:

Mockup - Full Preview Dashboard:

POST-PREVIEW DASHBOARD
There are a number of features we have discussed in the past that can't make it into the first Preview release. We wanted to keep these sections in the spec since we will come back to those once we have Preview finished. We also expect some of our Preview users to ask about future features and felt it was useful to have some of the current designs and issues documented.
Multi-line table display
Supporting multi-line display is particularly important for tasks. We expect that we will eventually need to display more information in both the Who and Title columns. This should be a setting that the users can turn on and off for all Items or set on a per Item row basis.
Sorting and Sectioning in the Who and Title columns
There are currently 3 ways in which we can implement Sort/Sectioning in the dashboard view:
- Sort on the attributes that happen to appear in the Who and Date columns at any given point in time. (John Anderson thinks he has a simple solution for this.)
- Clicking on the Who and Title column headers pops-up a drop down where users can choose to sort on a particular attribute:
- Who column: From, To, CC, BCC, Sent by, Updated by, Edited by, Created by
- Date column: Tickler date, Start date, Date sent, Last modified date, Date created
- Clicking on the Who and Title column headers sections these columns in the following manner:
- Section the Who column where each Section is defined around a Contact Item:All Items From:, To:, CC:, BCC:, Sent by:, Updated by:, Edited by:, Created by: a particular Contact.
- For any particular Section, users can filter down the Sectionby selecting a particular Who attribute to look at from a pull-down menu: Display only Items From:, To:, CC:, BCC:, Sent by:, Updated by:, Edited by:, Created by: a particular Contact.
- Items will need to be able to appear in more than 1 Sections. Sometimes the same Item will appear multiple times in a single section, e.g. This Item is both To: Jeannie and Updated by Jeannie.
- Users cannot drag and drop Items between Sections for now.
- Section the Date column in the following manner, in descending order:
- Future
- Next month
- In 2 weeks
- Later this week
- Tomorrow
- Today
- Yesterday
- This past week
- Last week
- 2 weeks ago
- Last month
- Past
- For any particular Date Section, users can filter down the Section by selecting a particular Date attribute to look at from a pull-down menu: Display only Items
- with a Tickler date set to:,
- that Starts on:,
- was Sent on:,
- was Last modified on,
- was Created on: whatever date/date-range is defined by the Section.
- Items will need to be able to appear in more than 1 Sections. Sometimes the same Item will appear multiple times in a single section, e.g. This Event is schedule to start in 2 weeks and I have a custom-date Tickler set on it for the day after. In effect, sorting/sectioning by Date provides the user with a timeline view of their information: How does my information change and evolve over time?
- Users cannot drag and drop Items between Sections for now.
Nice to haves
- Filters persist on each Section across sort/section sessions. The next time an user clicks on the Who/Date column header, the Sections should be filtered in the same way.
- Users can drag and drop Sections in order to reorder Sections.
- Explicit Section re-ordering are persistent. If an user pulls a Section out of order to put it at the top, the next time I sort/section by the Who column, that Section appears at the top.
- To return to the default Section order, right-click on the column header for a context menu item.
A more detailed discussion of the pros and cons of these approaches and user motivations/workflows can be found at:
http://lists.osafoun
User-defined Sections
Although we know we need to support more flexible sections in the table view at some point in the future, at this time we have not worked out the appropriate detailed design. We would like to explore this in early 0.7 to collaborative braistorm alternatives with the development team and through the design list. Until then we just want to make the dev team aware that we will be working on this so we do not make any architectural decisions that would prevent us from implementing some solution in the future. It's possible we will do something in 0.7 but this is currently undecided.
Some open questions: Are Sections attached to a column in the table? Do Sections have semantic meaning the way collections do? Can users section by any column? Can users section by any attribute? How many levels of Sections should we accommodate? Can users define their own Sections? Can Sections be promoted to the Sidebar as collections? Are Sections Items as well? with Detail views? Can users share Sections? Are Sections re-orderable? Can users save configurations of Sections. Does each Collections have a single configuration of Sections? Or can a single Collection have multiple configurations?
Clusters
New item creation with CLI-for-dummies
See wiki spec at: http://wiki.osafoundation.org/Journal/QuickItemEntryProposal
Overlays in the Table
This is currently being discussed on the list...http://lists.osafoun
Special Considerations
QA / Test
API / Developer Platform
Security
Internationalization / Localization
Accessibility
UI must be accessible (Section 508).
Build / Install
Cuts
Handle CONFIDENTIAL or PRIVATE events specially.
Useful Links
History
| Author | Edit date | Description |
|---|---|---|
| Sheila Mooney and Mimi Yin |
Jun 9, 2006 |
First official draft |