Goals and limitations
- Provide users with a quick way to enter new items without changing context
- Stick to our original plan of only allowing "I"tems to be linked to clusters or collections, not other "I"tems (See also AdhocCollectionsWorkflow)
- Avoid the complications of having "I"tems embedded in other "I"tems
Current way to create new item
- Workflow
- User clicks the New button in the toolbar to create a new note OR
- User clicks and holds the New button to select from a pulldown list: New message, New event, New invite, New task, New note
- User hits Ctrl-N.M.E.I or T to create a new Note, Message, Event, Invite or Task
- The Dashboard view (in the All mode) appears in a new tab. If it was already open in a tab, that tab is selected.
- A new row is highlighted in the Now section of the Dashboard view.
- The cursor is automatically moved to the Title or Subject field of the new item's Detail view which is selected in it's entirety, ready to be replaced with a description by the user.
- Cons
- Switches context
- Difficult to create new items in the currently selected collection. Users always create new items in the Dashboard view and then assign them to a collection. No way to perform both steps simultaneously.
- Confronts users with the full Detail view and all of its various fields every time they create a new item
- No sense of quickly jotting down a note or several notes
In-place editing
Most software in sort of interactive in the summary pane, but mostly interactive through the detail view...which forces users to interact with the mass of their data, one item at a time...as opposed to thinking of it more as a continuous landscape of information they can glide around in. Part of the "soul of agenda" aspect of chandler is to turn the summary pane into more of a spreadsheet experience.
- Description Users d-click in the summary table view to add a new row (aka new "I"tem). Users can also edit items in-place in the summary pane.
- Cheap alternatives Ctrl-Shift-N.M.E.I.T to create a new row in the currently selected summary view.
- Issues
- Doesn't meet the "without changing context" requirement
- What are the implementation costs to get this widget working correctly?
Text entry widget
- Description Users enter new items in a special text entry field, either a pop-up or the search field
- Workflow
- Keyboard shortcut brings up special text entry field
- User types "/Kind [space] item description" to create a new item (ie. /Note, /Mail, /Event, /Invite, /Task)
- Hitting Return or Enter creates a new item and places it in the "Now" section of the Dashboard view
- Item description corresponds to Title or Subject field of item
- Nice-to-have: Text auto-complete so user only has to enter: /N, /M, /E, /I, /T
- Nice-to-have: Text recognition to parse Contact names and date/time information
- Nice-to-have: Ability to enter multiple items at once before hitting Enter
- Cheap alternative
- Ctrl-N.M.E.I.T to create a new item
- Cons
- Isn't the most natural workflow. Doesn't provide an intuitive way for users to take stream of consciousness notes. (ie. Meeting notes that might themselves include, tasks, more meetings and some follow-up emails.)
- Lack of continuity between new items. Users lose context and can't really make continuous lists if they have to hit Enter after each item.
In-place entry in the Notes field of another item
- Description Users can enter new items in the Notes field of any kind of item. (See also: JottingNewItemsWorkflow)
- Items are delimited by line breaks (hitting Return)
- Nice-to-have: Text auto-complete
- Nice-to-have: Text recognition
Example: Meeting notes
/Task Check out latest build
/Event Follow-up meeting next Wednesday
New logo doesn't really make sense.
/Task Follow-up on logo tagline. Look into market research.
/Note List of shapes for new logo: swoop, circle, check
Questions to ask when Jim get's done:
1 Is there some kind of reference to Hermes
2 How does this interfere with other branding
3 What's behind the color strategy
In the example above, the user is taking "stream of consciousness" notes at a meeting. Sometimes something the user jots down provokes them to create a separate item (ie. New logo doesn't really make sense...spawns.../Task Follow-up on logo and tagline.)
- Pros
- Keeps newly created items in context
- Closest to real-life "note taking" workflows
- Cons
- Gets into complicated issues wrt item-to-item relationships
- Are the newly created items embedded in the parent item? (aka children of the parent item?)
- Are the newly created items hotlinked in the parent item? (ie. If I edit the item description in the parent item, does it get updated in the real item and vice versa.
- Does the real item refer back to the parent item? As what? Right now items only relate to each other via collections and after Kibble, clusters as well
- Can you check off tasks in the Notes field of the parent item?
Possible compromise
- Goal
- Avoid hairy item-to-item relationship issues while
- Allowing users to jot down notes and create new items without losing the context of "stream-of-consciousness" note-taking
- Avoid forcing users to switch context (change views) when creating new items
- Whatever strategy we adopt, it will probably have to include in-place item creation and in-place editing.
- Proposal
- Allow users to jot down stream-of-consciousness notes and items in the Notes field of another item
- New items that are spawned within the Notes field of another item are:
- Not hotlinked to the real item. (No bi-directional editing.)
- Not check-offable
- Related back to the parent item via a Cluster. Not related back to the parent item directly as a sibling or a child.
- Nice-to-have: As users create new items in the Notes field of another item, they can open up a Cluster in the summary table pane around the parent item so that they can see the real version of their items items being created. (See also SummaryTableViewSpec#ClustersStoryboard for a better sense of how clusters work.)
The sketch below illustrates the proposal above. The main actors are: the detail pane, the summary calendar and the clusters pane. The detail pane displays the detail view of the blue item selected in the summary calendar pane, which also corresponds to the blue item highlighted in the clusters pane. The sketch shows a user jotting down mtg notes at the Weekly Staff Mtg into the Notes field of the Weekly Staff Mtg event item. Some of these notes spawn new items (see red arrows). Newly created items resolve into lozenges when the user hits Enter. (Similar to the way auto-completion works in addressing emails.) As these new items are created, they appear in the clusters pane below the summary calendar pane. The clusters pane displays the cluster associated with the selected event in the summary calendar pane.
If the user is working on an item that appears in a summary table view, the cluster appears in-place, inside of the summary table view. It does
not appear in a separate pane. (See
SummaryTableViewSpec#ClustersStoryboard for more on how clusters work in the summary table view.)
- Quick_item_entry_20050126.png:
- Issues
- What do we do for Kibble, which will not have Clusters?
- Does this solution work without Clusters?
Comments
MimiYin 20050126 Jeffrey asked about deleting items that appear inside of the Notes field of another item. His main concern was that users could backtrack, basically free an item from it's context. This then got me thinking about the more general issue of deleting v. removing of items created in-line. It seems like the most intuitive behavior would be to say that users can always "take it back" and delete items created in-line in the same way they delete all text from the Notes field: backspace or select and delete. Doing that will remove the item from the Notes field, remove the item from the cluster and place it into the Trash.
However, if they want to preserve the item in the repository (aka keep it in the All my items collections), but just remove it from the Notes field and cluster, they will have to right-click on the item and choose a "Remove from here, but keep it around" item from the context menu. This allows users to backtrack if they accidentally create a new item in-line that should actually be an independent item.