TimeAndDate

Differences between revisions 61 and 62
Revision 61 as of 2012-11-21 12:02:52
Size: 20892
Editor: mpt
Comment: merges redundant sections on displaying dates and times
Revision 62 as of 2013-02-19 16:55:24
Size: 21029
Editor: mpt
Comment: makes manual time and date setting explicit-apply (bug 1102890)
Deletions are marked like this. Additions are marked like this.
Line 43: Line 43:
Inside the “Time & Date” tab, all controls should be insensitive by default, except for the “Unlock to change these settings” button. Activating the button should open a Policy``Kit alert with the primary text “To change time or date settings, you need to authenticate.”. If you authenticate successfully, the lock button’s caption should change to “Lock to prevent further changes”, and all the other controls should become sensitive. Inside the “Time & Date” tab, all controls should be insensitive by default, except for the “Unlock” button and its caption “to change these settings”. Activating the button should open a Policy``Kit alert with the primary text “To change time or date settings, you need to authenticate.”. Whenever the settings are unlocked, the lock button’s caption should be “Lock”, the caption should be “to prevent further changes”, and all the other controls should be sensitive.
Line 53: Line 53:
To avoid unnecessary disruption, any interactive change to the system time should be applied only when both the “Time:” and “Date:” fields are unfocused (or when the window is closed). To minimize disruption to log files and time-sensitive applications, any interactive change to the system time should be applied only when you choose “Apply” (bug Bug:1102890). “Revert” and “Apply” should be sensitive only when the time and/or date fields have been modified.

“What time is it, Eccles?”
“Um, just a minute, I got it written down here on a piece of paper.”

The Goon Show

Ubuntu’s menu bar should, by default, feature a clock menu that optionally shows a monthly calendar, coming events from your calendar, and/or the time at other locations. You should also be able to add an event or set a timer directly from the menu. Time, date, and time zone settings, and options for clock and menu display, should be presented in System Settings.

Use cases

These use cases are not necessarily to be satisfied by the same software. But most of them are currently satisfied by the Gnome clock applet, so we should explicitly include, separate, or exclude them.

Use case

Gnome clock applet

Clock menu

Find out the time

yes

yes

Find out the date

yes

yes

Find out the weather outside

yes

- (handled by Weather Indicator)

Find out sunrise/sunset

yes

-

Change how the time/date is presented

yes

yes

Find out the time/date somewhere else

yes

yes

Find out the weather somewhere else

yes

- (handled by Weather Indicator)

Insert the current time or date into a document

yes

-

Change the time or date

yes

yes

Create an event (e.g. appointment) for a particular date or time

-

yes

See upcoming events

yes

-

Set a countdown timer

-

yes

Learn that today is Talk Like a Pirate Day

-

-

When it's __:__ here, what time will it be in ______?

-

-

Support for different calendar systems (such as Hijri, which is lunar based)

-

-

Support docking applications that dynamically create events (such as Islamic prayer time calculations)

-

-

Support for custom date/time style

yes

yes (using gsettings as shown here)

For each of these:

  • Variation: user is not sighted

Other use cases:

  • Computer learns of change of geographic location (time zone etc)

Time & Date settings

settings-time-date.png

The “Time & Date” panel of System Settings should have two tabs, “Time & Date” and “Clock”.

Inside the “Time & Date” tab, all controls should be insensitive by default, except for the “Unlock” button and its caption “to change these settings”. Activating the button should open a PolicyKit alert with the primary text “To change time or date settings, you need to authenticate.”. Whenever the settings are unlocked, the lock button’s caption should be “Lock”, the caption should be “to prevent further changes”, and all the other controls should be sensitive.

The time zone map and associated controls should be exactly the same as used in the Ubuntu installer, except that “UTC” should be offered as the first suggestion whenever you type a substring of it. If focus leaves the field without you choosing a location, a mini error icon should appear inside the trailing end of the field (with the accessible label “(Incomplete)”, and the tooltip “You need to choose a location to change the time zone.”). If the window closes when the location still is not complete, the time zone should not change.

