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 Bamboo, 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.|