A Calculated Multi-select custom field type represents a collection of Options and is displayed as a String representing the option values. It is a read-only field. You will need to configure options to this field just like any Jira Standard custom field of Multi-select list/Checkboxes type. |
To add a Calculated Multi-select custom field type to your instance:
Issues - > Custom fields.
Add custom field
.Advanced
in the left panel.Calculated Multi-select Field type
and select it.Next
.Create
Configure
and create a formula (explained below) for the field.When creating a Calculated Multi-select custom field type, you can configure the Search template as Multi select searcher
for guided search, and it can be used in statistics dashboard gadgets. If you select “None” for the searcher, then you won’t see any reference to this field in the Issue Navigator search fields. Note that changing a custom field searcher requires a re-index.
To write a formula for the Calculated Multi-select custom field type;
Configure
Edit Groovy Formula
Save.
As documented on the Expected Value tab of the Groovy Editor help, the Groovy formula must return either:
Examples of Groovy formula for a Calculated Multi-select custom field type:
A Groovy expression returning a String representing the option value
"Option 1" |
A Groovy expression returning a String representing the option id
10010 |
A Groovy expression returning a String with comma separated values that represent the values of the options.
"Skype Installation,Eclipse Installation" |
A Groovy expression returning an array of strings that represent the values of the options.
["Skype Installation","Eclipse Installation"] |
A Groovy expression returning an option object
issue.get("Radio buttons field") |
A Groovy expression returning a collection of option objects
issue.get("Checkboxes field") |
A Groovy expression returning the options of two Single-select fields that contain the text "Installation"
issue.getRawValue("Single select 1").findAll{ it.getValue().contains("Installation") } + issue.getRawValue("Single select 2").findAll{ it.getValue().contains("Installation") } |
You can define a velocity template that will return the Html representation of the calculated custom field. Leave it empty to use the default template.
To write a velocity template for a Calculated Multi-select custom field type value:
Configure
Edit Velocity Template
.Save.
You can use the following Velocity variables in the template:
$value
: the raw field value, a collection of Option objects.$formattedValue
: String with comma separated values that represent the values of the returned options.For example:
<div style="border: solid"> $formattedValue </div> |
the raw value of the calculated field in a solid border.
#if( $value.size() > 1 ) <span class="aui-lozenge aui-lozenge-success">$formattedValue</span> #else <span class="aui-lozenge aui-lozenge-new">$formattedValue</span> #end |
displays the values in specific colored lozenge based on the number of options returned by the calculated field.
The Never show on Transition and Edit screens
option controls whether the calculated Multi-select custom field can appear on transition and edit screens. If you select this option, the field will not be visible on any Edit or Transition screen, even if it is added to the screen.
You can access this field using any of the following getters of the Issue interface
get("Your custom field name") or get("customfield_xxxxx")
that returns a
Collection<Option>
getAsString("Your custom field name")
or
getAsString("customfield_xxxxx")
that returns a String
with comma separated Option values.