About Jira modules
Customer portal
Project settings UI locations

Keyboard shortcut

Available:

JIRA 4.1 and later

Changed:

In JIRA 4.2 and later, the keyboard-shortcut element accepts an optional child element (hidden), which prevents the keyboard shortcut from appearing on the keyboard shortcuts dialog box. Existing keyboard shortcuts can also be overridden.

Purpose of this Module Type

A keyboard shortcut plugin module defines a keyboard shortcut within JIRA. A JIRA keyboard shortcut allows you to perform potentially any action in JIRA using one or more keyboard strokes - for example, going to the Dashboard, browsing a project, moving your cursor to a field on a JIRA form, or creating, editing or commenting on an issue.

Configuration

The root element for the keyboard shortcut plugin module is keyboard-shortcut. It allows the following attributes and child elements for configuration:

Attributes

Name

Description

key

The unique identifier of the plugin module. You refer to this key to use the resource from other contexts in your plugin, such as from the plugin Java code or JavaScript resources.

1
2
<component-import
  key="appProps"
  interface="com.atlassian.sal.api.ApplicationProperties"/>

In the example, appProps is the key for this particular module declaration, for component-import, in this case.

Required: yes

Default: N/A

i18n-name-key

The localisation key for the human-readable name of the plugin module.

Required: -

Default: -

name

The human-readable name of the plugin module.

Required: -

Default: The plugin key.

hidden

When hidden='true', the keyboard shortcut will not appear in the Keyboard Shortcuts dialog box.

Despite not appearing in the dialog box, hidden keyboard shortcuts can still be accessed via they keystrokes.

This attribute is only available in JIRA 4.2 and later.

Required: -

Default: false

Elements

Name

Description

order

A value that determines the order in which the shortcut appears on the Keyboard Shortcuts dialog box (with respect to other keyboard-shortcut plugin modules). This element is also used to override existing shortcuts displayed on the Keyboard Shortcuts dialog box (see Overriding Existing Keyboard Shortcuts).

For each keyboard-shortcut plugin module, we recommend using gaps in order values (for example, 10, 20, 30, etc.) rather than consecutive values. This will allow you to 'insert' new keyboard shortcuts more easily into the keyboard shortcuts dialog box.

Required: yes

description

A human-readable description of this keyboard shortcut module. May be specified as the value of this element for plain text or with the key attribute to use the value of a key from the i18n system.

Required: yes

shortcut

The sequence of keystrokes required to activate the keyboard shortcut's operation. These should be presented in the order that the keys are pressed on a keyboard. For example, gb represents a keyboard shortcut whose operation is activated after pressing 'g', followed by 'b' on the keyboard.

Required: yes

operation

A jQuery selector that specifies the target of the keyboard shortcut. The target is typically a component of the current page that performs an action. The operation element is accompanied by a type attribute that specifies the type of keyboard shortcut operation. For more information on the available types, please refer to the JIRA API documentation.

Required: yes

context

The section of the Keyboard Shortcuts dialog box on which the shortcut appears and defines where the keyboard shortcut can be used in JIRA. If this element contains:

  • global (or is omitted) -- the keyboard shortcut appears in the 'Global Shortcuts' section of this dialog box.
  • issueaction -- the keyboard shortcut appears in the 'Issue Actions' section of the dialog box.
  • issuenavigation -- the keyboard shortcut appears in the 'Navigating Issues' section of the dialog box.

Required: -

Overriding Existing Keyboard Shortcuts

This feature is only available in JIRA 4.2 and later.

You can override an existing keyboard shortcut defined either within JIRA itself or in another plugin.

To do this create a keyboard-shortcut plugin module with exactly the same shortcut element's keystroke sequence as that of the keyboard shortcut you want to override. Then, ensure that an order element is added, whose value is greater than that defined in the keyboard shortcut being overridden.

While the order element may affect the position of your overriding keyboard shortcut on the Keyboard Shortcuts dialog box, it will also prevent the overridden keyboard shortcut from:

  • being accessed via the keyboard and
  • appearing in the dialog box, on the proviso that you are overriding the keyboard shortcut within the same 'context' (i.e. with the same context element above).

Internationalization

It is possible to include an i18n resource in your atlassian-plugin.xml to translate keyboard shortcut descriptions (via their 'key' attributes) into multiple languages. For examples code on including i18n resources in your atlassian-plugin.xml file, refer to Downloadable Plugin Resources.

Examples

These examples are taken from JIRA's pre-defined keyboard shortcuts for going to the Dashboard, commenting on an issue and moving to the next action item on an issue view.

1
2
...
    <keyboard-shortcut key="goto.dashboard" i18n-name="admin.keyboard.shortcut.goto.dashboard.name"
                       name="Goto Dashboard">
        <order>10</order>
        <description key="admin.keyboard.shortcut.goto.dashboard.desc">Go to Dashboard</description>
        <shortcut>gd</shortcut>
        <operation type="followLink">#home_link</operation>
    </keyboard-shortcut>
...

...
    <keyboard-shortcut key="comment.issue" i18n-name="admin.keyboard.shortcut.commentissue.name"
                       name="Comment Issue"
                       state='enabled'>
        <order>80</order>
        <description key="admin.keyboard.shortcut.commentissue.desc">Scrolls to comment input and focuses it</description>
        <shortcut>m</shortcut>
        <operation type="click">#comment-issue</operation>
        <context>issueaction</context>
    </keyboard-shortcut>
...

...
    <keyboard-shortcut key="move.to.next.action.item" i18n-name="admin.keyboard.shortcut.movetonextactionitem.name"
                       name="Move to next action item"
                       state='enabled'>
        <order>110</order>
        <description key="admin.keyboard.shortcut.movetonextactionitem.desc">Moves to the next action item on view issue page</description>
        <shortcut>n</shortcut>
        <operation type="moveToNextItem">.issue-data-block:visible</operation>
        <context>issueaction</context>
    </keyboard-shortcut>
...

Rate this page: