Work item panels

The Linker panel is an extra section on a work item that shows linked work items (or the results of a JQL query) as a proper table, with status colors, priority and type icons, and assignee photos. What the panel shows is defined by panel definitions: every one of them that covers the work item appears as its own titled section. Jira administrators build them on the Global panels page, and whoever administers a space can build panels for that space in the space's own settings, see Space panels.

Where the panel appears

  1. Open a work item and press the Apps button (the hexagon next to +) in the toolbar, then choose Linker.
  2. Make it permanent: open the panel's menu and choose Show for all work items: from then on the panel appears on every work item automatically.

The ⋯ menu also offers Collapse and Remove. Which sections the panel shows on a given work item is decided by your panel definitions' scopes.

The Global panels page

Site-wide panels are managed in one place: open Jira Settings (gear) → Apps → Linker → Global panels. Linker's admin area has three pages next to each other, Fields, Global panels and Space panels; the app's entry in the settings sidebar switches between them. A panel definition has four parts:

PartWhat it is
NameThe heading of the panel's section on the work item.
ScopeWhich spaces and work types the panel appears on. Leaving a list empty means all. Space entries show the space's avatar, so similar names are easy to tell apart. A field panel additionally appears only where its bound context applies (see Context below): the scope can narrow that further, never widen it.
ContentOne of three kinds: the work items selected in a Linker field; the native Jira links of one or more link types, each link type with its own direction (both, outward or inward); or the work items from a JQL query (no links), where the section simply shows every work item matching the query, like a saved search, with no links involved at all.
Context (field panels)A field panel is bound to one of the field's configuration contexts. The panel then follows that context live: wherever the context applies, the panel appears, including spaces added to the context later. A field with several contexts asks which one when the panel is created, and each field and context pair has one panel; creating it again from the field simply reuses the existing one. For a panel that should rely on its scope alone, the editor also offers All contexts (manual scope).
JQL filterFor field and link-type panels this is optional and narrows what the panel shows: only linked work items that also match the JQL appear, for example status != Done to hide finished work. For a JQL panel the same field is the query itself, and it is required. The editor checks the JQL while you type and shows a live match count, just like the field configuration's filter. Dynamic JQL works here too: currentIssue("…") placeholders resolve against the work item the panel is shown on, in field, link-type and pure JQL panels alike (for a dynamic query the editor still checks the syntax, but cannot show a live match count). Copy-paste examples are in the JQL guide.
Status changes (optional)With Allow status changes in this panel, the status column turns into a button that looks and behaves like Jira's own status control, so work moves on without leaving the page. Off by default. See Status changes in the panel below.
Inline editing (optional)With Let viewers edit cells in place, the cells of plain fields become editors: a click opens the editor right in the table and the change is written in the viewer's name. Off by default, and available on global panels and on the panels a space builds for itself. See Editing cells in the panel below.
Work items per pageHow many rows a section shows at first and how many each click on Show more adds (5, 10, 20 or 50). The counter next to the section name always shows the real total.
Allow linking from this panelOn by default. Off makes the panel read only: the add and remove buttons disappear, which suits overview panels whose links are managed elsewhere. When linking is on and the panel shows several link types, the add box offers a picker for the kind of link to create, with the direction spelled out. An optional list in the panel editor narrows which kinds are offered; empty means all of them.
Hide the column headers (optional)Renders the section's table without its header row; also available per field in the field configuration's Display section.
ColumnsThe columns of the table: the same choices as everywhere else in Linker, up to 10, drag to reorder. The Assignee, Priority and Type columns show only the icon, like Jira's own lists; each also offers an icon and name variant. A live preview below the blocks shows a sample row, taken from a real work item where possible and labeled with its key, the same preview as in the field configuration.
Viewers choose their own columns (optional)Lets every viewer assemble their own columns directly in the panel; the columns configured above are only the starting set. See Viewers choose their own columns below.

