Web Item module

Available:

Bamboo 1.0 and later

Description

The Web Item module allows you to define a link in the Bamboo system. (Usually in some form of menu). Currently, you can use the web-item to add links to the following locations:

Menu

Section

Dashboard Tabs (since 3.0)

system.dashboard/dashboard

Plan Sub Menu (tabs on the View Plan page)

chain.subMenu/chain

Plan Results Sub Menu (tabs on the View Plan Result page)

chainResults.subMenu/chainResults

Job Sub Menu (tabs on the View Job page)

build.subMenu/build

Job Results Sub menu (tabs on the View Job Result page)

results.subMenu/results

Plan Actions Menu (since 3.3)

chain.actions/chainActions

Plan Result Actions Menu (since 3.3)

chainResult.actions/chainResultActions

Job Actions Menu (since 3.3)

job.actions/jobActions

Job Result Actions Menu (since 3.3)

jobResult.actions/jobResultActions

Administration Menu

system.admin/plugins

User profile tabssystem.user/userconfig

When putting items in the Administration Menu, you can also add your own section to the menu (rather than using the suggested plugins section above). For more information see Web Section Module.

Bamboo-specific notes about Web Items

Module Parameters

Please take note of the following Bamboo-specific information that is relevant to the Module components described in the 'Configuration' section below.

Attributes:

  • key -- this is the unique identifier of the web-item, it is also used by Bamboo to give the link an id.
  • name -- in the plan sub menu and results sub menu this is used to determine if the current link (tab) is active
  • section -- the section is made of of the parent section's location followed buy the name of the parent section. In Bamboo this is used to retrieve the appropriate web-items for the menu. (see Web Section Module)
  • weight -- this is used to determine the order of the items on the page

Elements:

  • condition -- by implementing the com.atlassian.plugin.web.Condition class you can add rules to determine whether the link will be displayed or not.
  • label -- this will be displayed on the screen and can be plain text or a property key
  • link -- the link is the url the link will point to. It can be absolute or relative to Bamboo's context path

Both the link and the key id can make use of parameters passed to the page. For example:

<link>/build/viewBuildFiles.action?buildKey=${buildKey}</link>

where ${buildKey} is the parameter name.

Context Aware Navigation

In Bamboo 3.0 we have added the Plan Navigator. When moving between Jobs and the Plan (as well as Job Results and Plan Result), the navigator remembers your context i.e. which tab (Web Item) you are on and will attempt to keep you on the same tab. If you are adding a new tab to a page which has the Plan Navigator, you may also wish to manually define the corresponding Job/Plan/Result URL. You can find more information on how to do this on the XWork Plugin Module page.

Purpose of this Module Type

Web Item plugin modules allow plugins to define new links in application menus.

Configuration

The root element for the Web Item plugin module is web-item. It allows the following attributes and child elements for configuration:

Attributes

Name*

Description

class

Error rendering macro 'excerpt-include' : No link could be created for '_Description for class attribute'.

state

 

Error rendering macro 'excerpt-include' : No link could be created for '_Description for disabled attribute'.

Default: enabled.

i18n-name-key

Error rendering macro 'excerpt-include' : No link could be created for '_Description for i18n-name-key attribute'.

key

Error rendering macro 'excerpt-include' : No link could be created for '_Description for key attribute'.

name

Error rendering macro 'excerpt-include' : No link could be created for '_Description for name attribute'.
 

Used only in the plugin's administrative user interface.

section

Location into which this web item should be placed.

For non-sectioned locations, this is just the location key.

For sectioned locations it is the location key, followed by a slash ('/'),

 and the name of the web section in which it should appear.

system

Error rendering macro 'excerpt-include' : No link could be created for '_Description for system attribute'.

Default: false.

weight

 

Determines the order in which web items appear.

Items are displayed top to bottom or left to right in order of ascending weight.

The 'lightest' weight is displayed first, the 'heaviest' weights sink to the bottom.

The weights for most applications' system sections start from 100,

and the weights for the links generally start from 10.

The weight is incremented by 10 for each in sequence so that there is ample space to insert your own sections and links.

Default: 1000.

*key and section attributes are required.

Elements

The tables summarises the elements. The sections below contain further information.

Name*

Description

condition

