Functional Overview
It's two new post actions that are available either in Simple of Advanced mode.
The goal is to set up a Kanban like "Backlog" -> "Under discussion" -> "Ready" -> "On going" -> "Delivered" but to have the story the pops up in the Scrum backlog only when the status "Ready" is reached.
Behavior of the "add to backlog" post-action:
- It can only be set on artifacts that can be in Backlog
- When a tracker has this kind of post-action it cannot be removed from the "Backlog" configuration in Agile Dashboard.
- The error/warning message on Agile Dashboard config must be explicit enough so project admin knows what they have to modify if they need to.
- It works in "best-effort" mode, if the element cannot be added to the top backlog there is feedback to the user (in artifact view) to inform that the "add to top backlog" failed but the transition is made anyway.
- For instance: if the artifact was already manually planned into a Milestone
- To be defined: do we have the possibility to display this feedback in the kanban view?
- If the element is already in top backlog (manually added) the post-action silently succeed
In addition, the behavior of adding a post-action is updated. There isn't a "random" action preselected anymore, the user has to choose the type of post action. And we cannot change the type of a post action after it is created, it must be deleted first. In short:
- transform [Add action] button to a dropdown with all types
- transform the type selectbox on a created action to a pane title
Technical overview
It's the first post-action provided by another plugin than Tracker.
Tracker workflow code must dispatch events to get multiple objects implementing interfaces. For instance: Transition_PostActionFactory will dispatch an event to get a new "SubFactory" that will handle the retrieval of the post action (GET REST route), the execution (Artifact new changeset) and the XML import.
We also need to dispatch events for the PUT post action REST route (to create / delete the new post actions).
For the XML import, we don't have an easy mechanism to let another plugin extend the RNG validation schema, so for this case the new post action validation schema will be in Tracker (not in Agiledashboard).
For the Vue app, we need a mechanism to import Vue components from a different plugin. Here we will need to import Vue components for the new post actions from AgileDashboard to Tracker plugin. Such a mechanism has been spiked.