The list itself uses the same table pattern as the Fields page: a search box and filters (by content kind and by space) above it, and columns for Name, Source, Spaces, Work types and Display. The Display column sums up a panel's presentation in one line: how many columns, how many rows per page, plus tags such as read-only, viewer columns or Inline edit; JQL panels carry a JQL badge. Clicking the Name header sorts the view. Drag a row to reorder the panels: the list order is the order of the sections on the work items (reordering pauses while a filter or the sort is active). Each row ends in a ⋯ menu with Edit, Move up, Move down and Delete, which asks for confirmation first. And a collapsible Recent app activity section lists the app's latest actions: links created or removed, sync updates and resync runs.

Two combinations are easy to configure and awkward to live with, so the editor says so in place, as a quiet note under the setting rather than as a warning:

Creating a panel

There are three ways:

  1. From the Fields page: each field's menu offers Create a panel for this field. One click creates a panel named after the field, with its columns prefilled, bound to one of the field's contexts, so it follows that context's space and work-type coverage live. A field with several contexts asks which one the panel should follow, and a context that already has its panel simply gets that one back rather than a second copy. See The Fields page.
  2. Directly on the Global panels page: create a panel from scratch. Link-type panels, which show native links, and JQL panels, which show a query's results, are built here; neither needs a Linker field at all.
  3. In a space's own settings: whoever administers a space builds link-type and query panels for that space themselves, under Space settings → Apps → Linker Panels, without a Jira administrator. See Space panels and the summary below.

Panels a space builds for itself

A panel is not always a site-wide affair. Whoever holds Jira's Administer Projects permission on a space finds a Linker Panels page in that space's settings and builds the panels of that space there. Linker asks Jira for that permission on every write, so the page is not the gate, the permission is.

What the panel shows

The work item's single Linker panel shows every panel definition whose scope covers that work item, each as its own section headed by the panel's name. The global panels come first, in their configured order, then the panels bound to the space the work item lives in, in theirs; panels bound to another space never render here. See Space panels. A panel with several link types shows one list, each work item once, however many of the configured kinds connect it. Which link put a row there is the Link type column: the phrase as seen from the open work item, e.g. is client of, and several phrases on one row when the work item is linked more than once. There are no sub-headings per kind; they showed the same work items twice when two kinds overlapped and counted them twice. A JQL panel section lists every work item matching its query, with the same columns, lazy loading and counts as any other section, just without links behind it. A column that shows a Linker field is not a piece of text either: it renders the work items that field holds the way the field itself does on a work item, one line per referenced work item, with the built-in columns the field's context configured under Display. See Linker fields as columns below. A section that has no entries on this work item simply says “No linked work items.”

Each section heading shows a count of its entries, and clicking the heading collapses the section; your browser remembers which sections you keep collapsed. Long sections load lazily: they start with the section's configured Work items per page (10 unless changed) and a Show N more button; the count in the heading is always the real total.

A panel definition can also switch on Show a progress bar (share of work items in the Done category): a slim bar above the section that shows how much of the listed work has reached a status in Jira's Done status category. It goes by the status category, not by a resolution, so a work item counts as soon as its status is a Done one. The share is counted across all matching work items, not only the rows currently visible.

A link-type section without a JQL filter can page through all its links in chunks via Show more. With a JQL filter, the first 100 links are filtered and shown, with a note saying so. A JQL panel section works like the filtered case: it shows the first 100 matches, with a note.

The section menu and sorting

Every section carries a More actions menu (⋯) in its heading, with five entries that work on what the section holds:

The column headers of a section sort as well: a click sorts the loaded rows by that column, keys by their number, text columns alphabetically, empty cells last, and a second click reverses it. The sort lives as long as the page does; a reload starts from the configured order again.

None of this asks Jira for anything. The menu, the sorting, the filter, the export and the sums all run in the browser on the rows the section already has, so they cost no request and are instant.

Viewers choose their own columns

Normally everyone sees the columns configured in the panel definition. When a definition switches on Viewers choose their own columns, every viewer can assemble their own columns directly in the panel: a customize button appears in the section header and opens an inline editor. The current columns show as chips; the arrow buttons reorder them and the × removes one. An Add field select offers the built-in columns and any Jira field. Save stores the pick, and Reset to default returns to the configured columns.