Whenever ntpdate is not installed, “Set the time:” should be set to “Manually”, and choosing “Automatically from the Internet” should prompt you to authenticate to install ntpdate (with the prompt text “You need to install extra software to synchronize the clock with Internet servers.”).

Whenever “Set the time:” is set to “Manually”, the time and date should never be synchronized from any NTP server, but should tick forward from any time and date you manually enter.

Whenever “Set the time:” is set to “Automatically from the Internet”, the “Time:” and “Date:” controls should be insensitive, and the time and date should be kept synchronized with the local NTP server (ntpd) if there is one, or otherwise Internet NTP servers whenever you go online.

To minimize disruption to log files and time-sensitive applications, any interactive change to the system time should be applied only when you choose “Apply” (bug 1102890). “Revert” and “Apply” should be sensitive only when the time and/or date fields have been modified.

settings-clock.png

Inside the “Clock” tab, the “Show a clock in the menu bar” checkbox should be sensitive only if you have at least one Gnome panel or Unity menu bar.

The remainder of the controls in the tab should be sensitive only if you have at least one Gnome panel or Unity menu bar and “Show a clock in the menu bar” is checked.

The “Include week numbers” checkbox and the “Week begins on:” radio buttons should be sensitive only when “Monthly calendar” is checked.

The “Coming events from” menu should default to “Evolution” if it is installed, otherwise “Lightning” if it is installed, otherwise “Subscribed Calendars” (fixing bug 906051).

“Time in auto-detected location” and “Time in other locations” should be unchecked by default. The “Choose Locations…” button should be sensitive only when “Time in other locations” is checked.

Calendar subscriptions

settings-calendars.png

As a simple substitute for people who do not have a full calendar application, choosing “Subscribe/Unsubscribe…” should open a “Subscribed Calendars” window, if it is not open already, and focus it.

In the window, each subscribed calendar should have an icon representing its current state:

  • an error icon, if the last attempt to update it resulted in an error suggesting permanent failure (such as NXDOMAIN or HTTP 4xx);
  • a warning icon, if the last attempt to update it resulted in an error suggesting temporarily failure (such as HTTP 5xx);
  • a pair of spinning arrows, if it is being checked for the first time right now;
  • otherwise, a calendar icon.

The icon should be followed by the calendar’s display name (X-WR-CALNAME) if it is known to have one, otherwise its URL.

Double-clicking a calendar, or pressing Enter while it is selected, should begin editing its URL (even if the space was normally taken up by its display name). Pressing Enter should confirm it (triggering an update immediately if the URL has changed), while pressing Esc should revert the item.

Choosing “+” (which should have the accessible label “Subscribe to a Calendar…”, and the keyboard equivalent “+” whenever a calendar URL is not being edited) should scroll to, and begin editing the URL of, a new calendar item at the end of the table. Pressing Enter should confirm the addition (checking it immediately), while pressing Esc should delete the item.

“–” (which should have the accessible label “Unsubscribe”, and the keyboard equivalent “-” whenever a calendar URL is not being edited) should be sensitive only when at least one calendar item is selected. Activating it should delete the selected item(s) from the list, and select the following item if there is one, otherwise the previous one.

Choosing locations

settings-locations.png

Activating “Choose Locations…” should open the “Locations” window, if it is not open already, and focus it.

In a new user account, the pseudo-location “UTC” should be on by default (both as a hint that it is an available location, and as a useful demo), but “Time in other locations” as a whole should be off by default.

The order of locations in the menu should always match the order of locations in the window. Dragging a location (or pressing Ctrl Up or Ctrl Down while it is selected) should rearrange it in the window, with appropriate drag and drop feedback. Clicking “Sort by Name” should sort the locations alphabetically, and clicking “Sort by Time” should sort them earliest first (and then alphabetically for any with the same time). Each button should be insensitive whenever it would have no effect (for example, when there is only one location, or when the locations are already sorted in that order).

Double-clicking a location, or pressing Enter while it is selected, should begin editing its “Location” cell.

Activating the “+” button (which should have the accessible label “Add a Location…”, and the keyboard equivalent “+” whenever a location is not being edited) should scroll to, and begin editing the “Location” cell of, the incomplete location if there is one, otherwise a new row at the end of the table.

