How to set fields to read only in Behaviours

Todd Palermo July 9, 2020

I am trying to make a few custom fields read-only based on if a date field was populated. The basic situation is: If the approval date is populated, then a few fields are to become read-only. The approval can be returned, so if that is true, then the custom fields are to be read-write again. If the issue is approved again, then check to make sure the approval is after the returned data to make the custom fields read-only again. Any help would be great.

Below is an example of just making the custom fields read-only, but many things could be wrong. Thanks!

def ApproveDate = getFieldByName("Approve Date")
Date ApproveDateValue = (Date) ApproveDate.getValue()

def ReturnDate = getFieldByName("Return Date")
Date ReturnDateValue = (Date) ReturnDate.getValue()

def cf1 = getFieldByName("CustomField1")
def cf2 = getFieldByName("CustomField2")

if (ApproveDateValue != null || (ReturndateValue !=null && ApproveDateValue>ReturnDateValue))
{
cf1.setReadOnly(true)
cf2.setReadOnly(true)
}

 

1 answer

1 accepted

0 votes
Answer accepted
Subrat Mishra
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 23, 2020

 

import com.onresolve.jira.groovy.user.FieldBehaviours
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.jira.groovy.user.FormField

FormField ApproveDate = getFieldByName("Approve Date")
def ApproveDateValue = (Date) ApproveDate.getValue()

FormField ReturnDate = getFieldByName("Return Date")
def ReturnDateValue = (Date) ReturnDate.getValue()

FormField cf1 = getFieldByName("CustomField1")
FormField cf2 = getFieldByName("CustomField2")

if (ApproveDateValue != null || ( ReturnDateValue !=null && ApproveDateValue > ReturnDateValue)) {
cf1.setReadOnly(true)
cf2.setReadOnly(true)
}
// Make sure to make the fields read-write if condition evaluates as false as behaviour loads every time the field changes .
else {
cf1.setReadOnly(false)
cf2.setReadOnly(false)

Todd Palermo July 26, 2020

Thanks Subrat!

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events