Skip to end of banner
Go to start of banner

Enhance your Jira dashboards with dynamic filters

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

This article focuses on another powerful feature of Rich Filters for Jira Dashboardsdynamic filters — which allow for fine-grained filtering of issues by individual values available in different fields. For example, you could filter for issues that have a particular assignee, status, or label.

Prerequisites

Final result for this tutorial

When you've worked through all the steps in this tutorial, you should have:

  • A Rich Filter Controller gadget with several dynamic filters that allow you to filter the issues displayed in other rich filter gadgets by individual values.
  • A Rich Filter Results gadget that displays the list of issues and thus allows you to see the effect of the filtering.


Controller gadget with dynamic filters, with medium priority and summary text LDAP filters active. Results gadget showing four filtered results.

Rich filter and dashboard basic setup

In this section, you'll set up a basic rich filter and dashboard to work with.

  1. If you've already worked through other tutorials in this series, you can base any gadgets you create while following this article on a previously-created rich filter. Check that you have one available to use (find existing rich filters under Apps > Rich Filters). If not, follow the instructions in Get started with Rich Filters for Jira Dashboards to create a new rich filter before continuing.
  2. Create a new dashboard (Dashboards > Create dashboard).
  3. Make sure it is using the Two columns layout. This is usually the default setting, but you can select it if required using the Change layout menu at the top of the dashboard.

    Newly created dashboard with Change layout option selected and two columns option highlighted

If you want a more detailed explanation of creating a new dashboard, see Create a simple dashboard.

Add dynamic filters to a Rich Filter Controller gadget

Dynamic filters allow for more granular filtering than static filters. Static filters take a JQL query as input and create a button in your controller that is used to toggle that query on and off. Dynamic filters on the other hand take a Jira field as input and create a control allowing you to filter by individual values available to that field.

Let's get you started by adding some dynamic filters to a Rich Filter Controller gadget.

  1. Add a Rich Filter Controller gadget to your dashboard and configure it to be based on your rich filter (Create a simple dashboard explains how to do this).
  2. Make sure your new gadget is in the left-hand column of your dashboard; drag and drop it if needed.
  3. Open your rich filter config (as described in Easier configuration with the Rich filter menu).
  4. Select the Dynamic Filters tab.

    Rich filter config showing dynamic filters tab selected with default view, no filters created

  5. Add a dynamic filter based on the Assignee field.
    1. Start typing "Assignee" into the Pick a field... text input.
    2. Select Assignee from the list of options presented to you.
    3. An Assignee dynamic filter will appear above the text input.

      Dynamic filters config with a single dynamic filter created for assignee

  6. In the same way as before, add dynamic filters based on the Priority, Status, Labels, and Resolution fields.

    Dynamic filters config with dynamic filters created for assignee, priority, status, labels, and resolution

  7. Go back to your dashboard and refresh it; you should now see the dynamic filters on your controller.

    Controller gadget showing dynamic filters with no filters currently selected

Filter the issues in a Rich Filter Results gadget

Now we've got a controller with some dynamic filters, we need another gadget to filter. Let's add a Rich Filter Results gadget to our dashboard and see what effect the filters have on it.

  1. Add a Rich Filter Results gadget to your dashboard.
  2. Make sure your new gadget is in the right-hand column of your dashboard; drag and drop it if needed.
  3. Make sure Rich filter is set to the same rich filter as your controller in the gadget config form, then click Submit.
  4. Try clicking some of the dynamic filters in the controller, selecting a few values, clicking Apply filters, and seeing how the list of issues displayed in your Rich Filter Results gadget changes based on your selections. Note also how the dynamic filters display a number to tell you how many values you have selected inside each one.

    Controller gadget showing dynamic filters with priority values of highest and high already selected, and status values of accepted and in progress being selected

    Unlike static filters, where changes are applied automatically when they are toggled on or off, dynamic filter changes aren't applied to your dashboard until you click the Apply filters button that appears in the controller when changes have been made.

    This is because dynamic filter settings usually involve selecting several options; the controller allows you to wait until you are happy with your filter selections before applying them.

    Unlike static filters, where changes are applied automatically when they are toggled on or off, dynamic filter changes aren't applied to your dashboard until you click the Apply filters button that appears in the controller when changes have been made.

    This is because dynamic filter settings usually involve selecting several options; the controller allows you to wait until you are happy with your filter selections before applying them.

  5. Clear the filters by clicking the X button in the bottom-right corner of the controller.

    Controller with filters, with the X button in the bottom right corner highlighted, showing a tooltip of click to clear all quick filters
    It's also worth knowing that, once a selection or value has been chosen in a dynamic filter, you can clear the individual selection by clicking the x button that appears on the right-hand side of the filter when the pointer hovers over the number of selections.

If you select multiple options inside a single dynamic filter, the issues displayed will match any of the selected values (i.e. the values are ORed) by default, although you can choose to change that behavior to NOT (match all values but the selected ones) and AND (match issues which have all the selected values at the same time) where appropriate, using the control buttons in the filter dropdown menu.


Searching and range selection of filter options

Before moving on, you should be aware of two more power-user features that can enhance your usage of dynamic filters (and smart filters — see Use custom smart filters and smart columns on your dashboard for more information on those).

First, when you click into a dynamic or smart filter, in addition to displaying the available options the filter box becomes a text field into which you can type search terms to filter those options. This is really useful if you have a filter that contains a large number of options, and you want to focus on a smaller group that interests you.