Defines a condition that must be satisfied for the web panel to be displayed.

If you want to 'invert' a condition, add an attribute 'invert="true"' to it.

The web item will then be displayed if the condition returns false (not true).

conditions

 

Defines the logical operator type to evaluate its condition elements. By default 'AND' will be used.

Default: AND.

context-provider

Allows dynamic addition to the Velocity context available for various web panel elements (in XML descriptors only).

Currently only one context-provider can be specified per web panel.

description

Error rendering macro 'excerpt-include' : No link could be created for '_Description for description element'.
 

I.e. the description of the web item.

icon

Defines an icon to display with or as the link.

 Note: In some cases the icon element is required.

Try adding it if your web section is not displaying properly.

label

Is the i18n key that will be used to look up the textual representation of the link.
link

Defines where the web item should link to.

The contents of the link element will be rendered using Velocity, allowing you to put dynamic content in links.

For more complex examples of links, see below.

param

Error rendering macro 'excerpt-include' : No link could be created for '_Description for param element'.

This is handy if you want to use additional custom values from the UI.

description

Error rendering macro 'excerpt-include' : No link could be created for '_Description for description element'.

I.e. the description of the web panel.

resource

 

Error rendering macro 'excerpt-include' : No link could be created for '_Description for resource element'.
styleClass

Defines an additional CSS class that will added to this web item when it is rendered on the page.

Note that this value may be ignored in some situations.

tooltipIs the i18n key that will be used to look up the textual mouse-over text of the link.

*label and link elements are required.

Label Elements

Error rendering macro 'excerpt-include' : No link could be created for '_Label Elements'.

Tooltip Elements

Tooltip elements have the same attributes and parameters as the label elements. See above.

Link elements may contain additional information:

1
<link linkId="create_link" absolute="false">/secure/CreateIssue!default.jspa</link>
  • The linkId is optional, and provides an XML id for the link being generated.
  • The absolute is optional and defaults to false unless the link starts with http:// or https://

The body of the link element is its URL. The URL is rendered with Velocity, so you can include dynamic information in the link. For example, in Confluence, the following link would include the page ID:

1
<link linkId="view-attachments-link">/pages/viewpageattachments.action?pageId=$page.id</link>

Icon Elements

Icon elements have a height and a width attribute. The location of the icon is specified within a link element:

1
2
3
<icon height="16" width="16">
    <link>/images/icons/print.gif</link>
</icon>

Param Elements

Error rendering macro 'excerpt-include' : No link could be created for '_Param Elements'.

Context-provider Element

Error rendering macro 'excerpt-include' : No link could be created for '_Context-Provider Element'.

Condition and Conditions Elements

Error rendering macro 'excerpt-include' : No link could be created for '_Condition and Conditions Elements'.

Example

Single web item in the admin section

Here is an example atlassian-plugin.xml file containing a single web item:

1
2
3
4
5
6
7
8
9
10
11
12
13
<atlassian-plugin name="Hello World Plugin" key="example.plugin.helloworld" plugins-version="2">
    <plugin-info>
        <description>A basic web item module test</description>
        <vendor name="Atlassian Software Systems" url="http://www.atlassian.com"/>
        <version>1.0</version>
    </plugin-info>

    <web-item key="google_home" name="Google Home" section="system.admin/example1" weight="10">
        <description key="item.google.home.desc">Simple link to google.com.</description>
        <label key="item.google.home.label" />
        <link linkId="google_home">http://google.com</link>
    </web-item>
</atlassian-plugin>

Add a web item to the application header bar

Here is an example atlassian-plugin.xml file containing how to add your link to the application header.

1
2
3
4
5
6
7
8
9
10
11
12
13
<atlassian-plugin name="Hello World Plugin" key="example.plugin.helloworld" plugins-version="2">
    <plugin-info>
        <description>A basic web item module test</description>
        <vendor name="Atlassian Software Systems" url="http://www.atlassian.com"/>
        <version>1.0</version>
    </plugin-info>

    <web-item key="google_home" name="Google Home" section="system.header/left" weight="60">
        <description key="item.google.home.desc">Simple link to google.com.</description>
        <label key="item.google.home.label" />
        <link linkId="google_home">http://google.com</link>
    </web-item>
</atlassian-plugin>