Skip to content
This repository has been archived by the owner on Mar 11, 2021. It is now read-only.

Add Work Item Association by Id [13] [13] [13] [5] #307

Closed
14 of 21 tasks
michaelkleinhenz opened this issue Sep 28, 2016 · 15 comments
Closed
14 of 21 tasks

Add Work Item Association by Id [13] [13] [13] [5] #307

michaelkleinhenz opened this issue Sep 28, 2016 · 15 comments

Comments

@michaelkleinhenz
Copy link
Collaborator

michaelkleinhenz commented Sep 28, 2016

Reference: 1608E102/1608E063

Description

As a user, I want to associate other work items in the system with a work item on the work item detail view.

Functional Acceptance Criteria

    • The user can add other work items by entering
      • the Id
      • or the URL of the other work item.
    • The associated work item entry list is instantly updated with the new association.
    • Entering an unknown or illegal value displays an error message.
    • It is not possible to associate work items to themselves. (Todd, Max and I discussed that we implement a "network" topology first and that doesn't have these restrictions.)
    • The created association is shown on both sides (source and target) of the association.
    • UX implementation as defined by the UX team (Workflow, Wireframe).

Non-functional Acceptance Criteria

None.

Dependencies

  1. Userstory Display Work Item Associations in Detail View [20] [15] [15] [8] #306
  2. Userstory Display and Update Work Item Details [20] [20] #298

Tasks

@ldimaggi
Copy link

Just to confirm, is the user able to enter link multiple internal work items to a work item? Will any problems result if a user cross links two work items to each other? Or if they inadvertently link a work item to itself?

@michaelkleinhenz
Copy link
Collaborator Author

@ldimaggi updated the story :-)

@michaelkleinhenz
Copy link
Collaborator Author

Note: the crosslinking could require a big effort or a breaking up of this story.

@tsmaeder
Copy link
Contributor

To clarify: the item links are not classified by their meaning ("blocks", "related to", "duplicate", etc.)?

@michaelkleinhenz michaelkleinhenz changed the title Add Internal Work Item Association by Id Add Work Item Association by Id Sep 29, 2016
@baijum
Copy link
Contributor

baijum commented Sep 29, 2016

Do we need UX readily available to commence this work? Especially I am in interested in the REST API part.

@aslakknutsen
Copy link
Contributor

@baijum I would say yes. We all can kinda imagine how this might look on a technical level, but until UX has done their magic and we've done an iteration with them to verify it's technically possible, then let's retain from going deep into any given technical solution. We don't want to limit what the UX can do because we implemented 'something' already. Or redo what we've done because it doesn't match UX.

@baijum
Copy link
Contributor

baijum commented Sep 29, 2016

Ok, I will watch this: fabric8-ui/fabric8-planner#69

@Mgranfie
Copy link

Mgranfie commented Sep 29, 2016

@michaelkleinhenz I am not following how #307 + #308 are different and fabric8-ui/fabric8-planner#69...

@baijum
Copy link
Contributor

baijum commented Sep 29, 2016

UX is here: fabric8-ui/fabric8-ux#3

@aslakknutsen
Copy link
Contributor

@Mgranfie fabric8-ui/fabric8-planner#69 is the old system, #308 is currently in unknown draft state, see #308 (comment)

@michaelkleinhenz michaelkleinhenz changed the title Add Work Item Association by Id Add Work Item Association by Id [13] Sep 29, 2016
@michaelkleinhenz michaelkleinhenz modified the milestones: Backlog, Sprint #121 Sep 29, 2016
@michaelkleinhenz michaelkleinhenz self-assigned this Sep 29, 2016
@Mgranfie
Copy link

Mgranfie commented Sep 29, 2016

@michaelkleinhenz I am creating a story for this in the UX teams JIRA. Would you say that this accurately captures the request?

As a user of the ALM tool, I should be able to establish a relationship to another work item, via a URL.

I want to clarify that we are not including any qualifiers for the links. For example: "is dependent on", "is related to", "is blocked by", or are these included? Please let me know if these are part of the requirements.

@kwk
Copy link
Collaborator

kwk commented Oct 4, 2016

I want to clarify that we are not including any qualifiers for the links. For example: "is dependent on", "is related to", "is blocked by", or are these included? Please let me know if these are part of the requirements.

@michaelkleinhenz @Mgranfie Given @aslakknutsen 's comment I think, that types are included in the links.

@michaelkleinhenz
Copy link
Collaborator Author

michaelkleinhenz commented Oct 6, 2016

@kwk @Mgranfie @aslakknutsen on the qualifiers for links: I would suggest not changing the story that's in progress on the sprint with a new feature that might have a big impact. So for now, the story only requires links with a default qualifier. If the team can achieve more, that's fine but I would not inject a new "must have" requirement with unknown impact into a running sprint. Everything else is the decision of the implementing team.
And for the UX, I would create the UX with the qualifiers in place and the implementation can just display a default qualifier/single item dropdown there for now.

@aslakknutsen
Copy link
Contributor

@michaelkleinhenz #306 States they should be viewed as a list of ID, Title and Type. And the UX for this also show a Type both on view and Add.

@Mgranfie
Copy link

Mgranfie commented Oct 6, 2016

Hi Michael,

I agree that scaling back is a good thing. How the design adjusts back to
this, want to make sure I am following.

Can you tell me what is meant by "links with a default qualifier"? This way
I can comment on the story to recommend where to pull back to achieve the
sprint goal.

