> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Customization

> Common questions about customizing the appearance and behavior of Nextedy PLANNINGBOARD — swimlane layout, card display, widget parameters, and board configuration options.

***

## Swimlane configuration

### What swimlane assignment types are available?

Planningboard supports several **Assignment Types** in the **Swimlanes (Rows)** section of the Widget Parameters panel: **Users (Assignee)**, **Parent Item**, **Enumeration Field**, **Project**, SAFe-specific types (**Program / Solution Teams**, **Agile Release Train Teams**, **Programs**), and **No Swimlanes**. Each type changes how board rows are structured and what information they represent. See [Swimlanes FAQ](/planningboard/faq/swimlanes) for details on each type.

### How do I group swimlanes by a custom field instead of by assignee?

Select **Enumeration Field** as the Assignment Type and set the **Field ID** to the identifier of your custom enumeration field (for example, `team`). Optionally use the **Rows Filter** to restrict which enum values appear as rows. Note that `status`, `resolution`, and `type` fields are not supported in this mode — only custom enumeration fields.

### Can I filter swimlane rows using Polarion page parameters?

No — Planningboard swimlane configuration does not support Polarion page parameters (such as `$pageParameters.xxx`) for dynamic row filtering. If you need per-team boards, the recommended workaround is to create a separate Planningboard page per team, configured with a static swimlane filter or link role for that team.

