Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

A Calculated (scripted) Text/Html custom field type displays text calculated using a Groovy script and supports HTML formatting tags.

Adding a Calculated (scripted) Text/Html custom field type

To add a Calculated (scripted) Text/Html custom field type to your instance:

  1. Log in to JIRA as an administrator.
  2. Go to the Administration icon Image Removed and click on it.
  3. Click on Issues - > Custom fields.
  4. Click on Add custom field.
  5. Click on Advanced in the left panel.
  6. Locate Calculated (scripted) Text/Html Field and select it.
  7. Click on Next.
  8. Provide a name for the custom field.
  9. You can optionally provide a description of the custom field.
  10. Click on 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 on 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.
Panel
titleOn this page

Table of Contents

Panel
titleRelated links
Note

If you have upgraded from JMCF 1.x to 2.x please refer to the upgrade guide.

Search template

When creating a Calculated (scripted) Text/Html 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.

Configuring the Groovy formula for a Calculated (scripted) Text/Html custom field type

Note

Starting from 2.0.0 BeanShell has been replaced by Groovy in the JMCF add-on. Formulae written in BeanShell will work unchanged in Groovy except for some specific cases.

To write a formula for the Calculated (scripted) Text/Html 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.

As documented on the Expected Value tab of the Groovy help editor, the Groovy formula must return either a String with or without HMTL formatting tags or null. Note that the Groovy tester shows the HTML-rendered value of the result when tested against an issue.

Examples of Groovy formula for a Calculated (scripted) Text/Html  custom field:

A simple String:

Code Block
languagegroovy
linenumberstrue
"JMCF 2.0.0"
A String with HTML formatting tags


Excerpt

A Calculated (scripted) Text/Html custom field type displays text calculated using a Groovy script and supports HTML formatting tags.

Adding a Calculated (scripted) Text/Html custom field type

To add a Calculated (scripted) Text/Html custom field type to your instance:

  1. Log in to JIRA as an administrator.
  2. Go to the Administration icon Image Added and click on it.
  3. Click on Issues - > Custom fields.
  4. Click on Add custom field.
  5. Click on Advanced in the left panel.
  6. Locate Calculated (scripted) Text/Html Field and select it.
  7. Click on Next.
  8. Provide a name for the custom field.
  9. You can optionally provide a description of the custom field.
  10. Click on 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 on 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.


Note

If you have upgraded from JMCF 1.x to 2.x please refer to the upgrade guide.

Search template

When creating a Calculated (scripted) Text/Html 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.

Configuring the Groovy formula for a Calculated (scripted) Text/Html custom field type

Note

Starting from 2.0.0 BeanShell has been replaced by Groovy in the JMCF add-on. Formulae written in BeanShell will work unchanged in Groovy except for some specific cases.

To write a formula for the Calculated (scripted) Text/Html 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.

As documented on the Expected Value tab of the Groovy help editor, the Groovy formula must return either a String with or without HMTL formatting tags or null. Note that the Groovy tester shows the HTML-rendered value of the result when tested against an issue.

Examples of Groovy formula for a Calculated (scripted) Text/Html  custom field:

  • A simple String:

    Code Block
    languagegroovy
    linenumberstrue
    "JMCF 2.0.0"


  • A String with HTML formatting tags

    Code Block
    languagegroovy
    linenumberstrue
    "<i> The latest version of JMCF is <b>2.0.1</b> </i>"

    returns The latest version of JMCF is 2.0.1

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

    Code Block
    languagegroovy
    linenumberstrue
    issue.summary


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

    Code Block
    languagegroovy
    linenumberstrue
    issue.get("summary") + textutils.noNull(issue.get("description"))


  • A Groovy expression that includes Groovy method calls, for example, to replace a specific String using the replace() method

    Code Block
    languagegroovy
    linenumberstrue
    issue.get("description").replace('Cloud','Server')


  • A Groovy expression with a wiki markup or reference to any field of the issue that has a wiki markup (like Environment). For example, calculate and display the Environment and severity of the issue

    Code Block
    languagegroovy
    linenumberstrue
    "Impacts on Environments: " + issue.get("environment") + "\n" + "Severity of the issue: " + issue.get("Severity")

    will be displayed as Impacts on Environments: *Production* - _Stage 1_ Severity of the issue: Critical

    However, to display the issue without ignoring the wiki markup:

    • You can use the getAsHtml() method to access the field value as Html:

      Code Block
      languagegroovy
      linenumberstrue
      "
    <i>
    • Impacts 
    The
    • on 
    latest
    • Environments: 
    version
    • " 
    of JMCF is <b>2.0.1</b> </i>"

    returns The latest version of JMCF is 2.0.1

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

    Code Block
    languagegroovy
    linenumberstrue
    issue.summary
    A Groovy expression that includes Groovy operators such as the String concatenate.summary
    • environment") + 
    textutils.noNull(issue.get("description"))

    A Groovy expression that includes Groovy method calls, for example, to replace a specific String using the replace() method

    Code Block
    languagegroovy
    linenumberstrue
    • "\n" + "Severity of the issue: " + issue.get("
    description").replace('Cloud','Server')

    A Groovy expression with a wiki markup or reference to any field of the issue that has a wiki markup (like Environment). For example, calculate and display the Environment and severity of the issue

    Code Block
    languagegroovy
    linenumberstrue
    "Impacts on Environments: " + issue.get("environment") + "\n" + "Severity of the issue: " + issue.get("Severity")

    will be displayed as Impacts on Environments: *Production* - _Stage 1_ Severity of the issue: Critical

    However, to display the issue without ignoring the wiki markup:

    • You can use the getAsHtml() method to access the field value as Html:

      Code Block
      languagegroovy
      linenumberstrue
      "Impacts on Environments: " + issue.getAsHtml("environment") + "\n" + "Severity of the issue: " + issue.get("Severity")

      or create and configure a Calculated (scripted) Wiki Text type custom field to support wiki-style formatting (needs "Wiki Style Renderer" configured) with the formula:

      Code Block
      languagegroovy
      linenumberstrue
      "Impacts on Environments: " + issue.get("environment") + "\n" + "Severity of the issue: " + issue.get("Severity")

      and the field value will be displayed as:

      Panel

      Impacts on Environments: Production - Stage 1

      Severity of the issue: Critical
      Severity")

      and the field value will be displayed as:

      Panel

      Impacts on Environments: Production - Stage 1

      Severity of the issue: Critical


Customizing the display of the Calculated (scripted) Text/Html custom field type value on the issue detail view

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

To select a format for a Calculated (scripted) Text/Html 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:

Code Block
languagexml
<font color="red">
    $value
</font>

Customizing the display of the Calculated (scripted) Text/Html custom field type value on the search list view

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

To select a format for a Calculated (scripted) Text/Html 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:

Code Block
languagexml
<font color="red">
    $value
</font>

Displaying the Calculated (scripted) Text/Html custom field type on Transition and Edit screen

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

Accessing the Calculated (scripted) Text/Html 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.