Repository navigation
feat: add favorite functionality for teams - #2963
Conversation
409f74d to
d578b7e
Compare
09ed404 to
956839c
Compare
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Team-page favoriting is incomplete, and filtered ordering plus accessibility issues can produce incorrect or inaccessible behavior.
Review effort: Balanced
Findings: 5
Open (6)
Expose favorite state to screen readers · New Avoid duplicate team links and keyboard stops · New Show favorite state for the current team avatars · New Add favorite action for the current team · New Disable favorite sorting while a search query is active · New Include TeamCard.spec.ts in the focused test command · New
What changed in this PR
Adds persistent, ordered team favorites across the backend, home view, and team switcher.
Changes:
- Adds favorite APIs, storage, locking, cleanup, and ordering.
- Adds favorite controls, drag-and-drop ordering, and switcher indicators.
- Adds frontend/backend tests and testing documentation.
| File | Description |
|---|---|
tests/unit/lib/Service/TeamFavoriteServiceTest.php |
Tests service ordering and locking. |
tests/unit/lib/Db/TeamFavoriteRequestTest.php |
Tests favorite persistence and access filtering. |
TESTING.md |
Documents favorite regression tests. |
src/teams/views/HomeView.vue |
Adds favorite sections and ordering controls. |
src/teams/views/HomeView.spec.ts |
Tests drag-and-drop behavior. |
src/teams/types.ts |
Adds favorite metadata to teams. |
src/teams/store.ts |
Manages favorite state and mutations. |
src/teams/store.spec.ts |
Tests favorite store behavior. |
src/teams/components/TeamHeader.vue |
Prioritizes favorites in the switcher. |
src/teams/components/TeamCard.vue |
Adds favorite and ordering actions. |
src/teams/components/TeamCard.spec.ts |
Tests card actions and dragging. |
src/teams/components/TeamAvatar.vue |
Adds the favorite star indicator. |
src/teams/api.ts |
Adds favorite API integration. |
src/teams/api.spec.ts |
Tests favorite API requests. |
REUSE.toml |
Adds licensing annotations for tests. |
lib/Service/TeamFavoriteService.php |
Implements favorite business logic. |
lib/Migration/Version20260922120000.php |
Creates the favorites table. |
lib/Listeners/UserDeleted.php |
Cleans favorites after user deletion. |
lib/Db/TeamFavoriteRequest.php |
Implements favorite database operations. |
lib/Db/CoreRequestBuilder.php |
Registers favorite table metadata. |
lib/Db/CircleRequest.php |
Cleans favorites after team deletion. |
lib/Controller/TeamFavoritesController.php |
Exposes favorite endpoints. |
appinfo/routes.php |
Registers favorite routes. |
appinfo/info.xml |
Bumps the app version. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| PHP tests (PHPUnit, Psalm) live under `tests/` and are documented separately. | ||
|
|
||
| ## Favorite teams regression tests |
There was a problem hiding this comment.
This is too specific and can be removed.
Assisted-by: GitHub Copilot GPT-5.6 Terra Assisted-by: GitHub Copilot GPT-6 Astra Signed-off-by: Fin Clausen <Fin.Clausen@dataport.de>
Signed-off-by: Fin Clausen <Fin.Clausen@dataport.de>
8d8e6a4 to
7c4424a
Compare
931c22d to
422f167
Compare
Assisted-by: GitHub Copilot Claude Opus 5.5 Assisted-by: GitHub Copilot GPT-5.6 Luna Signed-off-by: Fin Clausen <Fin.Clausen@dataport.de>
…osition Assisted-by: GitHub Copilot Claude Opus 5.5 Assisted-by: GitHub Copilot GPT-5.6 Luna Signed-off-by: Fin Clausen <Fin.Clausen@dataport.de>
422f167 to
8ff4842
Compare
| @@ -0,0 +1,63 @@ | |||
| <?php | |||
There was a problem hiding this comment.
nit: naming convention for migrations is Version{appVersion}Date{timestamp}. Not a big deal for this migration since it creates a new table, but might be a problem if a future migration alters the table. Not blocking though :)
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |


Add ability to favourite teams
#2904
Summary
Add personal team favorites with persistent ordering.
switcher with a star indicator.
TODO
Checklist
3. to review, feature component)stable32)AI (if applicable)