Interface Guidelines

This is a work-in-progress document!

Contents

General window layout

TODO: OK/Cancel layout; placement of default options

Choices in Tine 2.0

Users often need to select one or a number of specific entries from a list, e.g. a certain state of a tasks (in progress, completed, etc), the probability of successful leads in CRM or a person from the addressbook. Furthermore filters and favorites make heavy use of pre-defined fields so that users can search for a specific subset of the displayed data.

In general we distinguish between a forced choice and a relaxed choice:

  • Forced choices are used in fields that require user input -- if these are not made, the entry cannot be saved and an error will be shown. Examples are "Last names" in the addressbook since they are required by the underlying vCard-standard (see http://en.wikipedia.org/wiki/VCard). Sometimes a default value is possible.
  • Relaxed choices do not contain required information and users are free to enter this information. Default values are usually not possible or required.

Furthermore there is a difference between 1-of-N and X-of-N choices:

  • 1-of-N choices allow users to choose _only one_ entity from a potential list. Default values are sometimes possible.
  • X-of-N choices allow users to choose _more than one_ entity from a potential list. Default values are not possible.

TODO: depending on amount of choices (< or > 7 or unlimited?)

TODO: use a history if amount > 7

The following describes a number of standard widgets used for pre-defined fields in Tine 2.0

Numeric Fields

Numeric fields in Tine 2.0 use a Spinner widget: http://dev.sencha.com/deploy/dev/examples/spinner/spinner.html

Numeric fields should be distinguished by the required values boundaries':

  • no boundary, e.g. financial values
  • 1 boundary, e.g. expected turnaround in CRM (this should not be negative)
  • 2 boundaries, e.g. percentage and probabilities are expressed in 0 - 100 %

TODO: use color?

  • circular, e.g. time that revolves around the clock

The step size (using the up/down arrows) of numeric values should depend on the expected range.

  • Percentage values use an increment of +/- 10
  • Financial values should be configurable, e.g. if the expected turnaround in a company is usually quite large, administrators should be able to increase the step size from 100 to 1000

Date and time of day

Dates and time of day are only entered as 1-of-N choices.

We distinguish between

  • Simple Dates, e.g. "November, 23rd 1980"
    • use the calendar widget
  • Calendar week, e.g. "Week 52" --> discussion "without year"!?
    • Numeric Fields, circular boundary, but we might need a calendar widget too!
  • Periods, e.g. "This week", "Last year", etc.
    • this is actually some kind of status
  • Time of day, e.g. "12:34"
    • similar to Numeric Fields, circular boundary, steps use 30min intervals

Tags

Tags are always entered as an X-of-N choice.

The widget must support adding new tags.

TODO: distinguish between personal and system wide tags

Status

1-of-N choice and X-of-N choice!

TODO: use color, use icons (e.g. calendar!)

specifying save-to-place

1-of-N choice.

TODO: similar to adding people!

Adding people/groups/user-groups

Usually an X-of-N choice.


Interface Behaviour

Main grid refresh behavior

- only refresh if user clicks folder/refresh button - leave records in view if they were changed by user but no longer match the filter - 'background'-refresh: add/remove/update messages but no full refresh of everything

also see http://www.tine20.org/bugtracker/view.php?id=3462