The global idea is to present a field as an "helper" for a given artifact link nature.
Technically speaking, everything is an artifact link but when this helper is activated, it shows links in a more user friendly manner. It's possible to add/remove those helper fields without loosing data (as artifact links are preserved).
In detail:
- Tracker admin can activate a new field (a selectbox, "select2 ui component") for a given artifact link nature and associate it to a source tracker (example: reported_id + Release tracker). There is only one tracker.
- Once the helper is added as a field for this nature, it's no longer possible to set the nature "manually" (in artifact link). Examples:
- I linked "Release 8.0" with Bug "stuff" (simple artifact link without nature). I cannot update the link and change the nature. However, I can select "Release 8.0" in "Reported in" field and, in backend, it will do the change for me
- This new select box is show in
- artifact view (view, create, update)
- Use of select2 as UI component
- angular modal (view, create, update)
- Use the same UI component than openlist
- report (search criteria, table column)
- The permissions of this new helper are inherited from ArtifactLink permissions
- REST
- The structure expose the new helper field (with the associated nature & tracker)
- The data doesn't change (it's artifact link with nature)
- There is a new route to fech the possible values for the field
- XML (like rest)
- The structure of tracker expose the the helper field
- The data doesn't change (it's artifact link with nature
Not supported stuff:
- No access by SOAP
- No CSV
- No Graphs in reports
- No aggregate in tables
- No workflow or constraints
- No rules not field dependencies