When adding or editing a location, the cell should have an auto-complete menu exactly the same as in the Ubuntu installer, except that (as with the time zone field) “UTC” should be offered as the first suggestion whenever you type a substring of it. Pressing Esc should revert or delete the row, depending on whether it was a confirmed location when editing began. At all times, one item in the menu (by default, the first item) should be highlighted; pressing Enter should select the highlighted item, or if there are currently no suggestions at all, should beep and continue editing.

If focus leaves the field of a confirmed location without a new location being chosen, it should revert to the confirmed location. As with the time zone field, if focus leaves the field of a new row without a location being chosen, a mini error icon should appear inside the trailing end of the field (with the accessible label “(Incomplete)”, and the tooltip “You need to complete this location for it to appear in the menu.”). If the window closes when the location still is not complete, the row should be discarded.

The “–” button (which should have the accessible label “Remove This Location”, and the keyboard equivalent “-” whenever a location is not being edited) should be sensitive only when a row is selected. Activating it should remove the row from the list, and select the following location if there is one, otherwise the previous location.

Presenting times

When presenting the times of upcoming events, and the times in other locations, both in the “Locations” window and in the menu itself:

  • a time today should be shown as just the time (e.g. “3:55 PM”)

  • a full-day event today should be shown as “Today”
  • a time any other day this week should be shown as the short version of the day and time (e.g. “Wed 3:55 PM”)

  • a full-day event tomorrow should be shown as “Tomorrow”
  • a full-day event another day this week should be shown as the weekday (e.g. “Friday”)

  • a time after this week should be shown as the short version of the day, date, and time (e.g. “Wed 21 Apr 3:55 PM”)

  • a full-day event after this week should be shown as the short version of the day and date (e.g. “Wed 21 Apr”).

In addition, when presenting the times of upcoming events, the time should be followed by the timezone if it is different from the one the computer is currently set to. For example, “Wed 3:55 PM UTC−5”.

The menu

clock-menu.jpg

Title

The visible title of the menu should depend on the “In the clock, show:” settings. If “Weekday” and/or “Date and month” is checked, they should be separated from the time — but not from each other — by an en space (U+2002).

The accessible label should be the same as the visible title — except that for screenreading convenience, if “Weekday” and/or “Date and month” are checked, these should be complete, not abbreviated, and the time should go first. For example, if the visible title is “Sun 15 Jul 3:45 PM”, the accessible label should be “3:45 PM Sunday 15 July”.

Date item

The date item should always be present, but it should be sensitive (and have Evolution’s icon) only when Evolution is installed. Activating the item should open Evolution Calendar to today’s date.

Monthly calendar

Whenever “Monthly calendar” is checked, the calendar should be present.

This control is specified here in the absence of a better place to describe it.

The first row should contain four interactive items: two arrows for navigating by month, and two arrows for navigating by year. Activating any of these arrow items should leave it selected and should not close the menu (so that it can be used several times quickly) (fixing bug 740821).

Future work: Make the month + year an activatable item that turns into a text field for entering month and/or year in a variety of formats.

The second row should be insensitive header items for weekdays: “Mo”, “Tu”, “We”, etc. The first day of the week should depend on the “Week starts on:” setting.

Whenever “Include week numbers” is on, the calendar should have an initial column displaying insensitive week numbers.

Normal

With events

Current day

Current day with events

Unhighlighted

27

27

27

27

Highlighted

27

27

27

27

The dates shown in the calendar should behave, and look, as normal grid-layout menu items (fixing bug 741011). Each date should be sensitive only if it is in the currently selected month and the calendar application selected (if any) in settings is installed. Activating an item should open that date in the calendar application.

If a date item is the currently highlighted menu item, it should have the normal text and background highlight colors for a menu item. If a date has at least one event, its text should be bold. And today’s date should have a thin border around it in the unhighlighted text color (fixing bug 1017595).

For fast interruptible screenreading with the most important information first, the accessible label for each date item should be the date number, followed by the unabbreviated weekday, followed by “(today)” if it is, followed by the number of events in brackets if any. For example, “27 Wednesday (today) (2 events)”.

