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)

 

Leave a Comment