We're trying to add a menu option to create a linked issue, but always in the same project. I'm using a Constrained create issue dialog fragment from Adaptavist ScriptRunner, and it works flawlessly in a test instance. In production, however, the dialog does not show unless another dialog was opened before. For example, the create button has to be used before. The JavaScript console shows the following error:
TypeError: JIRA.Forms is undefined
Chrome gives the following error:
Uncaught TypeError: Cannot read property 'createCreateIssueForm' of undefined at HTMLAnchorElement.<anonymous> (batch.js?healthcheck-resources=true&is-server-instance=true&is-system-admin=true&jira-nps-enabled=true&jira.create.linked.issue=true&locale=en-US&nps-acknowledged=true&nps-not-opted-out=true&richediton=true&sd_operational=true&user-logged-in=true&whisper-enabled=true:32673) at HTMLAnchorElement.dispatch (batch.js:104) at HTMLAnchorElement.h (batch.js:96)
We've tried to deactivate all plugins, but the problem persists. Does someone know this problem?
Edit: The problem persists with vanilla Jira. Trying to run the following code triggers the error:
var createCreateIssueForm = require('quick-edit/form/factory/create-issue');
createCreateIssueForm()
.asDialog({windowTitle: 'Create Issue'})
.show(); Edit: I have narrowed down the problem to the file "com.atlassian.jira.jira-quick-edit-plugin:quick-form.js" which is not loaded from the server initially. I could work around the issue with the following Scriptrunner web panel code:
import com.atlassian.jira.component.ComponentAccessor<br>import com.atlassian.plugin.webresource.WebResourceManager<br>import com.atlassian.plugin.webresource.UrlMode
def wrm = ComponentAccessor.getWebResourceManager()<br>wrm.requireResource("com.atlassian.jira.jira-quick-edit-plugin:quick-form")
def resourceString = wrm.getStaticPluginResource("com.atlassian.jira.jira-quick-edit-plugin:quick-form", "com.atlassian.jira.jira-quick-edit-plugin:quick-form.js", UrlMode.ABSOLUTE).replace("resources", "batch")
writer.write("<script>AJS.\$.get(\""+resourceString+"\");</script>")