Add new filtered search to issue boards [RUN ALL RSPEC] [RUN AS-IF-FOSS]
What does this MR do?
What this MR includes
- This MR adds the new gl-filtered-search to Project/Group Issue boards with ONLY the Author, Assignee, and Labels tokens. (note: this is behind the
:issue_boards_filter_search FF)
- It "abstracts" the store/url param logic to its own component board_filtered_search
Repro:
- Feature.enable(:epic_boards)
- Feature.enable(:boards_filtered_search)
- Feature.enable(:issue_boards_filtered_search)
- Go to group -> epic boards (functionality shouldnt change here)
- Go to group/project issue boards (notice the new filtered search with ONLY Author, Assignee, and Labels
Next steps
- We will need to add the remainder of the tokens supported in project/group issue boards (including issue types)
- Move shared param logic out into a scoped-slot (ie like a HOC, something like
with_board_filter_params
) so it can be reused in other places in the codebase and moved out of board_filtered_search.vue. Currently we have param logic in filtered_search_mixin and issues_list/utils. We should consider how we want to merge them for unified and reusable functionality.
Additional Considerations
- Splitting Project/Group query logic it has been agreed upon in slack to split the queries and namespace them instead of having the logic inside of the query (as we do in board_labels.query)..slack conversation
- I added the issue_board_filters function to be able to use in other areas where we will be using graphql to fetch tokens. This seemed like the best approach for now but open to suggestions
- We have all of the project path/group path and boardType logic coming from the store, i thought it would be better to add this as props and pass it down instead of doing the logic in the haml template but if we want to remove that and put it in
shared/issuable/_search.html.haml
thats totally fine with me -
shared/issuable/_search.html.haml
has A LOT of group and ee logic in there. I added another conditional to render the new filtered search for issue boards. However, I am going to make tickets on how to get this split up and moved into the board single app instead of mounting another application - Not all graphql queries are available for issue boards, which is a main reason we put this behind a feature flag
- Spoke with @gweaver and project/group path with graphql queries need to be revised and documentation needs to be updated..slack conversation
- A project should include all assets from the project -> parent group -> and subgroups
- A group should return values for its group and subgroups
Screenshots (strongly suggested)
Does this MR meet the acceptance criteria?
Conformity
-
I have included a changelog entry, or it's not needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides.
Availability and Testing
-
I have added/updated tests following the Testing Guide, or it's not needed. (Consider all test levels. See the Test Planning Process.) -
I have tested this MR in all supported browsers, or it's not needed. -
I have informed the Infrastructure department of a default or new setting change per definition of done, or it's not needed.
Security
Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Edited by Scott Stern