It is possible to achieve this feature directly by setting the “Hide Incomplete Rows“ preference in the gadget.
For details, please refer to Release Notes for 3.5.0.
Introduction
The Tissue Gadget use the issues from the primary set of issues to join up with linked issues from the secondary set of issues.
It will display blank values when there is no linked issues. This is similar to a Left Join in database terminology.
In some cases, the users may only want to display rows which have matching linked issues.
The Inner Join will skip those issues in the primary set of issues which does not have linked issues
Example
Primary Set of Issues (Epics)
KeySummary | Epic Name | Linked Issue | ||
---|---|---|---|---|
TASK-1 | To perform UAT | Subtasks-1 | ||
TASK-2 | To scan for bugs | Subtasks-2TIS-100 | TIS bug fix | CS-18 |
TIS-99 | TIS feature improvement | CS-10 | ||
TIS-98 | TIS UI improvement | CS-15 | ||
TIS-20 | TIS performance fix |
Secondary Set of Issues (Feature request to be linked to epics)
TISSUE Gadget is configured to work like a 'Left Join,' which means that all rows from Table 1 will be displayed, even if there is no matching value in Table 2.
Any missing data from the right table will show as empty values.
Key | Summary | Linked IssueStatus | ||
---|---|---|---|---|
TASKCS-2 | To scan for bugs | Subtasks-2 | TASK-3 | To deploy to production |
TASK-4 | To standby for issues | Subtasks-2 |
How the tables will look in TISSUE gadget and ScriptRunner’s Enhanced Search
18 | TypeError when the issue data does not contain issuelinks field | Pending Dev |
CS-15 | To allow multiple link types for each level | Pending Dev |
CS-10 | To unescape the title which contains special characters | Pending Dev |
How the different join looks like
Left Join (Default)
Key | Summary | Linked Issue | Status |
---|---|---|---|
TIS- | 1To perform UAT | Subtasks-1 | |
TASK-2 | To scan for bugs | Subtasks-2 | |
TASK-4 | To standby for issues | Subtasks-2 | TASK-3 | To deploy to production |
ScriptRunner’s Enhanced Search, using an 'Inner Join,' will only display rows where there is a match between the two tables. If there are no matching records, those rows will be excluded from the result, meaning rows with empty values won't be shown
Inner Join (Possible through the use of ScriptRunner’s Enhanced Search)100 | TIS bug fix | CS-18 | Pending Dev |
TIS-99 | TIS feature improvement | CS-10 | Pending Dev |
TIS-98 | TIS UI improvement | CS-15 | Pending Dev |
TIS-20 | TIS performance fix |
Inner Join
Key | Summary | Linked Issue |
---|
TASK-1
To perform UAT
Subtasks-1
TASK-2
To scan for bugs
Subtasks-2
TASK-4
To standby for issues
Subtasks-2
Status | |||
---|---|---|---|
TIS-100 | TIS bug fix | CS-18 | Pending Dev |
TIS-99 | TIS feature improvement | CS-10 | Pending Dev |
TIS-98 | TIS UI improvement | CS-15 | Pending Dev |
The row containing TIS-20 is omitted because no issues are linked to it
How to achieve Inner Join
It The trick is possible to use use the LinkedIssuesOf JQL function (from ScriptRunner Enhanced Search) on the primary set of issues.
It is possible to apply filtering to exclude issues with no matching linked issues.
There are 2 parts
1. Create a JQL filter for the primary set of issues
Head to ScriptRunner Enhanced Search from the Apps menu
Enter your JQL
Check that the issues displayed are what you expect
Save JQL as a filter
Specify the JQL to fetch the linked issues as the parameter for the linkedIssuesOf function
E.g. Fetching linked issues with the status Awaiting Dev and Link Issue Type = is related to
Code Block issueFunction in linkedIssuesOf(status in ("Awaiting Dev"), "is related to")
It should display only those issues that have links. You may also add more conditions to do filtering on the primary set of issues.
Click Save as Filter button to save the JQL as a filter to use it in TISSUE
Update the filter options as required
Tip |
---|
You can choose another meaningful name for your Filter. |
2. Use the Filter in Tissue Gadget
Use the new created filter in TISSUE by modifying using the JQL command below
Code Block |
---|
filter = <"YourCreatedFilterName"> |
You will be able to see the same results shown in Step 3 in your TISSUE Gadget
Before using Enhanced Search
After using Enhanced Search
Now, the Tissue gadget will only display issues with linked issues