Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

making required fields hidden and show depending upon Selected value on create/edit/view screen

Jyoti Karwal August 20, 2018

Just wondering if there is any script I can use in Behaviours or script runner which allow me to hide show required fields depending upon selected options in select custom field.

 

For more details:

 

Have two Select fields:

Group name and Type

 

Depending upon these two values, I have behaviour set up to show and hide fields.

 

But the issue is there are some required fields which are not required in other selected options and that don’t let me create the issue.

 

If there is any way I can make the fields required as well as hide them that would be great!!

 

Here is the code:

import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate

import com.atlassian.jira.component.ComponentAccessor

import groovy.json.JsonBuilder

import groovy.transform.BaseScript

import groovyx.net.http.ContentType

import groovyx.net.http.HTTPBuilder

import groovyx.net.http.Method

 

import javax.ws.rs.core.MultivaluedMap

import javax.ws.rs.core.Response

import com.onresolve.jira.groovy.user.FieldBehaviours

import com.onresolve.jira.groovy.user.FormField

 

def Linkedissues = getFieldById("customfield_13310")

def Assignee = getFieldById("customfield_13310")

def Reporter = getFieldById("customfield_13310")

def FixVersion = getFieldById("customfield_13310")

def ApproximateEffort = getFieldById("customfield_13609")

def RequirementImpact = getFieldById("customfield_14796")

def DecisionDueDate = getFieldById("customfield_14594")

def AffectedProducts = getFieldById("customfield_14794")

def AffectedConstellations = getFieldById("customfield_14595")

def AffectedCustomers = getFieldById("customfield_14596")

def RiskofDefect = getFieldById("customfield_14795")

def Riskoffix = getFieldById("customfield_14605")

def Action = getFieldById("customfield_14797")

def Reason = getFieldById("customfield_14599")

def Impact = getFieldById("customfield_14791")

def CostImpact = getFieldById("customfield_14792")

def RiskImpact = getFieldById("customfield_14793")

def DocumentWorkInstructions = getFieldById("customfield_14601")

def Type = getFieldById("customfield_14593")

 

def selectedOption = Type.getValue() as String

log.debug "Selected option: $selectedOption"

if (selectedOption == "Defect") {

//DecisionDueDate.setRequired(true)

DecisionDueDate.setHidden(false)

 //AffectedProducts.setRequired(true)

AffectedProducts.setHidden(false) 

 //AffectedConstellations.setRequired(true)

AffectedConstellations.setHidden(false)

 //AffectedCustomers.setRequired(true)

AffectedCustomers.setHidden(false) 

 //RiskofDefect.setRequired(true)

RiskofDefect.setHidden(false) 

 //Riskoffix.setRequired(true)

Riskoffix.setHidden(false) 

 //RequirementImpact.setRequired(true)

RequirementImpact.setHidden(false)  

}

else {

    if(DecisionDueDate.value || AffectedProducts.value || AffectedConstellations.value ||  AffectedCustomers.value || RiskofDefect.value || Riskoffix.value || RequirementImpact.value)

    {

 

        DecisionDueDate.setFormValue(null)

        AffectedProducts.setFormValue(null)

        AffectedConstellations.setFormValue(null)

        AffectedCustomers.setFormValue(null)

        RiskofDefect.setFormValue(null)

        Riskoffix.setFormValue(null)

        RequirementImpact.setFormValue(null)

 

    }

  ApproximateEffort.setHidden(true)

  ApproximateEffort.setRequired(false)

  DecisionDueDate.setHidden(true)

  DecisionDueDate.setRequired(false)

  AffectedProducts.setHidden(true)

  AffectedProducts.setRequired(false)

  AffectedConstellations.setHidden(true)

  AffectedConstellations.setRequired(false)

  AffectedCustomers.setHidden(true)

  AffectedCustomers.setRequired(false)

  RiskofDefect.setHidden(true)

  RiskofDefect.setRequired(false)

  Riskoffix.setHidden(true)

  Riskoffix.setRequired(false)

  RequirementImpact.setHidden(true)

  RequirementImpact.setRequired(false)

 

}

if (selectedOption == "Scope Change") {

Linkedissues.setHidden(false)

//Linkedissues.setRequired(true)  

 Assignee.setHidden(false)

//Assignee.setRequired(true)  

 Reporter.setHidden(false)

//Reporter.setRequired(true)  

 //ApproximateEffort.setHidden(!selectedOption).setRequired(true)

DecisionDueDate.setHidden(false)

//DecisionDueDate.setRequired(true)  

 Action.setHidden(false)

//Action.setRequired(true)  

 Reason.setHidden(false)

//Reason.setRequired(true)  

 Impact.setHidden(false)

CostImpact.setHidden(false)

RiskImpact.setHidden(false)

   

}

else {

    if(Linkedissues.value || FixVersion.value || ApproximateEffort.value || DecisionDueDate.value || Action.value ||  Reason.value || Impact.value || CostImpact.value|| RiskImpact.value || Assignee.value || Reporter.value)

    {

        Linkedissues.setFormValue(null)

        Assignee.setFormValue(null)

        Reporter.setFormValue(null)

        //ApproximateEffort.setFormValue(null)

        DecisionDueDate.setFormValue(null)

        Action.setFormValue(null)

        Reason.setFormValue(null)

        Impact.setFormValue(null)

        CostImpact.setFormValue(null)

        RiskImpact.setFormValue(null)

        FixVersion.setFormValue(null)

    }

  Linkedissues.setHidden(true)

  Assignee.setHidden(true)

  Reporter.setHidden(true)

  //ApproximateEffort.setHidden(true)

  DecisionDueDate.setHidden(true)

  Action.setHidden(true)

  Action.setRequired(false) 

  Reason.setHidden(true)

  Reason.setRequired(false)

  Impact.setHidden(true)

  CostImpact.setHidden(true)

  RiskImpact.setHidden(true)

  FixVersion.setHidden(true)

}

 

if (selectedOption == "Process") {

Linkedissues.setHidden(false)

Assignee.setHidden(false)

Reporter.setHidden(false)

ApproximateEffort.setHidden(false)

DecisionDueDate.setHidden(false)

DocumentWorkInstructions.setHidden(false)

 

   

}

else {

    if(Linkedissues.value || FixVersion.value || ApproximateEffort.value || DecisionDueDate.value || DocumentWorkInstructions.value || Assignee.value || Reporter.value)

    {

        Linkedissues.setFormValue(null)

        Assignee.setFormValue(null)

        Reporter.setFormValue(null)

        ApproximateEffort.setFormValue(null)

        DecisionDueDate.setFormValue(null)

        DocumentWorkInstructions.setFormValue(null)

        FixVersion.setFormValue(null)

    }

  Linkedissues.setHidden(true)

  Assignee.setHidden(true)

  Reporter.setHidden(true)

  ApproximateEffort.setHidden(true)

  DecisionDueDate.setHidden(true)

  DocumentWorkInstructions.setHidden(true)

  FixVersion.setHidden(true)

}

1 answer

0 votes
Mark Markov
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.
August 20, 2018

Hello @Jyoti Karwal

Where do you place this script?

Jyoti Karwal August 20, 2018

Hi Mark,

I placed this Script in Behaviour Plugin, serverside scripting.

Thanks !

Jyoti Karwal August 22, 2018

Hi @Mark Markov,

Do you need any further information let me know.

Regards!

Mark Markov
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.
August 22, 2018

Yes! Do you put it in Initialiser function or attached to a field? Can you provide screenshot of configuration?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events