Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Behavior script, value defaults to None in Edit Issue screen which is not as expected

Vidhya Mohan
Contributor
March 7, 2021

In the code below, everything is working fine except the last option. 

In the last option the in spite of the value I choose from dropdown, it defaults to 'None' on the Edit Issue screen.

Please help to figure out why

 

import groovy.transform.BaseScript
import com.onresolve.jira.groovy.user.FieldBehaviours

import com.onresolve.jira.groovy.user.FormField

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.customfields.option.Option
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Calendar


// @BaseScript FieldBehaviours fieldBehaviours
class E2ETFieldBehaviors extends FieldBehaviours {


FormField getTestStageCf() {
getFieldById("customfield_18904")
}


FormField getReleaseDateCf() {
getFieldById("customfield_21901")
}


void checkReleaseDate() {
if (!isBug()) {
return
}
def releaseDateCf = getReleaseDateCf()
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd")
Date releaseDate = formatter.parse(releaseDateCf.getValue() as String)

def currentDate = new Date()
def cal = Calendar.getInstance()
cal.setTime(releaseDate)
cal.add(Calendar.DATE, -2)
def releaseDateMinus2 = cal.getTime()

def cal1 = Calendar.getInstance()
cal1.setTime(releaseDate)
cal1.add(Calendar.DATE, 30)
def releaseDatePlus30 = cal1.getTime()

// ***** Setting up control on service field dropodown control ******
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def testStageCf = getTestStageCf()
def customField = customFieldManager.getCustomFieldObject(testStageCf.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)

final normal = options.collectEntries { [(it.optionId.toString()): it.value] }

final before2 = options.findAll { it.value in ['0-ReqReview', '1-UNIT', '10-PRE-INT',
'2-SYST','3-INT','4-UAT','6-LUT','8-TRN',
'9-CAT']
} .collectEntries { [(it.optionId.toString()): it.value] }
final after30 = options.findAll { it.value in ['5-Warranty','7-PROD'] }
.collectEntries { [(it.optionId.toString()): it.value] }

if (currentDate.after(releaseDatePlus30)) {
testStageCf.setFieldOptions(["-1": "None"] +after30)
//testStageCf.setFormValue(null)
} else if (currentDate.before(releaseDateMinus2)) {
testStageCf.setFieldOptions(["-1": "None"] + before2)
//testStageCf.setFormValue(null)
} else {
testStageCf.setFieldOptions(["-1": "None"] + normal)
//testStageCf.setFormValue(null)
}

}

}

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events