Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 13 Next »

Lead:  Liav Nadler  ONGOING

Description

A spreadsheet table is a type of data table where users can add and edit numeric data on a grid

Usage & Behaviour

Structure

  • The table contains a grid of rows and columns

  • The table may contain:

    • Header row

    • Header column (on the left)

    • Total row (at the bottom)

  • If the table is higher than its container, a scroll bar will appear. The scroll bar will not affect the header and title rows, if exists

States

  • A cell can be in one of these states:

State

Example

Comments

Normal (Enabled)

Mouseover

Selected

Selected + In Focus

Only one cell can be in focus at any time. By default, the top-left cell is in focus

Disabled

No Data

Error

See Field Validation

Interaction

  • Clicking a cell:

    • Sets the focus to the cell

    • Selects the cell

    • Deselects all other cells

    • If the cell contains text - selects the text, allowing the user to edit it

  • Double clicking a cell is similar to clicking a cell, but if the cell has text in it, it will place the insertion point in the cursor’s location. Currently they are same

  • Hitting the Enter / Tab key:

    • Saves the text in the cell (if exists)

    • Sets the focus to the cell below / to the right of the current cell respectably, while skipping disabled cells. Currently Enter deselects the cell but keeps the focus

    • If the new cell contains text - selects the text

    • If the new cell does not contain text - showing the insertion point, allowing the user to enter text

  • Selecting multiple cells can be done in one of two ways:

    • Dragging the cursor over a group of cell. In this case the first selected cell gets the focus - currently ExtJS only marks the cell

    • Clicking cells while holding the Ctrl / Cmd key. In this case the last selected cell gets the focus - currently does not work in ExtJS

    • Shift to select group of cells - currently does not work in ExtJS

  • A cell in focus or a group of cells that were selected by dragging will show a special handle at the bottom-right corner of the cell / the selected area (see image) - in ExtJS works only on a single cell

    • Mouseover the handle will switch the cursor to a cross

    • Dragging the handle will copy the content of the cell to the target cells

  • The user can cut, copy and paste cell content using Ctrl / Cmd + X, C and V respectably

Edge Cases

  • Edge cases may include:

    • Typing long text in a cell

    • Typing invalid data in a cell

    • Deleting mandatory cells

    • Server error when trying to save cell content

  • For more information please refer to the Field Validation page

Best Practices

  • Use a spreadsheet table When it supports another set of data, for example, a graph

Accessibility compliance

<<In general each component should be A11y complied,  please follow the 3 guidelines linked below. At the very least we should document that each component is in compliance with each of the 3>>

Focus management

<<How will the component work with keyboard only - without a mouse. Can be reference if written above

We already set a general guidelines described in /wiki/spaces/UX/pages/308969693 >>

Screen reader support 

 <<Make sure the components support screen reader for content or behaviour where needed - see /wiki/spaces/UX/pages/308248620 >>

Contrast & size compliance

<<Visual designers must comply with the minimal of /wiki/spaces/UX/pages/301498483 for each component>>

Keyboard Operation

<<Explore and describe conventions>>

Design

Zeplin link

Screen thumbnail

<<Zeplin Link>>

<<Screen with 200 width>>



Code

<<a box containing the code - discuss with Femi>>

  • No labels