TimeAndDate

Differences between revisions 1 and 24 (spanning 23 versions)
Revision 1 as of 2010-05-14 08:59:53
Size: 2714
Editor: 217
Comment: moved from private wiki
Revision 24 as of 2011-03-14 15:28:04
Size: 12030
Editor: eth0
Comment: handle the ntp case too
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
##||<tablestyle="margin:0 auto;" style="border:none;">“What time is it Eccles?”<<BR>>“Um, just a minute, I got it written down here on a piece of paper.”||
##||<style="border:none;text-align:right;">— ''[[http://www.youtube.com/watch?v=VSSGiA4f5cs|The Goon Show]]''||
||<tablestyle="margin-left:auto;margin-right:auto;" style="border:none;">“What time is it, Eccles?”<<BR>>“Um, just a minute, I got it written down here on a piece of paper.”||
||<style="border:none;text-align:right;">— ''[[http://www.youtube.com/watch?v=VSSGiA4f5cs|The Goon Show]]''||
Line 5: Line 5:

<<TableOfContents()>>
Line 13: Line 15:
||Find out the weather outside||yes||-||
||Find out sunrise/sunset||-||-||
||Find out the weather outside||yes||- (handled by [[https://launchpad.net/weather-indicator|Weather Indicator]])||
||Find out sunrise/sunset||yes||-||
Line 17: Line 19:
||Find out the weather somewhere else||yes||-|| ||Find out the weather somewhere else||yes||- (handled by [[https://launchpad.net/weather-indicator|Weather Indicator]])||
Line 25: Line 27:
||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 [[http://paste.ubuntu.com/557423/|shown here]])||
Line 34: Line 38:
The “Clock Preferences”, “Time and Date Settings”, and “Time & Date” windows should be merged into a single “Time & Date” window.
Line 36: Line 42:
||<:style="border:none;">{{attachment:settings-time-date.jpg}}{{attachment:settings-clock.jpg}}||
||<tablestyle="clear:both;float:left;margin: 0 1em 1em 0;" style="border:none;">{{attachment:settings-time-date.png}}||

The window should have two tabs, “Time & Date” and “Clock”.

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.

The time zone map and associated controls should be exactly the same as [[https://docs.google.com/Doc?docid=0AU5sFuLRpCpBZGZra2pqY2pfMTAxZ25rcnBnNXY&hl=en#4_6_Where_are_you_timezone_735_804192865267396|used in the Ubuntu installer]].

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 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).

||<tablestyle="clear:both;"style="border:none;">||

||<tablestyle="clear:both;float:left;margin: 0 1em 1em 0;" style="border:none;">{{attachment: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 Evolution Calendar” checkbox should be sensitive only when Evolution is installed.

The “Choose Locations…” button should be sensitive only when “Time in other locations” is checked.

||<tablestyle="clear:both;"style="border:none;">||

<<Anchor(locations)>>
||<tablestyle="clear:both;float:left;margin: 0 1em 1em 0;" style="border:none;">{{attachment:settings-locations.jpg}}||

Activating “Choose Locations…” should open and focus the “Locations” window.

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 drop feedback. Clicking the “Location” header cell should sort the locations alphabetically, and clicking it again should sort them reverse-alphabetically. Clicking the “Time” header cell should sort the locations earliest first, and clicking it again should sort them latest first.

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…”) should add, scroll to, and begin editing the “Location” cell of, a new row in the table.

When adding or editing a location, the cell should have an auto-complete menu exactly the same as in the Ubuntu installer.

The “–” button (which should have the accessible label “Remove This Location”) should be sensitive only when a location is selected. Activating it should remove the location from the list, and select the following location if there is one.

== 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:
 * if it is today, just the time should be shown (''e.g.'' “3:55 PM”)
 * if it is a different day this week, the day and time should be shown (''e.g.'' “Wed 3:55 PM”)
 * if it is after this week, the day, date, and time should be shown (''e.g.'' “Wed 21 Apr 3:55 PM”).

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”.
Line 44: Line 107:
The contents of the menu should depend on the “In the clock menu, show:” settings. === Date item ===
Line 46: Line 109:
''Needs to be specified in more detail.'' The date item should always be present, but it should be sensitive (and have an icon) whenever Evolution is installed.
Line 48: Line 111:
For an upcoming event:
 * if it is today, just the time should be shown (''e.g.'' “3:55 PM”)
 * if it is later this week, the day and time should be shown (''e.g.'' “Wed 3:55 PM”)
 * if it is after this week, the day, date, and time should be shown (''e.g.'' “Wed 21 Apr 3:55 PM”).
Activating the item should open Evolution Calendar to today’s date.

=== Monthly calendar ===

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

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).

''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.''

Whenever “Include week numbers” is on, the calendar should have an initial column displaying week numbers, such that they are obviously unselectable.

All dates shown in the calendar should behave, and look, as normal grid-layout menu items. Each item should be sensitive only if Evolution is installed; activating an item should open that date in Evolution Calendar.

If a date has at least one event, it should be shown in bold. In addition, today’s date should be highlighted in a way that is not confused with either the bold of a date with events, or the highlight of a selected menu item.

=== Coming events ===

Whenever “Coming events” is checked, the menu should show the next five Evolution events, plus the “Add Event…” item. 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'').

Activating an event’s item should open Evolution to edit that event. Activating “Add Event…” should open Evolution Calendar to its interface for adding a new appointment.

''“Add Event…” should be a custom item added by Evolution.''

=== Set Alarm/Timer ===

The “Set Alarm/Timer” item should always be present. Activating it should open the “Alarms & Timers” window, with a new row auto-created.

||<tablestyle="clear:left;float:left;margin: 0 1em 1em 0;" style="border:none;">{{attachment:alarms-and-timers.jpg}}||

''TBD: Further specify the window and behavior''

=== Time in other locations ===

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

== 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 [[http://blogs.gnome.org/thos/2010/07/16/date-and-time-settings/|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).

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

The Goon Show

The Gnome clock applet should be replaced by a clock menu. Like the applet before it, the menu should optionally show a monthly calendar, coming events from your Evolution calendar, and/or the time at other locations. Unlike the applet, it should not show weather or a world map; but it should let you add an event or set a timer directly from the menu. The three windows for setting time, date, and clock options should also be consolidated into a single window.

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

The “Clock Preferences”, “Time and Date Settings”, and “Time & Date” windows should be merged into a single “Time & Date” window.

time-windows.png

settings-time-date.png

The window should have two tabs, “Time & Date” and “Clock”.

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 PolicyKit 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.

The time zone map and associated controls should be exactly the same as used in the Ubuntu installer.

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 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).

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 Evolution Calendar” checkbox should be sensitive only when Evolution is installed.

The “Choose Locations…” button should be sensitive only when “Time in other locations” is checked.

settings-locations.jpg

Activating “Choose Locations…” should open and focus the “Locations” window.

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 drop feedback. Clicking the “Location” header cell should sort the locations alphabetically, and clicking it again should sort them reverse-alphabetically. Clicking the “Time” header cell should sort the locations earliest first, and clicking it again should sort them latest first.

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…”) should add, scroll to, and begin editing the “Location” cell of, a new row in the table.

When adding or editing a location, the cell should have an auto-complete menu exactly the same as in the Ubuntu installer.

The “–” button (which should have the accessible label “Remove This Location”) should be sensitive only when a location is selected. Activating it should remove the location from the list, and select the following location if there is one.

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:

  • if it is today, just the time should be shown (e.g. “3:55 PM”)

  • if it is a different day this week, the day and time should be shown (e.g. “Wed 3:55 PM”)

  • if it is after this week, the day, date, and time should be shown (e.g. “Wed 21 Apr 3:55 PM”).

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

The title of the menu should depend on the “In the clock, show:” settings.

Date item

The date item should always be present, but it should be sensitive (and have an icon) whenever 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.

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).

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.

Whenever “Include week numbers” is on, the calendar should have an initial column displaying week numbers, such that they are obviously unselectable.

All dates shown in the calendar should behave, and look, as normal grid-layout menu items. Each item should be sensitive only if Evolution is installed; activating an item should open that date in Evolution Calendar.

If a date has at least one event, it should be shown in bold. In addition, today’s date should be highlighted in a way that is not confused with either the bold of a date with events, or the highlight of a selected menu item.

Coming events

Whenever “Coming events” is checked, the menu should show the next five Evolution events, plus the “Add Event…” item. 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).

Activating an event’s item should open Evolution to edit that event. Activating “Add Event…” should open Evolution Calendar to its interface for adding a new appointment.

“Add Event…” should be a custom item added by Evolution.

Set Alarm/Timer

The “Set Alarm/Timer” item should always be present. Activating it should open the “Alarms & Timers” window, with a new row auto-created.

TBD: Further specify the window and behavior

Time in other locations

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

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)