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.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.