<Warning title="Custom Team WI types not supported in swimlanes">
  Planningboard swimlane configuration does not support custom Team work item types. If your project uses a custom Team WI type (not Nextedy's standard Team WI with its required custom fields), consider using Nextedy Gantt (25.5.0+) as the primary planning tool, which does support custom team types.
</Warning>

### Can I sort parent swimlanes by priority or a custom property?

Yes — as of Planningboard 25.9.0, parent swimlanes can be sorted by any custom property, including priority. Set the **Sort By** field in the Parent Item assignment type configuration to the desired property. Earlier versions did not support custom property sorting for parent swimlanes.

***

## Card display

### Which fields appear on a card by default?

Cards display the work item ID and title by default (identified by `aria-label` attributes containing the work item ID and title). To configure which fields appear in the **sidebar** when a card is clicked, use the **Sidebar Fields** widget parameter (`PARAMETER_SIDEBAR_FIELDS`). The default sidebar fields are `title`, `status`, and `plannedIn`.

### How do I control which work items appear on the board?

Use the **Query** widget parameter to provide a Lucene query that filters which work items are loaded. You can also use **Work Item Type** (`wiType`) to restrict by type (for example, `task`, `story`, or `feature`), and set **Max Items** (`maxItems`, default 1000) to cap the number of items loaded. Enable **Add Planned** to include all already-planned items in addition to those selected by the query.

### How do I configure dependency arrows between cards?

Set the **Dependency Roles** widget parameter (`PARAMETER_DEPENDENCY_LINK_ROLE`) to the link role IDs that represent dependencies in your project. The board will then draw dependency indicators between cards that share those link roles.

***

## Plans (columns)

### How do I control which Plans appear as columns?

Use the **Plans** widget parameter to define which plans appear as columns, and the **Plans Type** (`plansMode`) to select the plan mode — for example, **Project Plans** (`PROJECT_PLANS`) for standard project plans. You can also set **Show # of last plans** (`lastPlans`, default 1) and **Show # of next plans** (`nextPlans`, default 5) to control how many past and upcoming plans are displayed. Use the **Plans Query** (`plansQuery`) parameter with a Lucene query to filter plans further.

### Can I add a link to an external report from a Plan column header?

Yes — use the **Report Link** parameter in the Plans (Columns) section. The link supports `${plan.*}` variables, for example:

```
/polarion/#/project/${plan.objectId.projectId}/wiki/SOME_REPORT?plan=${plan.objectId.itemId}
```

Similarly, swimlane labels also support a **Report Link** parameterised by the swimlane resource, for example:

```
/polarion/#/project/PlanningBoard/wiki/SOME_REPORT?user=${r.objectId.itemId}
```

### What does "Assign to Parent Plan" do?

When **Assign to Parent Plan** is enabled, dropping a work item into a plan also automatically plans it into that plan's parent Plan. This is useful in hierarchical planning (for example, assigning an item to an iteration automatically adds it to the parent version). When disabled, the item is planned only in the selected iteration.

***

## Board behavior

### How does drag and drop behave, and when is it blocked?

Licensed users can drag cards between swimlanes and plans; changes are persisted to the board. Unlicensed users can view the board but drag-and-drop operations are blocked — cards return to their original position. Drag is also blocked in prioritize mode and read-only mode.

Holding **Alt** while dragging creates a duplicate assignment to another resource (multi-resource assignment) instead of moving the card. Alt-drag to the **Not Assigned/Other** swimlane is not permitted, and duplicating from **Not Assigned/Other** automatically removes the **Not Assigned/Other** assignment.

<Tip title="Parent Item swimlanes constrain drag targets">
  When using the **Parent Item** assignment type, cards can only be dropped under their actual parent's swimlane. Dropping a card onto a different parent's row will automatically move the card to the correct parent swimlane.
</Tip>

### What sort order is used for cards within a swimlane?

Cards within each swimlane are sorted by: (1) resource name, (2) start date, (3) priority or custom sort field (if configured), and (4) work item ID as a tiebreaker. Configure the sort field using the **Sort by** widget parameter.

### How do I configure unplanned items in the sidebar?

Enable the **Unplanned Sidebar** in widget parameters to show work items that have not been planned into any column. Use `PARAMETER_US_DEPTH` to control how many levels of parent work items are loaded in the sidebar hierarchy (deeper hierarchies have performance implications). Set `PARAMETER_PARENTS_LINK_ROLE` to specify which link roles define parent-child relationships for building the hierarchy.

***

## Configuration overview

The table below summarizes the key widget parameters for customizing Planningboard behavior:

| Parameter        | Description                                                            | Default         |
| ---------------- | ---------------------------------------------------------------------- | --------------- |
| `query`          | Lucene query to filter work items displayed                            | `NOT *:*`       |
| `plansMode`      | Plan organization mode (`PROJECT_PLANS`, SAFe modes, etc.)             | `PROJECT_PLANS` |
| `assignmentMode` | Swimlane grouping mode (`ASSIGNEE`, `ENUM`, `PARENT`, `PROJECT`, SAFe) | `ASSIGNEE`      |
| `enumFieldId`    | Custom field ID for swimlanes when `assignmentMode` is `ENUM`          | —               |
| `wiType`         | Work item type filter (e.g. `task`, `story`, `feature`)                | —               |
| `maxItems`       | Maximum work items to load                                             | `1000`          |
| `lastPlans`      | Number of past plans to display                                        | `1`             |
| `nextPlans`      | Number of upcoming plans to display                                    | `5`             |
| `capacityLoad`   | Enable per-plan capacity bar                                           | `false`         |
| `hoursPerDay`    | Working hours per day for capacity calculations                        | `8`             |

For a full parameter reference, see [Configuration FAQ](/planningboard/faq/configuration).

***

## SAFe-specific customization

### The configuration panel looks different when I select a SAFe Plans Type — why?

The widget parameter UI adapts based on the selected **Plans Type**. Selecting **Project Plans** (`PROJECT_PLANS`) shows the standard Scope/Query/Type fields and the plan items configuration section. Selecting a SAFe mode (for example, SAFe Program Increments) shows different fields — including the SAFe PI increment selector — and hides project-plan-specific options. This is by design: each mode surfaces only the relevant configuration for that planning level.

### Which SAFe swimlane types require additional setup?

The SAFe-specific swimlane assignment types (**Program / Solution Teams**, **Agile Release Train Teams**, **Programs**) require a Polarion SAFe Solution to be configured on your instance. Contact Nextedy support for setup guidance if your organization uses SAFe and you need these swimlane options enabled. See also [SAFe Integration FAQ](/planningboard/faq/safe).

***

*For questions about capacity configuration, see [Capacity FAQ](/planningboard/faq/capacity). For swimlane-specific questions, see [Swimlanes FAQ](/planningboard/faq/swimlanes).*

<Accordion title="Sources">
  **KB Articles**

  * Swimlane Assignment Types
  * Planningboard Widget Parameters
  * Planningboard: Customizable Statistics and Capacity Indicators

  **Support Tickets**

  * [#5879](https://support.nextedy.com/helpdesk/tickets/5879)
  * [#6681](https://support.nextedy.com/helpdesk/tickets/6681)
  * [#6546](https://support.nextedy.com/helpdesk/tickets/6546)

  **Source Code**

  * `Config.java`
  * `licenseReadonly.cy.ts`
  * `PlanningBoardWidget.java`
  * `PlanningBoardWidgetDependenciesProcessor.java`
  * `PlanningBoardWidgetRenderer.java`
</Accordion>
