Jira Report plugins use the com.atlassian.configurable.ObjectConfigurable
class to simplify the process of requesting configuration parameters from users. These parameters are specified in atlassian-plugin.xml
as part of the report module. For example, the time tracking report that ships with Jira has the following input parameters:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
<properties>
<property>
<key>versionId</key>
<name>common.concepts.version</name>
<description>report.timetracking.version.description</description>
<type>select</type>
<values class="com.atlassian.jira.portal.VersionOptionalValuesGenerator"/>
</property>
<property>
<key>sortingOrder</key>
<name>report.timetracking.sortingorder</name>
<description>report.timetracking.sortingorder.description</description>
<type>select</type>
<values class="com.atlassian.jira.portal.SortingValuesGenerator"/>
</property>
<property>
<key>completedFilter</key>
<name>report.timetracking.filter</name>
<description>report.timetracking.filter.description</description>
<type>select</type>
<values class="com.atlassian.jira.portal.FilterValuesGenerator"/>
</property>
</properties>
Types are defined in the com.atlassian.configurable.ObjectConfigurationTypes
class. Available types are:
Type | Input HTML Type |
---|---|
string | text box |
long | text box |
select | select box |
multiselect | multi-select box |
hidden | hidden field |
date | text box with calendar pop-up |
user | text box with user picker pop-up |
text | text area |
checkbox | checkbox |
cascadingselect | cascading select boxes |
Values can be provided by a value provider class that must subclass com.atlassian.configurable.ValuesGenerator
. Acceptable values can also be hardcoded into the module descriptor:
1 2 3 4 5 6 7 8 9 10
<values>
<value>
<key>KEY1</key>
<value>somevalue</value>
</value>
<value>
<key>KEY2</key>
<value>someothervalue</value>
</value>
</values>
You can specify a default for all types as well:
1 2 3 4 5 6 7 8 9
<default>5</default>
<values>
<value><key>1</key><value>1</value></value>
<value><key>2</key><value>2</value></value>
<value><key>3</key><value>3</value></value>
<value><key>4</key><value>4</value></value>
<value><key>5</key><value>5</value></value>
...
</values>