ScriptRunner - Behaviours - Add default value to description field, unless it's edited.

Raynard Rhodes June 9, 2020

I was able to add the default description. But, when a user edits the field and clicks away from it, it'll default back to the default value. Is there a way to check if the value has been changed?

 

def desc = getFieldById("description")
def currentIssueType = issueContext.issueType.name
def empty = ""
def defaultValue = """default value""".replaceAll(/ /, '')

def bugDefaultValue = """

default value2""".replaceAll(/ /, '')

if (! underlyingIssue?.description) {
if(currentIssueType == "Epic" || currentIssueType == "Story"){
desc.setFormValue(defaultValue)
}else if (currentIssueType == "Bug"){
desc.setFormValue(bugDefaultValue)
}else{return}
}

1 answer

1 vote
Payne
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 9, 2020

You may consider running your Behaviour only on a Create, and not on an edit. We use this code snippet at the top of a Behaviour for that purpose:

// We wish to run this behaviour only during a Create.
// Per https://scriptrunner.adaptavist.com/5.4.28/jira/behaviours-api-quickref.html#_getactionname :
// getActionName() "Returns the name of the current action if the issue is undergoing a workflow action, null otherwise."
// Create is a workflow action, so it will return "Create Issue" or "Create" (should check for both).
// Edit is not a workflow action, so it will return null.
if (getActionName() == null || !(getActionName() in ["Create Issue", "Create"])) {
return
}

Raynard Rhodes June 11, 2020

The issue is during the create step. Before the create button is pressed, if the user wanted to clear the default data and add their own, the default data would return upon leaving the description field.

I've decided on using a workaround. Having radio buttons that correlate with whatever default value they want. If they want to enter their own data they would simply choose none.

 

def descriptionField = getFieldById("description")
def radioSelect = getFieldByName("descriptionTest")
def radioSelectValue = radioSelect.getValue()

def text = """

DESCRIPTION DEFAULT VALUE 1""".replaceAll(/ /, '')




def textTwo = """

DESCRIPTION DEFAULT VALUE 2""".replaceAll(/ /, '')

if(radioSelectValue == "Bug Issue Type"){
descriptionField.setFormValue(textTwo)
}else if(radioSelectValue == "Other"){
descriptionField.setFormValue(text)
}else{descriptionField.setFormValue("")}
Sergo SN September 2, 2020

Hi Raynard, 

have the same issue :-(

Do you already have any solution for this challenge? 

 

Regards, Sergo

Raynard Rhodes September 2, 2020

No, I decided to use radio buttons that would have the default text. When the radio button is selected the Description field will be populated with whatever corresponds with that button. Also a clear text button if the default description isn't needed.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events