# Feature DREAM-101 - Add filter labels to current filter box 

Project: Stream Design System
Status: specified
URL: https://community.openproject.org/work_packages/DREAM-101

## Planning

| Attribute | Value |
| --- | --- |
| Date |  |
| Priority | Medium |
| Target versions | Product Backlog |
| Sprint |  |
| Backlog bucket |  |
| Votes |  |
| List |  |
| Roadmap |  |
| Relevance |  |

## OPEN POINTS / FEEDBACK

_No work packages_

## Features and Chunks

_No work packages_

## Bugs and other work packages

_No work packages_

## Technical Details

| Attribute | Value |
| --- | --- |
| Module | Frontend components and Primer design system |
| Feature Flag |  |
| Requires doc change | No |
| Enterprise plan |  |

## Details

| Attribute | Value |
| --- | --- |
| Pull preview |  |
| Mockups |  |
| Accessibility | No |

## People

| Attribute | Value |
| --- | --- |
| Assignee |  |
| Accountable |  |
| Product manager |  |
| Developers |  |
| Designer | Marc Alcobé |
| Ordered by |  |
| Signed off by |  |
| Interest by |  |

## Estimates and progress

| Attribute | Value |
| --- | --- |
| PD (min) |  |
| PD (max) |  |
| Work |  |
| Labor costs |  |

## Description

**As** a user  
**I want to** easily see what filters has been applied to the view I'm currently working on  
**so that** I don't need to open the filter box to see the filter criteria

### Note

This is a first step to redesign and improve the current filter UX and UI. See full concepts [here](https://www.figma.com/design/tUkyiLDn5ax7Q9DAhxlS69/Sub-headers-concept?node-id=0-1).

### **Acceptance criteria**

  - Implement bellow the filter button a new line inside of the SubHeaders component an **Active filters** label visualisation.

  - Display in the **Active filters** the filters applied to the view through the filter box. Display them using Primer dismissible labels.

  - If the filter apply only has an on off status the label should represent the status of that switch (eg. Active in Project lists).

  - If the filter has a multiple option:
    
      - Only one option is selected, display the option (eg. BUG in work packages)
    
      - Multiple options are selected, display the name of the filter with the amount of options selected (eg. 5 types in work packages)

  - When a user removes a filter label the filter is removed from the filter criteria and the page enters an "unsaved" status.

  - When a user clicks on the label (not in the "X") this opens the filter box. **TBD**

  - Hide the full **Active filters** row in mobile.

  - As we can't control the amount of filter criteria that our users have in their instance the following logic for each module will apply:

<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Module</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Filters displayed as individual labels</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Filters displayed as Advanced filters</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project lists</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Active</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Favorite</p></li><li class="op-uc-list--item"><p class=" op-uc-p">I am member</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Project status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Public</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Type</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">All other attributes (including custom)</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Work packages lists</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Assignee</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Type</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Author</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">All other fields (including custom)</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Meetings index</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Time</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Invited user</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Attended user</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Author</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">No advanced filters</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Gantt charts</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Assignee</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Type</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Author</p></li><li class="op-uc-list--item"><p class=" op-uc-p">End date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Finish date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Duration</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">All other fields (including custom)</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Calendars</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Assignee</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Type</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Author</p></li><li class="op-uc-list--item"><p class=" op-uc-p">End date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Finish date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Duration</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">All other fields (including custom)</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Team planners</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Assignee</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Type</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Author</p></li><li class="op-uc-list--item"><p class=" op-uc-p">End date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Finish date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Duration</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">All other fields (including custom)</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Boards</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Assignee</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Type</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Author</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">All other fields (including custom)</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Members</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Group</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Role</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Work package shares</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">No advanced filters</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Administration settings &gt; Users and permissions &gt; Users</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Status</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Group</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">No advanced filters</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Administration settings &gt;Time and costs &gt; Cost types</p></td><td class="op-uc-table--cell"><ul class="op-uc-list"><li class="op-uc-list--item"><p class=" op-uc-p">Fixed date</p></li><li class="op-uc-list--item"><p class=" op-uc-p">Show locked types</p></li></ul></td><td class="op-uc-table--cell"><p class="op-uc-p">No advanced filters</p></td></tr></tbody></table></figure>

### Figma and visuals

<https://www.figma.com/design/tUkyiLDn5ax7Q9DAhxlS69/Sub-headers-concept?node-id=578-52494>
