Our new Appfire Documentation Space is now live!

Take a look here! If you have any questions please email support@appfire.com

Calculated (scripted) Wiki Text custom field type

A Calculated Wiki Text custom field displays text calculated using a Groovy script and optionally supporting wiki-style formatting (like the Description field).

Add a Calculated (scripted) Wiki Text custom field type

To add a Calculated (Scripted) Wiki Text custom field type to your instance:

  1. Log in to JIRA as an administrator.
  2. Go to the Administration icon  and click on it.
  3. Click Issues - > Custom fields.
  4. Click Add custom field.
  5. Click Advanced in the left panel.
  6. Locate Calculated (scripted) Wiki Text Field and select it.
  7. Click Next.
  8. Provide a name for the custom field.
  9. You can optionally provide a description of the custom field.
  10. Click Create.
  11. Associate the custom field to the appropriate screens.
  12. Locate the custom field in the Custom fields administration page and click on the cog wheel.
  13. Click Configure and create a formula (explained below) for the field
  14. You can create multiple contexts if you need to associate different formulas with particular projects or issue types.
  15. Perform a re-index as prompted by JIRA.

Disable field collapsing

The Disable Value Collapse option controls whether the Calculated (scripted) Wiki Text custom field type can be collapsed on the issue view screen or not. If this option is selected, the collapse toggle is removed on the issue view screen, and the user cannot collapse the custom field value.

The collapse toggle is visible for the custom field value on the issue view screen only for texts exceeding 128 characters. It is not visible for texts with less than or equal to 128 characters, irrespective of the Disable Value Collapse configuration.

Search template

When creating a Calculated (scripted) Wiki Text custom field type, you can configure the Search template as 

  • Free text searcher Search for values using a free text search.
  • Exact text searcher (Statistics-compatible) - Allow searching for text using an exact text match. Supports Statistics Gadgets.

Using these searchers you will be able to search issues either with a free text or the exact text for that custom field value. The default search template is Exact text searcher (Statistics-compatible) 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

Exact text searcher (Statistics-compatible) is a custom statistics compatible searcher provided by JMCF that allows Text type custom fields of Jira and JMCF to be used in statistics 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.

Configure the Groovy formula for a Calculated (scripted) Wiki Text custom field type

To write a formula for the Calculated (scripted) Wiki Text custom field type;

  1. Locate the custom field on the Custom Fields administration page.
  2. Click on the cog wheel and click on Configure.
  3. Click on Edit Groovy Formula.
  4. In the editor write a Groovy script that returns a String representing a single/multi-line text. Also, you can test your script against any issue using the Groovy script tester.
  5. Click on Save.

Upon saving the formula, the fields' renderer is automatically changed to "Wiki Style Renderer".

As documented on the Expected Value tab of the Groovy help editor, the Groovy formula must return either a simple String with/without wiki markup or null

Examples of Groovy formula for a Calculated Wiki Text custom field:

  1. A simple String:

    "JMCF 2.0.1"

    is displayed as JMCF 2.0.1 on the issue

  2. A Groovy expression to reference any field of the issue that returns a String, for example, the Summary of the issue.

    issue.summary
  3. A Groovy expression with wiki markup as

    "The issue *" + issue.key + "* has been raised with _" + issue.priority.name + "_ priority.  Please look into asap."

    will be displayed as: The issue *TEST-1* has been raised with _Medium_ priority. Please look into asap.

    If the field is configured to be Wiki rendered, the field value will be displayed as:

    The issue TEST-1 has been raised with Medium priority. Please look into asap.

  4. A Groovy expression that includes Groovy operators such as the String concatenate:

    issue.get("summary") + textutils.noNull(issue.get("description"))

    will be displayed as:

    Backend Testing# *API* testing # _DB_ testing

    If the field is configured to be Wiki rendered, the field value will be displayed as:

    Backend Testing

    1. API testing
    2. DB testing
  5. A Groovy expression that includes Groovy method calls, for example, to replace a specific String using the replace() method

    issue.get("description").replace('Cloud','Server')

Configure a renderer for a Calculated (scripted) Wiki Text custom field type

By default, the Calculated (scripted) Wiki Text custom type field has the "Default Text Renderer" that renders a field's content as plain text. For example, as shown above in examples 3 and 4, with the Default Text Renderer, the text is not converted to HTML content. To display wiki-style formatting you need to update the Active Renderer field to Wiki Style Renderer in the field configuration of the custom field.

With Wiki style rendered enabled the custom field value in

  • example 3, "The issue *TEST-1* has been raised with _Medium_priority. Please look into asap." will be displayed as:

    The issue TEST-1 has been raised with Medium priority. Please look into asap.

  • example 4, "Backend Testing# *API* testing # _DB_ testing" will be displayed as:

    Backend Testing

    1. API testing
    2. DB testing

Customize the display of the Calculated (scripted) Wiki Text custom field type value on the issue detail view

You can define a velocity template that will return the Html representation, in addition to the wiki markup provided in the custom field value of the calculated custom field on the issue detail view. Leave it empty to use the default template. 

To select a format for a Calculated (scripted) Wiki Text custom field type value;

  1. Locate the custom field on the Custom Fields administration page.
  2. Click on the cog wheel and click on Configure
  3. Click on Edit Velocity Template.
  4. Input the template.
  5. Click on Save.

You can use the following Velocity variables in the template:

  • $value: the raw field value a String
  • $formattedValue: a String
  • and other variables described on this page

For example:

<font color="red">
    $value
</font>

Customize the display of the Calculated (scripted) Wiki Text custom field type value on the search list view

You can define a velocity template that will return the Html representation, in addition to the wiki markup provided in the custom field value of the calculated custom field on the search list view. Leave it empty to use the default template. 

To select a format for a Calculated (scripted) Wiki Text custom field type value;

  1. Locate the custom field on the Custom Fields administration page.
  2. Click on the cog wheel and click on Configure
  3. Click on Edit List View Velocity Template.
  4. Input the template.
  5. Click on Save.

You can use the following Velocity variables in the template:

  • $value: the raw field value a String
  • $formattedValue: a String
  • and other variables described on this page

For example:

<font color="red">
    $value
</font>

Display the Calculated (scripted) Wiki Text custom field type on Transition and Edit screen

The Never show on Transition and Edit screens option controls whether the Calculated (scripted) Wiki Text 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.

Access the Calculated (scripted) Wiki Text custom field from other Groovy scripts

You can access this field using any of the following getters of the Issue interface get("Your custom field name") or get("customfield_xxxxx") or getAsString("Your custom field name") or getAsString("customfield_xxxxx") that returns a String.