Open techknowlogick opened 1 year ago
This seems to be a duplkcate of https://github.com/go-gitea/gitea/issues/14670 ?
Grouping cards by a certain property to display them visually distinct in Swimlanes seems to be a different, but related idea than not displaying cards that do not match the filter.
The present PR in #27117, which supersedes #21963, seems to address the filtering case as expected and is currently undergoing review.
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.![image](https://user-images.githubusercontent.com/164197/202364148-65c82487-e2ef-48d0-a13f-f7de93eeae51.png)
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.