Thanks,
Monica

On Thu, Oct 6, 2016 at 6:15 AM, Aslak Knutsen notifications@github.com
wrote:

@michaelkleinhenz https://github.com/michaelkleinhenz #306
#306 States they should
be viewed as a list of ID, Title and Type. And the UX for this also show a
Type both on view and Add.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#307 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARTwq_sT6qcLqY-kzFIzy_60SYLqmPR8ks5qxMovgaJpZM4KIxeq
.

@michaelkleinhenz michaelkleinhenz changed the title Add Work Item Association by Id [13] Add Work Item Association by Id [13] [13] Oct 18, 2016
aslakknutsen pushed a commit that referenced this issue Nov 8, 2016
Why:
Allow users to search using keywords, by passing id:ID_VALUE and URL.

What:
Currently, only WorkItem linking is the target for the search.

* Support search by ID.

* Support search by Free Text.

* Support search by URL.
When a token in the search string is found to be a URL, it is mapped with existing
URL patterns in the system [only WI as of now].
input URL is matched and parsed against compiled regex.
ID is taken out from URL and postfixed with :* to make startswith()

Usage:
./bin/alm-cli show search --q "Test WI" -H localhost:8080 --pp
./bin/alm-cli show search --q "id:1001" -H localhost:8080 --pp
./bin/alm-cli show search --q "http%3A%2F%2Fdemo.almighty.io%2Fdetail%2F3" -H localhost:8080
./bin/alm-cli show search --q "demo.almighty.io%2Fdetail%2F3" -H localhost:8080

Fixes #330
Fixes #380
Fixes #381
Fixes #382
Fixes #383
Related #307
@michaelkleinhenz michaelkleinhenz changed the title Add Work Item Association by Id [13] [13] Add Work Item Association by Id [13] [13] [13] Nov 8, 2016
@michaelkleinhenz michaelkleinhenz modified the milestones: Backlog, Sprint #123 Nov 29, 2016
@michaelkleinhenz michaelkleinhenz changed the title Add Work Item Association by Id [13] [13] [13] Add Work Item Association by Id [13] [13] [13] [5] Nov 29, 2016
@michaelkleinhenz michaelkleinhenz modified the milestones: Sprint #124, Backlog Nov 29, 2016
kwk added a commit to kwk/fabric8-wit that referenced this issue Dec 8, 2016
This change will introduce the endpoint `/api/workitems/:ID/relationships/links` for work item links that lives under the work item endpoint and automatically filters work item links associated with the work item on the backend. You can also use this endpoint as you would use the `/api/workitemlinks/` endpoint.

Also, this change will introduce the `included` top-level JSONAPI element for responses of `/api/workitemlinks/` that return work item links or arrays of work item links. Currently this `included` element will contain only objects of type work item link type.

Currently the UI has to do the filtering of links on a particular work item. This should be no longer needed.

== Checks

In the WorkItemRelationshipsLinksController we perform the following
checks for the listed actions.

===  Create action
* We check that the current work item (:id) does exist.
* Check that the source ID of the link is the same as the current work
  item ID (:id).
* If no source is specified we pre-fill the source field of the payload
  with the current work item ID from the URL. This is for convenience.

=== Delete action
* We check that the work item (:linkid) does exist.
* Check that the source ID of the link to be deleted is the same as the
  current work item ID (:id).

=== List action
* No checks are done

=== Show action
* We check that the work item (:linkid) does exist.
* Check that the source ID or target ID of the link to be shown is the
  same as the current work item ID (:id).

=== Update action
* We check that the work item (:linkid) does exist.
* Check that the source ID of the link to be updated is the same as the
  current work item ID (:id).
* Check that the source ID of the update payload is the same as the
  current work item ID (:id).

See also fabric8-services#307
aslakknutsen pushed a commit that referenced this issue Dec 9, 2016
This change will introduce the endpoint `/api/workitems/:ID/relationships/links` for work item links that lives under the work item endpoint and automatically filters work item links associated with the work item on the backend. You can also use this endpoint as you would use the `/api/workitemlinks/` endpoint.

Also, this change will introduce the `included` top-level JSONAPI element for responses of `/api/workitemlinks/` that return work item links or arrays of work item links. Currently this `included` element will contain only objects of type work item link type.

Currently the UI has to do the filtering of links on a particular work item. This should be no longer needed.

== Checks

In the WorkItemRelationshipsLinksController we perform the following
checks for the listed actions.

===  Create action
* We check that the current work item (:id) does exist.
* Check that the source ID of the link is the same as the current work
  item ID (:id).
* If no source is specified we pre-fill the source field of the payload
  with the current work item ID from the URL. This is for convenience.

=== Delete action
* We check that the work item (:linkid) does exist.
* Check that the source ID of the link to be deleted is the same as the
  current work item ID (:id).

=== List action
* No checks are done

=== Show action
* We check that the work item (:linkid) does exist.
* Check that the source ID or target ID of the link to be shown is the
  same as the current work item ID (:id).

=== Update action
* We check that the work item (:linkid) does exist.
* Check that the source ID of the link to be updated is the same as the
  current work item ID (:id).
* Check that the source ID of the update payload is the same as the
  current work item ID (:id).

Related to #307
@joshuawilson joshuawilson modified the milestones: Sprint #125, Backlog Jul 3, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

9 participants