// Script to set options in Project fields as per Category select
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.jira.groovy.user.FormField
import com.onresolve.jira.groovy.user.FieldBehaviours
import java.util.Map
import groovy.transform.BaseScript
def optionsManager = ComponentAccessor.optionsManager
def category = getFieldById(getFieldChanged())
def categoryValue = category.getValue().toString()
def projectID = getFieldByName("Project ID")
def projectManager = ComponentAccessor.getProjectManager()
def allProjectCategory = projectManager.getAllProjectCategories()
def projectCategory = projectManager.getProjectCategoryObjectByName(categoryValue)
if(projectCategory != null)
{
def projects = projectManager.getProjectsFromProjectCategory(projectCategory)
def List = []
if(projects != null || projects.size() > 0)
{
projects.each { it ->
List.add(it.getName())
}
Map fieldOptions=[:]
fieldOptions = List.collectEntries{ [(it): it] }
FormField projectId = getFieldByName("Project ID")
projectId.setFieldOptions(fieldOptions)
log.warn("Project ID Field Value = "+projectId.getValue().toString())
projectID.clearError()
}
else
{
projectID.setError("There is no Project with selected Category")