Problem running JS from the 'Description' of a field in JIRA 5.2.5's Create Issue screens

Alex Taylor
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.
January 22, 2013

We've been using a little bit of JS in one of our field Descriptions for a while now:

<script type="text/javascript">jQuery(document).ready(function($) { ... });</script>

This particular field only appears on one of our Issue Types, so the code is expected to run only when creating an Issue of that Type.

Following the upgrade from JIRA4 to JIRA5, I've discovered that this is no longer reliable: it only seems to execute if the 'Create Issue' popup opens with the relevant Issue Type already selected. If another Issue Type is selected and you change to the one we're interested in, the code doesn't run.

(I suspect this may have been a problem in JIRA4 too, but we got around it by the simple expedient of not allowing the user to change the Issue Type from the Create Issue screen...not an option in JIRA5 so far as I can see.)

Now, I'm not particularly familiar with JS so I'm entirely happy to accept that the above fragment of code isn't the correct way to do this :-) But I haven't been able to find anything else that works at all, never mind works with the JIRA5 Create Issue popup.

Can anyone help, please?

2 answers

1 accepted

1 vote
Answer accepted
Renjith Pillai
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.
January 29, 2013
Alex Taylor
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.
January 29, 2013

Thanks, that's exactly what I was looking for! :-) I've had to move all the JS to the Description of the 'Summary' field, since it's the only field which appears on all the issue-types, but that's fine.

I've found one slightly odd bit of behaviour, though - before I raise this as a bug, can anyone confirm what I'm seeing, please?

I have some code in the Summary's Description which is run like this:

<script type="text/javascript">
AJS.$(document).ready(function($) {

runJS();

JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function (e,context) {
runJS();
});

function runJS() {
... do stuff here ....

}

});

</script>

This all works perfectly from both the Create and Edit Issue screens - unless I cancel the popup rather than confirming it. If I do this, then I see the following behaviour:

1. If I cancel the Create Issue popup, any other popup which wants to run JS will not open; instead I just get the 'busy' spinner in the middle of the screen, and it stays there indefinitely. The Create Issue popup will still open, but nothing else. The spinner can be cleared by either hitting Escape or refreshing the browser, but the problem will remain until I either refresh the current page or go to another one.

2. If I cancel the Edit Issue popup, whilst all other popups (Create, Edit, transitions) will open without problems, none of the JS on their fields will now run. This too can be resolved by refreshing or going to another page; it can also be cleared by re-opening the Edit Issue popup and closing it with 'Update' rather than 'Cancel'.

If this is a bug then I'll raise a support issue, but if it's just me doing something dumb then I'd be very grateful for some assistance in fixing it :-)

Alex Taylor
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.
January 30, 2013

Located the problem. It turns out I had a small error in my JS which was causing the script to terminate unexpectedly. For some reason this then killed every single script on the page until it was refreshed.

0 votes
Alex Taylor
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.
January 29, 2013

Another bit of JS is suffering from the problem now. We have this bit of code in the Description for a few multi-select-list fields:

<script type="text/javascript">
(function($){
new AJS.MultiSelect({
element: $("#customfield_15702"),
itemAttrDisplayed: "label",
errorMessage: AJS.params.multiselectComponentsError
});
})(AJS.$);

</script>

(This converts the normal multi-select list into a Components/Version-style combo-box.)

Once again it's fine when the popup opens, but changing the Issue Type kills it and the field reverts to the default list.

Suggest an answer

Log in or Sign up to answer