The pick is personal: it is stored per person, so everyone else keeps their own view. The columns the admin configured are only the starting set for people who have not customized yet.

Permission-safe. On a panel whose field context searches as app, the rows can go past a viewer's own browse permission. There the editor offers only the built-in columns (key, summary, status, assignee, priority, type), so nobody can use their column pick to read fields past their own permissions.

Linking from the panel

Each section has a + button that opens the familiar Linker search, so people can link work items without leaving the panel:

The search respects the panel's optional JQL filter, on field panels in addition to the field's own picker filter. Any currentIssue("…") placeholders in those filters resolve against the work item the panel is on. And on a panel bound to a field whose context uses the single selection mode (One work item (new pick replaces)), picking a work item replaces the current value, just like in the field itself. A JQL panel has no linking actions at all: there are no links to manage, so its sections show neither the + nor the ×.

Removing works the same way: hover a row and click the ×; the panel always asks for confirmation before anything is deleted. Field panels then behave exactly like deselecting in the picker, so the configured delete behavior applies: a link someone created by hand is protected under Only delete links created by the app, and the panel says so if the entry may come back through sync. Link-type panels delete the native link itself, again in the person's name and so again requiring Link Issues. Which links a field panel may delete is a longer story, and a clone is the surprising case: see Which links the app will delete.

Status changes in the panel

A panel is often the place where somebody notices that a piece of work has moved on. With Allow status changes in this panel, they can say so right there instead of opening the work item.

The status column then stops being a label and becomes a button, coloured by status category exactly like Jira's own status control. Clicking it opens a menu of transitions, each written as the transition name followed by the status it leads to, in the same reading order Jira uses. Clicking the status does not open the row's work item, so the two actions never get in each other's way.

The column becomes a button only on the rows that person may actually move. Linker asks Jira for the Transition Issues permission per row, in one request for the whole panel, because the rows of a link-type panel routinely live in other spaces under other permission schemes. Where the permission is missing, the status stays the plain label it always was, so nobody is invited to click something that would only refuse them.

What the menu offers

The transitions are asked from Jira live, in the viewer's name, at the moment the menu is opened. So the menu shows exactly what that person would see on the work item itself: workflow conditions, validators and permissions all apply, and nothing has to be configured twice.

Running a transition

Choosing an entry runs the transition in the viewer's name, right there. A flag confirms it (“<KEY> is now <status>”), and the panel reloads completely afterwards, so the counts, the progress bar and any JQL filter that depends on the status are correct again immediately. A Linker field on the same page refreshes with it.

If Jira refuses, the panel says so and keeps Jira's own message, as “Transitions could not be loaded” or “The status could not be changed”. Those flags stay until they are dismissed, because a failed status change should not scroll away unseen.

Checked again on the way in. The transition itself runs in the viewer's name, so Jira enforces their permissions and the workflow either way. On top of that the app re-checks at the moment a transition is requested that the row really belongs to the section it was requested from. A request that skips the menu therefore gets no further than one that uses it.

Transitions that need a form

Some transitions ask for something on the way: a resolution, a comment, an assignee. Those cannot run silently, and the panel does not pretend otherwise. The entry says “Needs more information: opens Jira's form for this transition.”, and choosing it opens Jira's own transition screen in a new tab, already on the right transition. The person fills the form there and confirms, exactly as they would from the work item.

The panel does not learn when that happened, so it does not update on the spot: it picks the new status up on its next refresh, which happens when you come back to the tab, or automatically after a short while. See Limitations & timing.

Editing cells in the panel

A panel is often the place where somebody notices that a value is wrong, and correcting it should not mean opening the work item. Let viewers edit cells in place is a setting per panel, in the panel editor on the Global panels page and in a space's own Linker Panels page alike, so the decision belongs to whoever administers the panel, not to the viewer. It is off by default, and a panel that has it on carries an Inline edit badge in the admin list, so the list says at a glance where editing is allowed.

When it is on, clicking a cell of a plain field opens an editor right in the table:

