Utilizzando i “Behaviours” è possibile modificare in tempo reale il contenuto di un campo select che potrebbe contenere opzioni che vanno eliminate o aggiunte a in particolari condizioni. Il seguente codice confronta i valori esistenti con un array di valori permessi e crea una variabile che contiene i solo i valori permessi e sovrascrive i valori del campo select. La riga contenente il “findAll” filtra il contenuto attuale e restituisce solo i valori che ne rispettano le condizioni.
import com.atlassian.jira.component.ComponentAccessor 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 = getFieldById("customfield_10304") // 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) def optionsMap = options.findAll { it.value in ["Complexity 1", "Complexity 2", "E"] // list of options you want to show }.collectEntries { [ (it.optionId.toString()): it.value ] } selectList.setFieldOptions(optionsMap)