Advanced Customization: Columns in Lookups and Relation Tab
Lookups in Detailed View
Targetprocess allows administrators to connect various work items of any type. This can be done in several areas within Targetprocess, including the Entity Detailed View. You can utilize the lookup icon found in the following areas:
- The Relation tab provides options for establishing either inbound or outbound relations between entities. This functionality allows users to create connections between entities, enabling the tracking of dependencies, relationships, and hierarchies.
- The Collection tab, located at the top of the Detailed View, provides a list of associated work items. For example, under the Epic entity type, there is a tab that displays linked Features.
The right column of the entity view displays nativeor custom fields that hold collections of other entities. These fields allow users to associate multiple entities with a single entity, thereby establishing relationships between them. For example, the Features for User Stories displays a list of features related to a user story along with Sprint, Release, Build, etc.
Columns in the list of related items on the Detailed View Relation tab
The Detailed View Relation tab displays a list of columns that showcase the attributes of entities associated with the primary entity, which in this case is the user story
The Targetprocess admin can customize lookup columns by:
- Adding new columns to display additional information.
- Removing unnecessary columns to declutter the view.
- Reordering columns to prioritize important information.
To customize lookup columns, admin can access the JSON configuration in the Admin Panel under Configuration > Detailed View. The current implementation allows to add, remove, and reorder columns in the lookups displayed in the following locations within the Entity Detailed View:
- Relation Tab: customize columns for relations between entities.
- Collection Tab: customize columns for collections of entities.
- Native or Custom field: customize columns for native or custom fields containing collections of entities that can be assigned to the main entity.
Key Considerations for Customizing Lookup Columns
- Entity-type specific: Lookup columns must be set up separately for each entity type.
- Relation-type specific: Lookup columns must be set up separately for inbound and outbound relations.
- Process-tied entities: If an entity is process-tied, customization must be done for each detailed view configuration (Settings >> Configuration >> Processes).
Note: Unless you customize the Detailed View, it will show these default columns in this order:
- ID
- Entity Type
- Name
- Entity State (if applicable)
- Project
- Release (if applicable)
- Team (if applicable)
These are the system default names, so they might look different in your setup if you have renamed any fields.
- Column ID: The columnID is always displayed first on the left, regardless of the setup, and cannot be removed.
Limitations
- When customizing lookup columns, consider the following guidelines to ensure a user-friendly and visually appealing experience:
- Standard screen size
- Usability
- Readability
- Aesthetics
- While there are no strict limits, it is recommended not to add more than seven columns, including the Column ID.
- Filtering in Lookups:
- Filtering in lookups is used to add filters for columns displayed in the lookup view and does not pre-filter the list of items shown by default.
- Lookups do not support filtering by Fields, Custom Fields, or their values.
- When multiple Custom Fields with the same name are defined for the same entity, those fields cannot be added as columns in Lookups or in the Relation tab.
- Relation Tab Filtering:
- In the Relation tab of Detailed View, lists of related items support filtering only by Relation type, Entity type, Portfolio, and Team.
- These filters are fixed and cannot be extended.
- Adding new columns to the lists does not enable additional filters.
Configuration Steps for Lookups (Relations tab)
This implementation allows to:
- Add new column
- Edit columns names
- Reorder the columns
- Configure entity filter
Add a new column
- In the Settings > Configuration > Detailed View, find the section that includes relations.container:
"component": {
"type": "component",
"component": "relations.container",
"properties": {
"name": "relations container"
},
"componentId": "component_0eye9w9"
}
- To extend the functionality, add the following configuration to the properties:
"inbound": {
"lookup": {
"setup": [
{
"title": "Name of the column",
"columnId": "Column ID",
"selector": "fieldName"
}
],
"layout": [
"Column ID"
]
}
}
- For outbound relations, the config should start from outbound instead of inbound. The config must be set up for each relation type separately. The layout property must be set up to specify which columns are visible and in what order. The layout property defines the order and visibility of columns in the lookup.
For example, if you want to display assignedTeam, effort, assignedUser, custom field – category, create the following layout property:
"layout": [
"assignedTeam",
"effort",
"assignedUser",
"category"
]
As a result, only the columns listed in the layout will be displayed. If you want to keep the default columns, they must be added to the layout property. The columnID should not be included:
"layout": [
"entityType",
"name",
"assignedTeam",
"effort",
"assignedUser",
"category"
]
The original set of columns (type, name, state, project, release, team) does not require any additional setup as they are displayed by default. However, they must be added to the layout property. If your goal is only to append a new column and keep the defaults, you can omit the layout property.
Edit columns names
To set up individual columns, you must edit the title property. It is responsible for how the column name will be displayed inside the lookup table and will be visible to you as the end user.Reorder the columns
The columnID property is used together with the layout array to add new columns and define their order.
"inbound": {
"lookup": {
"setup": [
{
"title": "Name of the column",
"columnId": "Column ID",
"selector": "fieldName"
}
],
"layout": [
"Column ID"
]
}
}
Configure entity filter
By default, newly added columns will not include a filter. The system can handle filtering by entity, but additional configuration is needed. To set up the filter, add a filter property with the entity property which should be the native (not a term) name of the entity. Currently, the system allows to set up only entity filters and only one filter per entity type.
"inbound": {
"lookup": {
"setup": [
{
"title": "Platform",
"columnId": "platform",
"selector": " solutiontrain.name",
"filter": {
"entity": " solutiontrain"
}
},
],
"layout": [
"platform"
]
}
},
Configuration Steps for Lookups (Native fields, custom fields)
Add a new column
In the Settings > Configuration > Detailed View, find following section:
"component": {
"type": "stack",
"components": [...]
}
Each field associated with the selected entity will be listed in “components” and will include a property in the following format:
"type": "property.{Name of the field}".
To modify a specific field, locate the corresponding component by its type. For example, to customize the field named “Feature”, identify the component with the type "property.feature".
Lookup configurations should be placed within the "properties" section. The process for adding, removing, or reordering columns for native or custom fields follows the same rules as those applied in the “relation” tab.
Configuration Steps for Lookups (Embedded lists)
This case addresses a scenario in which a predefined list is configured within the detailed view of a specific entity. For example, the Feature entity may include an associated list of Bugs.
To customize the lookup behaviour of such lists, you can add the appropriate configuration within the "properties" section of the predefined list component.
To locate it, refer to the following:
- for native entities:
"component": "layout.list", - for ExD entities:
"component": "entity.new.list"
Also, in the case of native entities, the component includes a property named "listType" which specifies the type of entities to be displayed in the list. E.g. for feature:
"component": "layout.list",
"properties": {
"listType": "bugs",
"lookup": {
"setup": [
{
"title": "Name of the column",
"columnId": "Column ID",
"selector": "fieldName"
},
],
"layout": [
" Column ID"
]
}
}
The process for adding, removing, or reordering columns for native or custom fields follows the same rules as those applied in the “relation” tab.
Customize columns on the Relations tab
The configuration is the same as for lookups. The only difference is how it should be included in the detailed view configuration. To manage columns displayed in the Relations tab’s lists, add the columns property in the inbound or outbound section. E.g. configuration will look like this:
"inbound": {
"columns": {
"setup": [
{
"columnId": "ColumnId",
"selector": "fieldName"
},
],
"layout": [
"ColumnId"
]
}
},
Note: There is no title property for each column since it’s not displayed on the list.
The default configuration contains the following columns:
- DependencyType
- ID
- EntityType
- Name
- Project
- EntityState (if applicable)
- Release
- Iteration (if applicable)
DependencyType and ID are always present on the list regardless of the configuration. The other default columns can be removed or reordered. If you decide to remove a column but want to keep the rest, all of them must be listed in the layout section:
"layout": [
"entityType",
"name",
"project",
"entityState",
"release",
"iteration"
]
Example configurations
Disclaimer: following configurations contain whitespaces and will not work if pasted directly into detailed view in current form. Please make sure all whitespaces are removed before using. Following configurations were prepared for Bug entity.- Adding a new column to lookup in relations tab that shows name of user story assigned to entity:
"inbound": {
"lookup": {
"setup": [
{
"title": "Related Story",
"columnId": "userstory",
"selector": "userstory.name"
}
]
}
}
- Adding new column in relations tab created from custom field named:
“cf_estimatedEffort”as the first column:
"inbound": {
"lookup": {
"setup": [
{
"title": "Custom field estimated effort",
"columnId": "cf_estimatedEffort",
"selector": "cf_estimatedEffort"
}
],
"layout": [
"cf_estimatedEffort",
"entitytype",
"name",
"entitystate",
"project",
"release",
"team"
]
}
}
- New columns in the list of related items on the Detailed View Relation Tab
"inbound": {
"columns": {
"setup": [
{
"columnId": "feature",
"selector": "feature.name"
}
],
"layout": [
"entityType",
"name",
"feature",
"entityState",
"project",
"release",
"team"
]
}
}
- All together (new columns in lookup and list, entity filters in lookup):
"inbound": {
"lookup": {
"setup": [
{
"title": "Platform",
"columnId": "platform",
"selector": " solutiontrain.name",
"filter": {
"entity": " solutiontrain"
},
"title": " Assigned Group",
"columnId": "group",
"selector": "agilereleasetrain.name",
"filter": {
"entity": " agilereleasetrain"
}
}
],
"layout": [
"entityType",
"name",
"platform",
"group",
"entityState",
"project",
"release",
"team"
]
},
"columns": {
"setup": [
{
"columnId": "platform",
"selector": "solutiontrain.name"
},
{
"columnId": "group",
"selector": "agilereleasetrain.name"
}
],
"layout": [
"entityType",
"name",
"project",
"entityState",
"platform",
"group"
]
}
}
- Custom columns for both inbound & outbound relations (with Custom Field and Extendable Domain entity)
"inbound": {
"columns": {
"setup": [
{
"columnId": "epicName",
"selector": "feature.epic.name",
"title": "Epic Name"
},
{
"columnId": "featureName",
"selector": "feature.name",
"title": "Feature Name"
}
],
"layout": [
"entityType",
"name",
"featureName",
"epicName",
"project"
]
}
},
"outbound": {
"columns": {
"setup": [
{
"columnId": "bugCustomField",
"selector": "bugcustomfield",
"title": "Example Custom Field"
},
{
"columnId": "extendableDomainEntity",
"selector": "bugexd.name",
"title": "Example Extendable Domain Entity Name"
}
],
"layout": [
"bugCustomField",
"extendableDomainEntity",
"entityType",
"name"
]
}
}