NEW IN JMCF 2.0.0
A Calculated Duration custom field type returning a duration string or a number in Long format representing the duration in number of seconds. It is a read-only field that returns the result of the evaluation of a formula.
Adding a Calculated Duration custom field type
To add a Calculated Duration custom field type to your instance:
- Log in to JIRA as an administrator.
- Go to the Administration icon and click on it.
- Click on
Issues - > Custom fields.
- Click on
Add custom field
. - Click on
Advanced
in the left panel. - Locate
Calculated Duration Field type
and select it. - Click on
Next
. - Provide a name for the custom field.
- You can optionally provide a description for the custom field.
- Click on
Create.
- Associate the custom field to the appropriate screens.
- Locate the custom field in the Custom fields administration page and click on the cog wheel.
- Click on
Configure
and create a formula (explained below) for the field. - You can create multiple contexts if you need to associate different formulas with particular projects or issue types.
- Perform a re-index as prompted by JIRA.
Search template
When creating a Calculated Duration custom field type, you can configure the Search template as Duration searcher (using Time Tracking settings)
or Number range searcher
to be able to search for issues within a range of values for that custom field. 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.
Configuring the Groovy formula for a Calculated Duration custom field type
To write a formula for the Calculated Duration custom field type;
- Locate the custom field on the Custom Fields administration page.
- Click on the cog wheel and click on
Configure
- Click on
Edit Groovy Formula
- In the editor write a Groovy script that returns a String representing a duration or a number in Long format representing the number of seconds. Also, you can test you written script against any issue using the Groovy script tester.
- Click on
Save.
See the Expected Value tab of the Groovy help editor for examples on the values expected by this field.
A Groovy expression returning the Original estimate of the issue:
issue.get("originalestimate")
A Groovy expression adding a week time to the Time Spent on the issue
if(issue.timespent){ return issue.timespent + 144000 } else{ return null }
A Groovy expression to calculate the duration between the issue creation and issue due date in time tracking format (selecting the
Duration format
asDuration (Time tracking Format)
displays the number of seconds returned by the Groovy expression in Time Tracking Format).if(issue.duedate){ return (issue.duedate - issue.created)*24*60*60 } else{ return null }
Customizing the formatting of the Calculated Duration custom field type value
By default, the Calculated Duration custom field type value is displayed in Duration format. However, you can customize it.
To select a format for a Calculated Duration custom field type value;
- Locate the custom field on the Custom Fields administration page.
- Click on the cog wheel and click on
Configure.
- Select a format from the
Duration format
drop-down. - Click on
Save.
The available formats are:
Duration: The calculated field duration is displayed in the general duration format, where a day has 24 hours. For example, 144000
seconds is displayed as 1day, 16hours
Duration (Time Tracking Format): The calculated field duration is displayed as configured in Jira settings. For example, 144000
seconds is displayed as 1w
Number of seconds: The calculated field duration is displayed as a number in Long format representing the number of seconds.
Customizing the display of the Calculated Duration custom field type value
You can now define a velocity template that will return the Html representation of the calculated custom field. Leave it empty to use the default template.
To select a format for a Calculated Duration custom field type value;
- Locate the custom field on the Custom Fields administration page.
- Click on the cog wheel and click on
Configure
- Click on
Edit Velocity Template
. - Input the template.
- Click on
Save.
You can use the following Velocity variables in the template:
$value
: the raw field value, such as the number of seconds for this field$formattedValue
: the field value formatted according to the field configuration- and other variables described on this page
For example:
<div style="border: dashed"> $formattedValue </div>
displays the formatted value of the field with a dashed border.
<div style="border: dashed"> $formattedValue </div>