We are trying to view/hide a text field based on the value of the JIRA Flagged field. We have the following script set up:
def reasonForBlock = getFieldById("customfield_16560")
def flaggedField = getFieldById(getFieldChanged())
def selectedOption = flaggedField.getValue() as String
def isImpedimentSelected = selectedOption == "Impediment"
reasonForBlock.setHidden(! isImpedimentSelected)
We have applied this to the Flagged field (a checkbox field)
Expected results - the text field would remain hidden until the Flagged field was set
Actual results - the text field is not visable when the Flagged field is set
So, I was able to hide a field using this behaviour just fine. A few thoughts:
Hi Jonny,
Thank you for the response.
I am not trying to hide the field on the view screen (if it's empty it will not display) I am looking at the create and edit screens.
I have the text field hidden initially, but my expectation was that, on the edit screen, once I checked the Flagged field, the text field would then be displayed. This is where I am having issues.
If I could figure out how to add an attachment, I could show you what I am seeing
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As Jonny mentioned before, you won't see the behavior that you are expecting if you have set up an initializer. An initializer should only run when the screen is first loaded and, therefore, a change to the form field won't be caught after its initial execution.
So instead, you should set up a behavior that is mapped directly to the Flagged field. I'll attach a couple of screenshots to help.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Aidan,
Thank you for the clariofication, I missed this comment on Jonny's reply.
I will set up the script and test the behavior.
Jeanne
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Aidan,
I think I have this working. It took two beahviors:
1 - A behavior on the Reason for Block field to hide the field initailly
2 - A server side script on the Flagged field looking for the "Impediment" value. If the value is found, the Reason for Block field is shown
Serverside script:
def reasonForBlock = getFieldById("customfield_16560")
def flaggedField = getFieldById("customfield_10160")
def selectedOption = flaggedField.getValue() as String
log.debug "Selected option: $selectedOption"
if (selectedOption == "Impediment") {
reasonForBlock.setHidden(false)
}
else {
reasonForBlock.setHidden(true)
}
Does this look like the best way to handle this? Do you have any other recommendations?
Jeanne
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Further testing shows this is not working as I had hoped. JIRA will always display a field on the view screen if there is a value in the field.
If I click the FLagged field, then add a value to the Reason for Block field all is good. Both fields display on the view screen.
If I edit the issue and uncheck the Flagged field, the Reason for Block field still displays on the view screen because it still has a value.
Is there anyway to hide the field even if there is a value in the field? Or can the field be cleared if the Flagged field is not set?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey Jeanne,
I've tested this myself and I believe you can just set the Reason For Block field to 'null' as I do in your modified script below:
def reasonForBlock = getFieldById("customfield_16560")
def flaggedField = getFieldById("customfield_10160") def selectedOption = flaggedField.getValue() as String log.debug "Selected option: $selectedOption" if (selectedOption == "Impediment") { reasonForBlock.setHidden(false) } else { if(reasonForBlock.value) { reasonForBlock.setFormValue(null) } reasonForBlock.setHidden(true) }
Basically, any time the the flaggedField has a selectOption that is not equal to "Impediment" the reasonForBlock field will be cleared (if it has a value).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you Aidan!
This is exactly what I needed.
Jeanne
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
No problem!
If you have any other issues, let us know :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
I want to try this example but I have a question: where I will paste this code?
Thank you
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hey Anna!
All of the code posted above is meant to be used in a ScriptRunner Behaviour. If you follow our replies you should be able to track down which code is attached to what fields. :)
If you're not sure how to work with behaviours, you can check out our documentation here.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I have tried this example for Select list and it worked fine, only one issue has encounter that i am not able to create any issue.
I had set a script behaviour on create screen i am getting following issues:
1. When i click on the create button for issue and select the option from the list, my fields are not showing up.
2. But when i go to Project settings and from there i click on the Create button and select option from the list the fields are showing (that's a strange behaviour)
3. After adding all the values on the screen, and hit create button for creating issue at the bottom, the screen gets frozen and i am not able to create issues.
I can provide the screen shots, if anyone will help me with this issue.
Thanks,
Jyoti
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi there is more than one "add context" in "select single". How do I make the corresponding "select list" according to my "numbers" I want?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.