Hi,
Is it possible to do this and how?
I have two multiple checkbox fields and options as below:
Field1---
---[] a
---[] b
---[] c
Field2---
---[] 1
---[] 2
---[] 3
---[] 4
---[] 5
---[] 6
Field2 options (1,2) are related to Field1 option (a)
Field2 options (3,4) are related to Field1 option (b)
Field2 options (5,6) are related to Field1 option (c)
If I select option "a" from Field1, other than the options 1 and 2 in Field2, every other option should be hidden.
Likewise, If I select options "a" and "b" from Field1, other than options 1,2,3 and 4 every other options should be hidden.
Related options should only be enabled when a selection is made.
It can be possible with jquery or with the behaviours but i don't know how to start . can anyone help me?
Or
Is there any best way to solve this. Any way that we can add a heading to divide the options under the field.
Thanks in advance.
import
com.onresolve.jira.groovy.user.FieldBehaviours
import
com.onresolve.jira.groovy.user.FormField
import
com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
// Get a pointer to my select list field
def selectList = getFieldByName(
"Demo Select List"
)
// Get a pointer to my check box field
FormField checkBox = getFieldByName(
"Check Box 1"
)
// Get access to the required custom field and options managers
def customField = customFieldManager.getCustomFieldObject(selectList.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
// Get the checkbox option value as a String
def checkBoxVal = checkBox.getValue()
// Logic to do some actions depending on what check box value is selected
if
(checkBoxVal ==
"A"
) {
// define and set the required options when checkbox A is selected
def optionsMap = options.findAll {
it.value in [
"A"
,
"B"
]
// list of options you want to show
}.collectEntries {
[
(it.optionId.toString()): it.value
]
}
selectList.setFieldOptions(optionsMap)
}
else
if
(checkBoxVal ==
"B"
) {
// define and set the required options when checkbox A is selected
def optionsMap = options.findAll {
it.value in [
"C"
,
"D"
,
"E"
]
// list of options you want to show
}.collectEntries {
[
(it.optionId.toString()): it.value
]
}
selectList.setFieldOptions(optionsMap)
}
As a workaround you can have field 1 and three(one for each option of field 1) other multiple checkbox fields which will be displayed if values a, b and c are selected respectively.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for the response.
Well thats a good Idea.
Field1 is having only 3 options in the scene I explained above.
I am working on the checkbox field which has 61 options. So I was trying to use only two fields instead of having individual fields for each option.
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.