To add a Calculated Duration custom field type to your instance:
Issues - > Custom fields.
Add custom field
.Advanced
in the left panel.Calculated Duration Field type
and select it.Next
.Create.
Configure
and create a formula (explained below) for the field.When creating a Calculated Duration custom field type, you can configure the Search template as
Using these searchers you will be able to search for issues within a range of values for that custom field. The default search template is Duration searcher (24x7 durations). If you select “None”, 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.
Duration searcher (24x7 durations) and Time Tracking Duration searcher are custom statistics compatible searchers provided by JMCF that allow Duration type custom fields of JMCF to be used in the statistics gadgets. See here for more information.
To write a formula for the Calculated Duration 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:
3600
)"1w 3d 5h"
)Examples of Groovy formula for a Calculated Duration custom field:
A Groovy expression returning a number in a Long format representing a number of seconds:
144000L |
A Groovy expression returning a duration String
"3w 2d" |
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 that returns the duration from issue creation to now. The difference between two date objects returns the number of days and hence you need to convert it into seconds since the calculated field expects a number of seconds
return (new Date() - issue.created)*24*60*60 |
For a Calculated Duration field, the Search Template also determines how durations are displayed, and how duration strings returned by the formula are parsed. By default, the search template is Duration searcher (24x7 durations). However, you can customize it by changing the Search template. When you select the template,
144000
seconds is displayed as 1day, 16hours
.144000
seconds is displayed as 1w.You can also 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 Duration 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 Long value representing a number of seconds$formattedValue
: the field value formatted according to the field configuration aboveFor example:
<div style="border: dashed"> $formattedValue </div> |
displays the formatted value of the field with a dashed border.
#if( $value > 2 ) <font color= "red"> <b> Delayed by $formattedValue </b> </font> #else <font color= "blue"> Delayed by $formattedValue </font> #end |
The Never show on Transition and Edit screens
option controls whether the calculated Duration 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 number in a Double format.
getAsString("Your custom field name")
or
getAsString("customfield_xxxxx")
that returns a String
representing the duration in number of seconds