Hello,
Is it possible to open a Create Sub-Task screen from a web item button in Scriprunner?
Background:
We would like to have a button on an issue to create a subtask of a specific type.
As far as I can see only Create issue is supported, not create subtask.
Best regards
Filip
I've added a bit to the docn. It's not ideal but might be good enough for you.
You may wish to create a subtask of the current issue (or any other issue) at a particular stage.
We currently don’t have support via the UI for this (SRJIRA-2162). But you can do it with a raw XML fragment, with the caveat that the form will open in full-screen mode.
Reminder, pressing the Preview button generates the XML for any web fragment, which you can modify and submit via the raw xml module built-in script.
The XML to use is for example:
<web-item key='link-create-subtask' name='ScriptRunner generated web item - create-subtask' section='operations-operations' weight='1'>
<label>Create Linked Subbie</label>
<link linkId='link-create-constrained-subtask'>/jira/secure/CreateSubTaskIssue.jspa?parentIssueId=${issue.id}&pid=${issue.projectObject.id}&issuetype=10004</link>
</web-item>
Set the issue type ID of the subtask, and set the context path correctly, in the case of the example above it is /jira.
Thank you Jamie.
We tried it now.
It works, but the full-screen mode is not beautiful.
Do you think it will be possible to solve with a dialog like the built-in create-subtask? (if/when SRJIRA-2162 is implemented)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
yeah that's the main task of that issue.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
To make as a dialog like the built-in create-subtask, you need to add a class:
<styleClass>issueaction-create-subtask</styleClass>
So, add on the XML example by @JamieA, it becomes:
<web-item key='link-create-subtask' name='ScriptRunner generated web item - create-subtask' section='operations-operations' weight='1'> <label>Create Linked Subbie</label>
<styleClass>issueaction-create-subtask</styleClass>
<link linkId='link-create-constrained-subtask'>/jira/secure/CreateSubTaskIssue.jspa?parentIssueId=${issue.id}&pid=${issue.projectObject.id}&issuetype=10004</link>
</web-item>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The only problem with this is that if you have multiple Sub-task issue types, even by specifying the ID, it will always default to what the user selected last time when creating.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jared,
I know its been awhile - but a small hack that may help is included below.
Update the styleclass to include "sr-create-bound-issue":
<styleClass>sr-create-bound-issue issueaction-create-subtask</styleClass>
By including this class - you will activate the BehaviorContextId() which will hold the id of the button clicked to launch the form.
Create a Behavior which has mappings for all subtask types - or all issue types as it will only fire when the button is clicked.
In that behavior initializer you can catch the BehaviorContextId() as the first step - and if appropriate adjust the issuetype as shown below:
//If Behavior Context Id matches the WebItem ID for Subtask Creation
if (getBehaviourContextId() in ["add-artifact"]) {
//Set the Issue Type field to the ID of the subtask related to the button clicked (in this case 11001)
getFieldByName("Issue Type").setFormValue("11001")
}
This design pattern should allow for alignment of issue type on Subtask Creation modal dialog - no full screen workaround needed!
Enjoy!
Seth
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We just had a support request on the Behaviour integration from adding the 'sr-create-bound-issue' class. I thought to update here as well.
Essentially, a blank screen could be left after subtask screen. I work around this by attaching following javascript with Behaviour in summary field as initialiser:
if (!getBehaviourContextId()) return getFieldById('summary').setDescription(""" <script> const subtaskDialog = document.querySelector('#create-subtask-dialog[open]'); const constrainedIssueDialogs = document.querySelectorAll('#create-constrained-issue-dialog'); // Need to simulate clicking on overlay to cancel extra #create-constrained-issue-dialog
if (subtaskDialog) { const unwantedScreenOverlaySelector = ':not(#create-subtask-dialog[open]) + .aui-blanket'; const observer = new MutationObserver(mutations => { const overlay = document.querySelector(unwantedScreenOverlaySelector) if (overlay) { overlay.click(); observer.disconnect(); } }); observer.observe(document.documentElement, { childList: true, subtree: true }); // This could also cause other standard create constrained issue buttons on the same page to generate extra #create-constrained-issue-dialog
// Just need to open the correct #create-constrained-issue-dialog
} else if (constrainedIssueDialogs.length > 1) { const zIndex = constrainedIssueDialogs[0].getAttribute('style'); constrainedIssueDialogs[constrainedIssueDialogs.length - 1].setAttribute('open', ''); constrainedIssueDialogs[constrainedIssueDialogs.length - 1].setAttribute('style', zIndex); } </script> """)
For more details, read the comment in the feature request: SRJIRA-2162, there is also a recording to illustrate how it works.
As stated in SRJIRA-2162, this workaround falls outside the scope of ScriptRunner's product support SLA. The workaround serves as a reference to get started, and you should change accordingly to your requirements.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
You can create sub-tasks from the parent's screen by choosing More -> Create subtask
You can use the Behaviour plugin (part of Scriptrunner) to pre-populate it with values
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
What our business requested is a specific button to create a sub-task of specific type.
Like "Create Approval Request" that brings up create sub-task screen with Issue Type set to "Approval Request"
Br
Filip
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.