Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Populate single select list using rest call data using script runner behaviors

Edited

i am trying to populate a single select custom field in create issue screen as per the dat ai get from a rest call. i'm using scriptrunner behaviors for it

my initialiser looks something like:

getFieldByName("fieldName").convertToMultiSelect([
ajaxOptions: [
url : "...",
query: true,
formatResponse: "general"
],
]) 

But here my field is not being populated by the api's response data.

can anyone tell me what am i missing.

1 answer

You need to create a rest endpoint that this behaviour code communicates with to get the options.

So start by making a rest endpoint that returns your data as we show here and then make the behaviour code talk to that endpoint via the rest endpoints URL as we show here.

 

Regards

Matthew

I'm having the same problem as the OP. I have created a REST endpoint and it returns my data just like your example shows. When I edit the field that the behavior is connected to and click in the search box. the icon spins for a second but I don't get any values. All I get is the "footer" text that I've defined in my endpoint response. 

At this point, I'm not actually looking at the characters typed into the search box in my endpoint code, I just return the whole list. That's the only thing I can think of that is different than the examples. Is there something I need to "do" with the query text? 

Thanks

If you have set this up exactly as the guide pages say then the default behaviour is that it will only AUTO get repositories if you enter at least 4 characters into the text box.


See the following property


minQueryLength


in the behaviour code:


getFieldByName("TextFieldB").convertToMultiSelect([
ajaxOptions: [
url : getBaseUrl() + "/rest/scriptrunner/latest/custom/githubRepoQuery",
query : true, // keep going back to the sever for each keystroke
minQueryLength: 4,
keyInputPeriod: 500,
formatResponse: "general",
]
])


If you do not enter at least the `minQueryLength` characters then you have to click the "down arrow" icon to force the field to request data from the endpoint.

If you have not set up the exact example in the guide then the problem may be with the return data that the rest endpoint is pulling from the external source. I suggest trying the URL for your rest endpoint locally in the browser URL bar to see if it returns what you expect

Regards
Matthew

Thanks for the reply Matthew,

I've tried setting the minQueryLength to various values with no change in behavior.

I've also checked my REST endpoint response in the browser and it looks like it matches the format of the example. Here's a snippet.

{

  • items: [
    • {
      • value: "xxx Investors",
      • html: "xxx Investors",
      • label: "xxx Investors"
      },
    • {
      • value: "American Stock Exchange",
      • html: "American Stock Exchange",
      • label: "American Stock Exchange"
      },
  • ],
  • total: 50,
  • footer: "footer"

}

(ugh, sorry. I'm not sure how to copy the jsonview output here and make it look normal but I'm pretty sure I have valid JSON)

I'm sure it's something simple but I don't know how to debug it further.

Thanks,

Tom

Well, I just found the "problem". I changed the text in my footer item from "footer" to (something longer?) "Select the Customer" and it started working. 

Dunno

Seems like either a bug or something that should be documented.

Thanks,

Tom

Hi Tom

Apologies for the delay.

I had a go at using the word “footer” as the footer elements actual value and I can see what you mean.

If you alter just the footer of our GitHub example:


rt = [
//.... removed code for brevity
total : repos[“total_count”],
footer: “footer”
]

The Select list converted field will only ever show the word “footer” when you click the dropdown box with 1 or more characters entered.

If you have anything other than the word footer it works as expected.

It does appear to break the select list conversion field so it could be considered to be a bug.
This is likely an issue with how the behaviour method “.convertToMultiSelect” performs the conversion.
I will see if I can raise a bug for this so we have a record of the problem.

Thanks for finding this

 

Regards

Matthew

Like Tom Hudgins likes this

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Apps & Integrations

🍂📹 Apptoberfest demo contest roundup: vote for your favorite demos!

Hi Community! The submissions are in (and listed below) for the 🍻🍂Apptoberfest🍂🍻 Demo Competition and it’s time for you to place your votes for the best: Analytics & reporting app demo ...

211 views 5 14
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you