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.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.