User Tools

Site Tools


script_fields

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
script_fields [2017/07/17 14:55]
pawel
script_fields [2019/07/11 09:28] (current)
root
Line 36: Line 36:
 </code> </code>
  
-==== Update custom field ==== 
  
 +==== Drop Down Values based on Transitions ====
 +Create this as an initialiser.
 <code java> <code java>
-def tgtField = customFieldManager.getCustomFieldObjects(issue).find {it.name == "Name of custom field"} +import com.atlassian.jira.component.ComponentAccessor 
-def changeHolder new DefaultIssueChangeHolder(); +import static com.atlassian.jira.issue.IssueFieldConstants.* 
-tgtField.updateValue(nullissuenew ModifiedValue(issue.getCustomFieldValue(tgtField), "some new value"),changeHolder);+ 
 +def customFieldManager = ComponentAccessor.getCustomFieldManager() 
 +def optionsManager = ComponentAccessor.getOptionsManager()     
 + 
 +def formField getFieldByName("FIELD_NAME") // *name* of your custom field 
 +def customField customFieldManager.getCustomFieldObject(formField.getFieldId()) 
 +def config = customField.getRelevantConfig(getIssueContext()) 
 +def options = optionsManager.getOptions(config) 
 + 
 +// Set the values inside the select list field  
 +def noneMap = ["-1": "None"
 + 
 + 
 +if (getActionName() == "Need More Info") { 
 +    def optionsMap = noneMap + options.findAll { 
 +        it.value in ["OPTION 1""OPTION 2""OPTION 3"] // list of options you want to show 
 +    }.collectEntries { 
 +        [ 
 +            (it.optionId.toString()) : it.value 
 +        ] 
 +    }  
 +    formField.setFieldOptions(optionsMap) 
 +} else if (getActionName() == "Resolved") { 
 +    def optionsMap = noneMap + options.findAll { 
 +        it.value in ["OPTION 1", "OPTION 3"] // list of options you want to show 
 +    }.collectEntries { 
 +        [ 
 +            (it.optionId.toString()) : it.value 
 +        ] 
 +    }  
 +    formField.setFieldOptions(optionsMap) 
 +} else if (getActionName() == "Close"
 +    def optionsMap = noneMap + options.findAll { 
 +        it.value in ["OPTION 4""OPTION 5"] // list of options you want to show 
 +    }.collectEntries { 
 +        [ 
 +            (it.optionId.toString()) : it.value 
 +        ] 
 +    }  
 +    formField.setFieldOptions(optionsMap) 
 +} else { 
 +    def optionsMap = noneMap + options.findAll { 
 +        it.value in ["OPTION 3"] // list of options you want to show 
 +    }.collectEntries { 
 +        [ 
 +            (it.optionId.toString()) : it.value 
 +        ] 
 +    }  
 +    formField.setFieldOptions(optionsMap)     
 +
 </code> </code>
 +References: 
 +[[https://gist.github.com/jechlin/d9b8e778041c02e04270|GitHub Link]]
 +[[https://community.atlassian.com/t5/Adaptavist-questions/Scriptrunner-behaviour-Setting-select-list-options-None-is-not/qaq-p/934238|Atlassian Community Link]]
 +
 +
script_fields.1500317718.txt.gz · Last modified: 2017/07/17 14:55 by pawel