Project board card filtering #21846
Labels
topic/projects
type/feature
Completely new functionality. Can only be merged if feature freeze is not active.
type/proposal
The new feature has not been accepted yet but needs to be discussed first.
Feature Description
As a developer of a large software project I’d like to be able to filter project boards to see the status of tickets that are relevant to my contribution area. A real life example would be: If we had a project board for a specific Gitea release, and my area of focus was the project board feature, I could use this filtering to track the status of tickets for the project board with still being able to have an overall board that a release manager would be able to have a fuller view.
Screenshots
Mockups of what this might look like are:
By default all issues would appear on the project board, however if you’d like to only have issues with a specific label (or multiple labels) you could either click on the label attached to the card, or use the multi-select dropdown. Once a label (or multiple labels) has been selected, then only the issues with those labels would show (as seen in the second screenshot).
In Gitea currently, this filtering exists on the issue/pr list pages, and generates a URL that can be shared to show others the filtered view (or bookmarked for quick access).
Other implementations:
In GitHub's project boards, they have a search box that allows for the same filtering that they have on the issues/pr list.
You can read more about their filters here:
https://docs.github.com/en/github-ae@latest/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/filtering-cards-on-a-project-board
JIRA also has filtering based on a query language for their project boards
Implementation Details
The filtering for issues would be in the
ViewProject
function (https://github.com/go-gitea/gitea/blob/main/routers/web/repo/projects.go#L275), and the filtering concept could be taken from https://github.com/go-gitea/gitea/blob/main/routers/web/repo/issue.go#L263There is a difficulty though, when items on the board are moved, they send a request to the "move" endpoint, and that request contains the sort and location of each issue in the board, but if the server side filtering is applied, then the issues that are filtered out wouldn't be included. A quick/naive way to address this, would be to apply the filtering client side.
The text was updated successfully, but these errors were encountered: