Raw XML Module Built-In Script
All of the built-in scripts produce XML that is similar, but not interchangeable with, the XML found in a plugin descriptor. You will notice that, for usability reasons, the forms do not provide all the possible configuration elements available in plugins. As an example, the web-item built-in script does not give you the option to provide a tooltip for the web-item link, or a velocity context provider, or an icon URL.
You can work around this limitation by using this built-in script. First of all, get the required XML from one of the other fragment built-in scripts by filling out the form, then clicking the Preview button. Do not click the Save/Update button.
You can then copy the emitted XML into the Raw XML module built-in script, and make any modifications as required.
For example, let’s say we have created a link in the Browse Projects menu, now we wish to menu add a tooltip and icon to the web item. Enter the XML:
<web-item key='link-to-myprojects' name='ScriptRunner generated web item - link-to-myprojects' section='browse_link/project_view_all' weight='50'>
<label>My Projects</label>
<link linkId='link-to-myprojects'></link>
<tooltip>Show only my projects</tooltip>
<icon height="16" width="16">
<link>/images/icons/print.gif</link>
</icon>
</web-item>
Although the example here is for JIRA, similar XML is applicable to Bitbucket and Confluence. |
and verify the menu item appears as:

Using Multiple Items
The other reason for using this built-in script is it allows you to make multiple modifications that belong as a single unit in a single script, which you can enable and disable en bloc.
The XML below allows us to create the following structure, which consists of:
-
a drop-down menu in the top navigation bar
-
a web section activated by that menu item, which has a heading
-
a simple web item
-
a web item provider which creates further items in that section

This is produced by the following XML:
<web-item key='toppy' name='ScriptRunner generated web item - toppy' section='system.top.navigation.bar' weight='70'>
<label>Toppy</label>
<link linkId='toppy'></link>
</web-item>
<web-section key='top-menu-section' name='ScriptRunner generated web item - top-menu-section' location='toppy' weight='70'>
<label>Subby</label>
<param name='lazy' value='true' />
</web-section>
<web-item key='x-other' name='ScriptRunner generated web item - x-other' section='toppy/top-menu-section' weight='1'>
<label>Sub-menu item</label>
<link linkId='x-other'>/</link>
</web-item>
<web-item-provider key='custom-drop-history-factory' name='ZCreate sub-task for this issue'
section='toppy/top-menu-section' class='com/onresolve/jira/groovy/test/fragments/SampleWebItemProvider.groovy' />
XML aficianados will note that the above XML is not technically correct as it does not have a root element, but in this case, a root element will be automatically added for you. |