-
Couldn't load subscription status.
- Fork 156
Row Dragging
Plamena Miteva edited this page May 8, 2019
·
34 revisions
| Version | User | Date | Notes |
|---|---|---|---|
| 0.1 | Stefan Ivanov | Apr 1, 2019 | Spec and design initial creation |
| 0.2 | Alexander Marinov | Apr 16, 2019 | API and Stories updated |
| 0.3 | Plamena Miteva | Apr 16, 2019 | Draft test scenarios |
| 0.4 | Alexander Marinov | Apr 22, 2019 | Adding user scenarios |
Row dragging lets users pass the data of a grid record on to another surface, which has been configured to process/render this data in a particular way.
- be able to click on a grid row and drag it in order to provide its content as an input to another piece of UI
- have a clear indication as I drag a row, whether I can drop it on the underlying area or not
- see a ghost of the dragged row while dragging
- be able to cancel the dragging by pressing the
Esckey while dragging is performed - When I drag a row that is in edit mode I want to exit edit mode and to save the changes that are made
- If I am dragging a row that is selected or has selected cell no selection-related classes should be copied to the ghost

2. The user has pressed down on the row drag icon in the beginning of the row and performed a small drag to the right
3. Upon dragging if the area below the cursor supports drop of the row the row icon will change to reflect that it is a valid operation that can be executed
- define drop areas where the dragged row can be dropped in order for its data to be passed on
- define ways and logic in which data is processed and/or rendered by the layout where a row is dropped
- be able to allow row drag to start even if the drag indicators are not visible.
- be notified when row dragging starts and ends, so that I can add custom logic.
- be able to change the drag icon for all rows (grid level).
- Row dragging works together with cell and row selection.
- Row dragging should work correctly with Column Pinning, Column Moving, Column Grouping and Filtering
IgxGridComponent
| Name | Description | Type |
|---|---|---|
rowDraggable |
Enables/Disables row dragging | boolean |
| Name | Description | Cancelable | Parameters |
|---|---|---|---|
onRowDragStart |
Emitted when row dragging starts | true | { source: IgxRowComponent, cancel: boolean } |
onRowDragEnd |
Emitted when row is dropped | false | { source: IgxRowComponent } |
ARIA support would not be available for this feature
- Grid row can be dropped to a droppable container.
- Row dragging operation is possible only when dragging the row by the drag icon.
- Grid header is not draggable.
- Pressing ESC key upon row dragging cancels the operation.
- When dragging starts a drag ghost element is spawned and moves along with the mouse cursor and is removed from the DOM after the mouse has been released.
- The 'igx-grid__tr--drag' class is applied to the dragged row upon dragging.
- The grid's horizontal scrollbar is aligned with the first non-pinned grid column.
- All row drag events are fired correctly with correct values of the event arguments.
- Row dragging operation is canceled and the onRowDragEnd event is fired if dropping a row on a non-interactive area.
- onRowDragStart event is cancelable.
- Grid column moving does not affect the dragged row data and they are dropped in the proper columns of the drop grid.
- Grid column pinning does not affect the dragged row data and they are dropped in the proper columns of the drop grid.
- User is able to drag and drop a filtered grid row.
- User is able to drag and drop a sorted grid row.
- When dragging-and-dropping a selected row, it keeps its selection state in the drag-grid and is unselected in the drop-grid.
- When dragging-and-dropping a row with selected cell/s, it keeps its selection state in the drag-grid and all its cells are unselected in the drop-grid.
- When dragging a selected row/row containing selected cell/s, the ghost element does not contain any selection-related classes
- When grouping is enabled, the user is able to drag any grid row except grid and group headers.
- When dragging-and-dropping a grouped row the correct row data are dropped to the drop container.
- When scrolling the grid horizontally, no elements of the grid UI are overlapping the drag indicators.