The system.admin.top.navigation.bar location defines web sections that are shown
in the navigation bar on Administration page and in
drop-down.
There are few predefined sections.
Section Name |
|
|---|---|
Applications | admin_applications_section |
Projects | admin_project_menu |
Issues | admin_issues_menu |
Add-ons | admin_plugins_menu |
User Management | admin_users_menu |
System | admin_system_menu |
The admin_plugins_menu location defines web sections and items in the Add-ons tab of Jira administration area.
We will use this location for example.
The following module definition steps show how to add one or more items in the Add-ons tab sidebar, each of which leads to a single page.
Web section won't appear on UI until you define at least one web-item in the section.
Define one or more web-section modules for the Add-ons sidebar.
Each of these web-section modules must include:
key attribute with a unique value.location attribute with the value "admin_plugins_menu".label element with a key attribute whose value defines a unique property. The string value of
this unique property (defined in your app's i18n.properties file) will be shown in bold text at the top
of your section.For example:
1 2<web-section key="my_new_section" ... location="admin_plugins_menu" ...> ... <label key="my_new_section_name"/> <!-- This element is optional --> ... </web-section>
Define a web-item module for each item that appears in one of the web sections in the Plugins drop-down menu.
web-item modules must include a section attribute whose value is admin_plugins_menu,
followed immediately by a slash symbol /, and followed immediately by the key attribute's value specified in
the relevant web section module.For example:
1 2<web-item key="my_new_tabbed_item" ... section="admin_plugins_menu/my_new_section" ...> <link linkId="my_new_tabbed_item_link_ID">/plugins/servlet/example</link> ... </web-item>
Define a meta element in your HTML template file (such as a Velocity template file) with the attribute
name="admin.active.section".
meta tag should contain a content attribute whose value is the section attribute's value
specified in the web-item module you defined.For example:
1 2<meta name="admin.active.section" content="admin_plugins_menu/my_new_section"/>
Define another meta tag in the HTML template file with the attribute name="admin.active.tab".
meta tag should contain a content attribute whose value is the linkId attribute's value
specified in the web-item's link that links to that page.For example:
1 2<meta name="admin.active.tab" content="my_new_tabbed_item_link_ID"/>
To render your page with Administration layout, define a meta with content="decorator".
1 2<meta name="decorator" content="atl.admin"/>
If you want to create a new custom tab, you should create a web-section with the
system.admin.top.navigation.bar location. Then follow steps in previous section
and use your custom tab key instead of admin_plugins_menu.
To customize the position of your own web items or sections in this location, add a weight attribute to
your web-item or web-section and adjust its value with respect to Jira's existing web items or sections.
Lower weight values result in these items/sections appearing higher.
To find the values of Jira's existing web items and sections for the system.admin location, view the following
file in Jira's source archive:
<source-installation-directory>/jira-project/jira-components/jira-core/src/main/resources/webfragment/system-admin-sections.xml
Projects
Section Name |
|
|---|---|
none | admin_project_menu/project_section |
Issues
Section Name |
|
|---|---|
ISSUE TYPES | admin_issues_menu/element_options_section/issue_types_section |
WORKFLOWS | admin_issues_menu/element_options_section/workflows_section |
SCREENS | admin_issues_menu/element_options_section/screens_section |
FIELDS | admin_issues_menu/element_options_section/fields_section |
PRIORITIES | admin_issues_menu/priorities_section |
ISSUE FEATURES | admin_system_menu/top_system_section/issue_features |
ISSUE ATTRIBUTES | admin_system_menu/top_system_section/issue_features |
none | admin_issues_menu/misc_schemes_section |
Add-ons
Section Name |
|
|---|---|
Atlassian Marketplace | admin_plugins_menu/upm_section |
User Management
Section Name |
|
|---|---|
USER MANAGEMENT | admin_users_menu/users_groups_section |
none | admin_users_menu/users_groups_configuration |
USER DIRECTORIES | admin_users_menu/users_groups_configuration/embedded_crowd_section |
System
Section Name |
|
|---|---|
none | admin_system_menu/top_system_section |
SYSTEM SUPPORT | admin_system_menu/top_system_section/troubleshooting_and_support |
SECURITY | admin_system_menu/top_system_section/security_section |
USER INTERFACE | admin_system_menu/top_system_section/user_interface |
IMPORT AND EXPORT | admin_system_menu/top_system_section/import_export_section |
admin_system_menu/top_system_section/mail_section | |
ADMIN HELPER | admin_plugins_menu/admin-helper-admin-section |
SHARED ITEMS | admin_users_menu/shared_section |
ADVANCED | admin_system_menu/advanced_menu_section/advanced_section |
To ensure that web-items defined for Jira's administration area will remain compatible for different Jira
versions, specify the following in your app:
Add a new IsPriorToJiraVersion Condition class to your app to identify if your Jira version is earlier than,
for example, Jira 4.4. This class:
com.atlassian.plugin.web.Conditiontrue value if your Jira version is found to be earlier than Jira 4.4.Add a <condition/> element that calls your app's IsPriorToJiraVersion class to the web-item module
defined for versions of Jira prior to 4.4. This condition:
IsPriorToJiraVersion class via child <parameter/>
elements.false value is returned by this class (because your version of Jira is later than 4.4), the web-item
will be disabled and hence will not be visible in any drop-down menu of the Jira Administration area.Add the IsPriorToJiraVersion Condition class to your app:
1 2@Scanned public class IsPriorToJiraVersion implements Condition { private int maxMajorVersion; private int maxMinorVersion; private int majorVersion; private int minorVersion; public IsPriorToJiraVersion(@ComponentImport ApplicationProperties applicationProperties) { String versionString = applicationProperties.getVersion(); String versionRegex = "^(\\d+)\\.(\\d+)"; Pattern versionPattern = Pattern.compile(versionRegex); Matcher versionMatcher = versionPattern.matcher(versionString); versionMatcher.find(); majorVersion = Integer.decode(versionMatcher.group(1)); minorVersion = Integer.decode(versionMatcher.group(2)); } public void init(final Map<String, String> paramMap) throws PluginParseException { maxMajorVersion = Integer.decode(paramMap.get("majorVersion")); maxMinorVersion = Integer.decode(paramMap.get("minorVersion")); } public boolean shouldDisplay(final Map<String, Object> context) { return (majorVersion < maxMajorVersion) || (majorVersion == maxMajorVersion) && (minorVersion < maxMinorVersion); } }
Add a condition that calls your app's IsPriorToJiraVersion class to your web-item module:
1 2<web-item ... section="system.admin/globalsettings" ... > ... <condition class="package.qualified.name.to.your.plugins.class.IsPriorToJiraVersion"> <param name="majorVersion">4</param> <param name="minorVersion">4</param> </condition> ... </web-item>
The section attribute of this web item module (for versions of Jira prior to 4.4) defines which section of the
Administration area the web item will appear in.
Rate this page: