Date-Time Entry Widget (Old Notes from 0.5 planning)
deferred to 0.6.
General
The user can enter text in a single field to specify date and time.
The field is subdivided into portions, date first then time. For example, if the user enters a month and day the cursor will move to the year section. NOTE: a visual might help with the explaination here.
The user cannot specify a time only, typing 2p only into the field will try and resolve to the date.
The widget supports 2 formats for dates: MM/DD/YY and a text format like Sep 21, 2004.
Based on completion the text format is displayed ie: if the user enters 3/3/05, it completes to Mar 3, 2005.
The widget supports 2 formats for times: HH:MM using the 24 hr clock and a text format like 2-4p.
Based on completion the text format is displayed ie: if the user enters 14:15-15:15, it completes to 2:15-3:15p.
Only an event with a specific date (month, day and year) can be put on the calender.
Events and tasks with only a year or a month and year can be created but they will only exist as list items in the all collection. They will not appear on the calendar views.
Workflow steps
1. type.
2. auto-complete.
3. cursor moves to next date portion (ie: year, time etc).
4. press Enter or tab out of date field to be done.
5. validation occurs.
Errors on validate are handled when user tabs out of the field or hits enter. NOTE: still closing on the exact visual display since we want to look for an alternative to the ? used for email validation.
Dates
Date MM/DD/YY format rules
adding MM/DD/ auto-completes year MM/DD/YY.
the year completion is based on whether or not that Month and Day has passed for this year as of today's date ie: 03/05/ would become Mar 5, 2005 and 11/5/ would become Nov 5, 2004. The year doesn't auto-complete until the user types a closing / or ,.
typing in 2, 5, 46 only results in an error.
entering 04/04/ would complete to Apr 4, 2005 NOT Apr 2004.
Date text format rules
use whatever unique letter set is enough for auto-completion.
MA -> Mar, JA -> Jan (min of 2 letters for month). The user could type January in full.
typing in 2004 is acceptable, event in the list only for this year.
04/2004 is also acceptable and would resolve to Apr 2004.
JA, 2005 is valid and would complete to Jan 2004 and appear in the list view.
We should handle resolving 1st, 3rd, 5th if the user enters those.
Date ranges
the widget can support a date range indicated by using a dash '-'
05/05/04-05/15/04 completes to May 5-15, 2004.
05/05-05/15 completes to May 5-15, 2005.
05/05-06 is completes to May 5-6, 2005.
May 4-5, 2004 is valid, May 4-5 completes to May 4-5, 2005.
May-Jun 2004 or MA-JU 2004 is valid. MA-JUN resolves to May-Jun 2005 and is also valid.
Times
Formats
User can enter either HH:MM or text version of time.
You do not have to enter a time range, ie: you may know that a meeting is to start at 1:00p but you want to leave it open-ended.
Entering text version of time without specifying AM or PM resolves to the 24 hr clock ie: 2-4 -> 2-4a.
Need to support 2-4PM and 2PM-4PM and resolve to 2-4p.
No support for recognition of keywords like noon, midnight etc.
Mimi and I drilled down alot on the date stuff but less so on the time so there are likely a bunch of scenarios missing.
MimiYin Yes, including some scenarios that might come up when users go back into the date entry widget to edit the date
I am afraid there are a number of other keywords we want to use ie: next Tues, every third Wed, bi-monthly....how complex do we want to get. This is an engineering questions but I think the date widget will have to have a pretty strict structure in order to work.