Second, you can Shift + click the displayed options to select or deselect a range of options:

  • Shift + click the bottom option in the list to select all options.
  • Click to select one option, then Shift + click another option further up or down the list to select both those options, and all options in between then.
  • The above functionality also works in reverse: you can Shift + click to deselect existing selected ranges.

Search and range selection are powerful in combination — you can filter the displayed options down to a subset that interests you and then select all of them with one click.

Search and range selection is powerful in combination — you can filter the displayed options down to a subset that interests you and then select all of them with one click.

Other dynamic filter types

The dynamic filters you've seen so far are option dynamic filters. There are four different types of dynamic filter control available in total; which type is created depends on the type of data stored in the chosen field:

  • Option dynamic filters result from fields that can contain a finite number of specific values (such as Assignee, Status, Labels, or custom select fields), and take the form of a dropdown menu containing a checkbox for each value, allowing you to filter by one or more of them.
  • Date dynamic filters result from fields that can contain a date/datetime value (such as Created or Due Date), and take the form of a date picker allowing you to filter for dates before or after a specified date, or between two dates.
  • Text dynamic filters result from free text fields (such as Summary or Description), and take the form of a text input allowing you to type in a text search query to filter by.
  • Number dynamic filters result from numeric fields (such as Story Points), and take the form of a text input allowing you to type in a numeric search query to filter by.

In this section, you'll make your controller more powerful by adding a dynamic filter for each of the types you've not already used.

Add a date dynamic filter

  1. Open your rich filter config and select the Dynamic Filters tab.
  2. Add a dynamic filter based on the Created field (or another appropriate date/datetime field).
  3. Return to your dashboard, refresh it, and play with your new dynamic filter to see how it updates the listed issues.

    Controller gadget with dynamic filters, with date filter highlighted, showing value of December 1 2022 entered into the from field

  4. Clear all the filters by clicking the X button in the bottom-right corner of the controller.


The selected date values are inclusive, meaning that they are included in the filter range.


 Advanced syntax details about date dynamic filters:
  • If only a From date is entered, the filter matches issues on or after that date.
  • If only a To date is entered, the filter matches issues on or before that date.
  • If From and To dates are entered, the filter matches issues between those two dates.
  • You can enter date values in several different ways:
    • Select a day from the date picker that appears when you click the From or To fields.
    • Directly as a calendar date (e.g. "yyyy/MM/dd" or "yyyy-MM-dd")
    • Directly as relative time notation (e.g. "5d" meaning "5 days after now", or "-4w 2d" meaning "4 weeks and two days before now").
      • If you want to use now as a value in From or To, enter "0d".

Add a text dynamic filter

  1. Open your rich filter config and select the Dynamic Filters tab.
  2. Add a dynamic filter based on the Summary field (or another appropriate text field).
  3. Return to your dashboard, refresh it, and play with your new dynamic filter to see how it updates the listed issues.

    Controller gadget with dynamic filters, with text filter highlighted, showing value of LDAP entered

  4. Clear all the filters by clicking the X button in the bottom-right corner of the controller.


 Advanced syntax details about text dynamic filters:
  • Jira has two different text searchers, one for exact string search and one for full-text search. Each dynamic filter will use the searcher associated with the underlying field.
  • Advanced full-text search features such as wildcard searches and Boolean operators are supported – see Jira's Search syntax for text fields documentation for the required syntax.
  • Jira has two different text searchers, one for exact string search and one for full-text search. Each dynamic filter will use the searcher associated with the underlying field.
  • Advanced full-text search features such as wildcard searches

Add a number dynamic filter

  1. Open your rich filter config and select the Dynamic Filters tab.
  2. Add a dynamic filter based on an appropriate numeric field such as Story Points.
  3. Return to your dashboard, refresh it, and play with your new dynamic filter to see how it updates the listed issues.

    Controller gadget with dynamic filters, with number filter highlighted, showing value of 1 entered

  4. Clear all the filters by clicking the X button in the bottom-right corner of the controller.


 Advanced syntax details about number dynamic filters:
  • You can enter numeric filter terms in several different ways:
    • Enter one or several space-separated values, e.g. enter "1 2 3" to filter for the values 1, 2, or 3.

    • The comparison operators "<", ">", "<=", and ">=" are accepted, e.g. enter ">=1" to filter for values greater than or equal to 1.
    • Use the form "a:b" to filter for a range of values, e.g. enter "1:10" to filter for values between 1 and 10.
    • Enter "empty" to filter for issues where this field is empty, or "!empty" to filter for issues where this field is not empty.
  • You can enter numeric filter terms in several different ways:
    • Enter one or several space-separated values, e.g. enter "1 2 3" to filter for the values 1, 2, or 3.

    • The comparison operators "<", ">", "<=", and ">=" are accepted, e.g. enter ">=1" to filter for values greater than or equal to 1.
    • Use the form "a:b" to filter for a range of values, e.g. enter "1:10" to filter for values between 1 and 10.
    • Enter "empty" to filter for issues where this field is empty, or "!empty" to filter for issues where this field is not empty.

For more information on each of the dynamic filter types, see our Dynamic Filter Types reference documentation.

For more information on each of the dynamic filter types, see our Dynamic Filter Types reference documentation.

Final result

Your final result should look like this:


Controller gadget with dynamic filters, with medium priority and summary text LDAP filters active. Results gadget showing four filtered results.

Next steps

You are advised to work through the Fundamentals articles in order, but each one works as a standalone topic, so you can jump to specific topics of interest if that suits you better.

You can use the rich filter you created in this article as a starting point for other tutorials. 

  • No labels