•  
     
    story #14149 Drag and drop to move a card between swimlanes
Summary
taskboard user
Drag and drop to move a card between swimlanes
I can move a task from a story to another. It lets me split user stories easily as I can create new user stories and then move tasks to them.

Functional overview

Limits (in the first implementation, if the need arise it will be done afterward):

  • There is no multiselect of elements (cannot drag'n drop multiple tasks at once).
  • We do not support drop in collapsed swimlanes (closed stories for instance).
  • Change of swimlane (move a task between 2 stories) can only be done between 2 swimlanes of same type (cannot move a task between a story and a bug).
  • Solo items cannot become a child (a solo task cannot be moved as a child of a story).

Technical overview

Realtime update is NOT included.

This story will need to adjust the existing PATCH /taskboard_cells/{swimlane_id}/column/{column_id} REST route.
In addition to reordering cards in a cell and changing the card status (or mapped field value), it needs to detect and handle a change of swimlane.
In order to remove the artifact link from its old swimlane, a new parameter must be passed in the payload

PATCH /taskboard_cells/{swimlane_id}/column/{column_id} REST route.
{
    add: <card_id>,                    // The artifact id of the card we are dropping
    remove_from: <source_swimlane_id>, // The previous parent's artifact id. The swimlane we dragged the card from
    order: {
      direction: "before",             // "before" | "after"
      compared_to: <card_id>
    }
}

In order to know whether the current user has permission to update the Artifact link field of the swimlanes (both old and new), a new information must be added to the Trackers mappings information passed in DOM to the app:

/* The name may change */
can_update_children: true | false // Does current user have "update" permission on the "artifact links" field for this tracker

When can_update_children is false for a swimlane (parent card), current user will not be able to drop new child cards in that swimlane OR to remove any child card from that swimlane.

The frontend part of the app must prevent dropping a card to a swimlane for the following reasons:

  • User does not have permission to write the artifact link field of the new swimlane or the old swimlane. For example if I drag a task from user story A to user story B, and I do not have permission to write the artifact link, then I won't be able to drop the task anywhere in story B's swimlane.
  • I am trying to drop the card into a parent of a different type, for example I am trying to drop a Task from a User story into a Bug.
Empty
Empty
Status
Empty
Ready (stalled)
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?
Empty
Details
#14149
Joris MASSON (jmasson)
2019-11-14 10:04
2019-11-14 10:04
4007

References
Referencing story #14149