Hello,
I'm trying to filter the value of Field2 (Select List (multiple choice) depending on the value of Field1 (Select List (multiple choice).
However, it only reads the ((selectedOption.contains("Client"))) condition and I believed this is because they both contain a 'Client' keyword.
Is there a way to be more specific? I tried using (selectedOption == "Client Team") but its not working.
Here is my code below.
import com.atlassian.jira.component.ComponentAccessor
def tool = getFieldByName("Plan Type")
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def toolfield = getFieldById(getFieldChanged())
def selectedOption = toolfield.getValue() as String
def customField = customFieldManager.getCustomFieldObject(tool.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
tool.setRequired(false)
tool.setHidden(true)
tool.setFormValue(null)
if ((selectedOption.contains("Client Team")))
{
def optionsMap2 = options.findAll {
it.value in ["CT: Medical", "CT: Vision", "CT: Dental", "CT: Pharma (Rx)"]
}.collectEntries {
[
(it.optionId.toString()): it.value
]
}
tool.setFieldOptions(optionsMap2)
tool.setRequired(true)
tool.setHidden(false)
}
if ((selectedOption.contains("Client")))
{
def optionsMap3 = options.findAll {
it.value in ["Client: Medical", "Client: Vision", "Client: Dental", "Client: Pharma (Rx)"]
}.collectEntries {
[
(it.optionId.toString()): it.value
]
}
tool.setFieldOptions(optionsMap3)
tool.setRequired(true)
tool.setHidden(false)
}
You retrieve the values of your fields as a String. And contains operator returns true if the string contains the specified sequence of char values
But multi chose select list return values as a List<String>. And contains operator returns true if the list contains the specified element.
if ((selectedOption.contains("Client Team"))) {
//logic for client team
} else if ((selectedOption.contains("Client"))) {
//logic for client
}
otherwise it enters both of your cycles if it contains "Client Team" and 2nd cycle being last overrides logic of first
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.