Within the calendar grid, Left and Right should navigate to the previous and next days, even across weeks and months. Up and Down should navigate to the previous and next weeks within the current month only; beyond the current month they should exit the grid (fixing bug 676222).

When you do exit the grid, it should remember which date was highlighted last time any of them were. For example, if Friday 2nd is highlighted and you press Up (exiting the grid) then Down, or even if you close the menu then reopen it and press Down three times, Friday 2nd should be highlighted once more.

Coming events

Whenever “Coming events” is checked and the selected calendar source has events, the menu should show the next five calendar events, plus the “Add Event…” item if the calendar source is an application. An “event” in this sense is an appointment, meeting, task start date, task due date, or memo start date.

Each event should be presented as an ordinary menu item. The icon for the item should represent what kind of event it is (appointment, meeting, etc), and for calendar events the icon should be tinted depending on which calendar it comes from (Personal, Work, etc).

If the calendar source is an application, each event should be sensitive, and choosing it in the menu should open the application to edit that event. Activating “Add Event…” should open the calendar application to its interface for adding a new appointment.

Need to define exact presentation for all-day events.

Set Alarm/Timer

The “Set Alarm/Timer…” item should always be present. Activating it should open the “Set Alarm/Timer” window.

alarm-settings.png timer-settings.png

In the “Alarm” tab, whenever “Alarm:” is set to Off, all other controls should be insensitive. And to avoid going off while being set, an alarm should not be considered set until the “Time:” value has been left the same for five seconds. Whenever an alarm is set, the clock menu should begin with a bell icon, and the “Set Alarm/Timer…” menu item should end with the alarm time in brackets, for example “Set Alarm/Timer… (6:00 AM)”.

In the “Timer” tab, whenever “Count:” is set to “Up”, the time field should be “To:”. Whenever “Count:” is set to “Down”, the time field should be “From:”. The “To:” and “From:” fields should persist their last-used values separately.

In both tabs, the “Sound:” menu should consist of “None”, then a separator, then alphabetically all the system sound effects.

alarm-alert.png

When an alarm goes off, as well as that sound playing, an “Alarm” alert should appear with an alarm clock icon and primary text of the form “It’s {time}.”. Ten seconds later, this should change to “It’s past {time}.”.

When a timer completes and is not set to repeat, an equivalent “Timer” alert should appear with a stopwatch icon and primary text “The {duration} is up.”. When a timer completes and is set to repeat, a notification bubble should appear instead, with a stopwatch icon, “Timer” as its primary text, and “The {duration} is up.” as its secondary text.

Time in other locations

Whenever “Time in auto-detected location” is checked, and Ubuntu is able to guess your location, that location and its time should be next in the menu..

Whenever “Time in other locations” is checked, the times in the chosen locations should be present in the menu.

Activating any of these items should change the time zone to that location (with the authorization dialog acting as a confirmation step).

Future work

  • Provide an API for calendar applications other than Evolution.

Unresolved issues

  • Timezones:
    • Setting the timezone automatically by checking geoip.ubuntu.com. That is, connect to the Internet in Prague and your timezone is automatically changed to that location. This is already done automatically in the installer.
      • How to turn this off.
      • And how to do this if the clock is off.
    • What should happen when you select one of the alternate timezone items in the menu.
  • Reconcile with the Gnome date and time settings redesign.

  • How to present Evolution alarms. (Compare Evolution > "Edit" > "Preferences" > "Calendar & Tasks" > "Alarms" > "Alarms").

    • Maybe a bell icon next to the clock in the menu.
      • But then what if there is no clock in the menu at all? (maybe just show the bell)
  • Presentation of non-Evolution alarms.
  • API for non-Evolution alarms and events.
    • Color for tinting event icons?
      • Use the same color for a dot or something in the dates in the calendar?
  • How to show missed events.
  • Which events to show on the menu? (e.g. from which of my calendars?)
  • How to navigate back to today in the calendar.
  • Keyboard navigation for menu items (a.k.a. keyboard navigation for grid menu items in general).

TimeAndDate (last edited 2017-02-01 18:31:49 by mpt)