I'm using the behaviors plugin. I have figured out how to filter the values of a select list. However, I need to filter this list based on project selection during issue creation.
Script I am using:
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def formField = getFieldByName("Location - NA")
def customField = customFieldManager.getCustomFieldObject(formField.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
def optionsMap = options.findAll {
it.value in ["Kansas City", "Bejing", "Memphis"]
}.collectEntries {
[
(it.optionId.toString()) : it.value
]
}
formField.setFieldOptions(optionsMap)
I would switch on:
getIssueContext().getProjectObject()
which should give you a Project... IIRC initialisers fire when the project changes, so that might be a good place to put it. Mikey's answer should work too I think.
Generally speaking, I would use your behaviour on the Project field if that is the controlling factor.
You should then be able to get the value of the project using something like:
projectValue = getFieldById(getFieldChanged()).getValue
Note that I have not actually tested that code.
Once you have the project value you can use if/else statements or a switch statement to set the appropriate field options for the corresponding projects.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.