At this stage, there is only re-order with drag'n drop. Reorder with "arrow-up" and "arrow-down" (like in Planning view) is not supported.
I can reorder:
- In backlog
- Inside a Program Increment
- while assigning a Feature to a Program Increment
- while moving a Feature from a Program Increment to another Program Increment
- while moving back a Feature from a Program Increment to Backlog
REST routes to be added, they will follow the same pattern than the route used in agiledashboard
The PATCH route depends on prioritization permission
We need to update the route
GET projects/{id}/program_backlog
and GET program_increment/{id}/content
to make them return ordered collections
Changing priority of an element will be done with
PATCH /projects/{id}/program_backlog
will be updated
Another new REST route will be added: PATCH program_increment/{id}/content
. It will also be called when planning features in a Program Increment and will replace the existing call to PUT artifacts/{id}
following payload will be supported :
{
"order":{
"ids":[
123
],
"direction":"before",
"compared_to":456
},
"add":[
{
"id":123
}
]
}
123 is added to PI
it is added before feature 456
Planning and un-planning of features in Program Increments
Given a Feature already planned in PI A, if I move it by planning it in PI B, the REST route will have to identify that it is planned in PI A and un-plan it from PI A before planning it in PI B.
For such un-planning cases, the following rule must be respected:
If at least one User Story linked from the Feature is already planned in an Iteration (e.g. a Sprint) in one of the Teams, then the Feature can no longer be un-planned. In such a case, the REST route must return an error explaining to the user why the Feature cannot be un-planned.
Existing code does not respect this rule and must be changed to enforce it (instead of allowing Feature un-planning and leaving some User Stories planned).
Multiple drag and drop
"Multiple drag and drop" of features, for example selecting feature 123 and 456 and 789 and dropping them in a PI or reordering them in the top backlog, is not supported. It is not requested and our current drag and drop library does not offer it natively.
The REST route technically accepts a list of feature ids to reorder or to plan in a PI in order to be future-proof. But given that "multiple drag and drop" is not supported by the frontend, the REST route will return an error code if more than one feature is given in the payload.
For example:
{"add": [{"id": 123}, {"id": 456}] }
// or
{"order": {"ids": [123, 456], "direction":"before", "compared_to": 789 } }
The two payloads above are technically correct but will be rejected with an error code in order to simplify the backend logic, given that the frontend is not capable of producing such payloads yet anyway.