Forums

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

Scriptrunner Web fragment for specific request type

Ricardo Araya May 13, 2021

Hi!
I am using Scriptrunner web fragments, 
I would like to know how to restrict web fragment for a specific request type of a specific portal.
In the documentation of Customizing the UI:
https://scriptrunner.adaptavist.com/5.6.8/jira/CustomisingUI.html

I can restrict web fragments to a certain portal using in the condition the following:

portal.id == 1

or a similar code

binding.variables.get("portal") && portal.id == 1

I would like to ask if I can restrict my web fragment to a certain request type in the portal.
So my custom UI will appear only for certain request types (when creating a request type)
The condition should be something like:

portal.id == 1 && requestType.id == 22

Thanks in advance! 

1 answer

0 votes
PD Sheehan
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.
May 13, 2021

I'm assuming your fragment is some sort of web panel.

And since you want to display on the create screen, then you probably used a location such as servicedesk.portal.header or subheader.

I gave that a try and outputted all the binding variables to log with 

log.info "\n${binding.variables.collect().join('\n')}"

And I saw the following:

log=org.apache.log4j.Logger@48f09723
serviceDeskId=1
requestType=com.atlassian.servicedesk.internal.feature.customer.request.requesttype.CachedImmutableRequestTypeImpl@ca8cde32
requestTypeId=21
serviceDesk=ServiceDeskImpl{serviceDeskId=1, projectId=24170, ...}
portal=com.atlassian.servicedesk.internal.api.feature.customer.portal.PortalInternal@48b9c211
user=p6s(p6s)
£beanContext=com.onresolve.scriptrunner.beans.BeanFactoryBackedBeanContext@488654da


So requestTypeId == 22 or reuqestType.id == 22 should both work. But maybe to avoid some  errors in other contexts, do it like this:

binding.hasVariable('portal') && 
binding.hasVariable('requestType') &&
portal?.id == 1 && requestType?.id == 22
Dervis Yildiz April 8, 2022

Hi,

I get the error message that the variables portal and requestType are not declared (scriptRunner-Show a web panel). How could I solve it. Could you please help me? Thanks. 

Sriharsha
Contributor
April 18, 2025

Hi @Ricardo Araya & @Dervis Yildiz -

Use the below condition - 

 

(issue?.projectObject?.key in ["Project 1", "Project 2"]) && (issue?.requestType?.name in ["Request Type 1", "Request Type 2", "Request Type 3"])
Best regards

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events