Everything else stays the label it was. Selects, option fields, cascading fields and multi-value fields are read only, and so are the work type, the parent, the description and other rich text; the status has its own transition menu rather than an editor, because a status is not a value you type. Fields of other apps are read only too: an app cannot render another app's editor, and a guess at one would write the wrong thing.

Saving writes that one field, in the viewer's name. So Jira decides, exactly as it would on the work item itself, whether that person may edit it and whether the field is on that work item's edit screen; if Jira refuses, the panel shows Jira's own message rather than a message of its own. After a successful save the row is read again, so what you see afterwards is what Jira stored, not what you typed.

Reading costs nothing extra: editing adds no request while a panel is being displayed. A saved change is one call, and only when somebody actually saves.

One thing changes for the whole panel once editing is on: clicking a row no longer opens its work item. Navigating away in the middle of a correction is exactly what nobody wants, so the row click steps aside and lets the cells have the click. The key column still links, so the work item stays one click away wherever you want it, and panels without inline editing keep the row click exactly as it was.

Linker fields as columns

A Linker field can be a column like any other field, and its cell shows what the field shows on a work item: the referenced work items, one line each, drawn with the built-in columns the field's own context configured under Display, the key as a link, the summary, the status, the assignee, the priority and the type. Custom-field columns of the referenced work items are not repeated in the cell; they belong in the field's own table, not in a column of another table. Reading them costs one request per section, covering the referenced work items of all loaded rows together, at most 100 of them.

In a panel with inline editing, clicking such a cell opens Linker's own picker, the same one the field carries on a work item: the work items currently in the field as chips, and a search bounded by that field's JQL filter for that row, so currentIssue("…") placeholders resolve against the row's own work item rather than against the work item the panel sits on. Several picks at a time are possible, and a context in the single selection mode keeps the newest pick, as it does everywhere else.

Saving writes the field and the links exactly as the field's own editor does: links are created or removed and the counterpart fields are aligned, so nothing is left half-done. Keys that lie outside the filter stay in the value, are not linked, and are named in the flag, so nobody has to guess which one was left alone. The viewer must be allowed to edit the work item the row belongs to, as for any other edit in the panel, and the key is shown as plain text inside the editable cell, so that a click opens the editor instead of following a link.

Icons and avatars

The Assignee, Priority and Type columns are drawn with the same avatars and icons Jira uses, so a panel reads like a Jira list rather than like a copy of one. Each of the three can be configured as icon only or as icon and name.

Jira hands out standard icons to anyone, but the avatars a space uploaded itself only to a logged-in Jira session, and an app panel is not one. Linker deals with that quietly: when Jira refuses an icon, the panel fetches it once through Jira's API and embeds it, and if that fails too, the name takes over, which is the information the icon stood for anyway. So a work type may occasionally read Bug instead of showing its icon, and nothing is ever blank or broken.

The same columns exist in the field's own table and in the picker's suggestion rows, see the Configuration reference. There they fall back to the name straight away, without the extra fetch.

When a section cannot load

Sections are built one by one, and one of them failing no longer takes the page with it. Two things can happen, and both keep the rest of the panel usable:

When the cause is Jira limiting how many requests the app may make, the panel says in plain words that Jira is busy and that it will work again shortly, rather than showing an HTTP status code. See Limitations & timing.

Freshness

The panel keeps itself up to date on its own: details on Limitations & timing. The section menu, the column sorting, Only open work items, the CSV export and the sums change nothing about that: they work on the rows a section already holds and cost no request at all. Saving an inline edit is the one action there that talks to Jira, once per change.

Recipe: a links panel without a visible field

Want a rich, self-maintaining table of a work item's links, with no field involved at all? A link-type panel does exactly that:

  1. Open the Global panels page and create a new panel (in a single space, its Linker Panels page does the same job for that space).
  2. Choose native links as its content, pick the link types (and directions) you care about, then set the scope and columns.

Every work item in scope now shows those links as a table: status colors, icons, any Jira columns. (If you also want the links searchable with JQL, Jira's search language, you still need a Linker field; see the Configuration reference.)