Feat/favorite projects tasks#615
Open
bmestrallet wants to merge 7 commits into
Open
Conversation
Reuse the platform favorites framework: enrich Task/Project REST responses with a per-viewer favorite flag (FavoriteService) and add a site-wide favorite-extensions bundle that registers project/task in the top-bar Favorites drawer and adds a favorite-button toggle to the project card and task drawer 3-dots menus. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The 3-dots menu extensions must register in the same load-group as the task drawer (taskDrawerGrp), not FavoriteDrawerGRP, so they are present when the drawer/project cards render. Split menu registrations into a dedicated task-favorite-menu bundle; keep drawer-item registrations in favorite-extensions. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…pes in drawer - Menu rows now show 'Make it a favorite' / 'Remove from favorite'. - Make taskDrawer depend on taskFavoriteExtensions so favorite-type + favorite-drawer-item registrations execute on task pages, surfacing Projects and Tasks sections in the global Favorites drawer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add UITopBarFavoritesPortlet.types.project/.task to Portlets_en. - Use adjacent ranks 70/71 so Projects and Tasks group together. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…awer workaround Rename modules to TaskFavoriteDrawerExtension (FavoriteDrawerGRP) and taskFavoriteMenuTaskExtension (taskDrawerGrp) so eXo's includeExtensions() name-convention discovery runs them; remove the taskDrawer <depends> hack. Now lazy + global, identical to Documents/Notes/AI. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iewers) Inject the project favorite as an inline icon in the board header via the task-board-header extension point (TasksViewDashboard), alongside the AI icon when enabled. ProjectFavoriteBoardHeaderAction wraps favorite-button, registered symmetrically with AI's project-ask-ai-board-header-action. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On small screens (smAndDown) the inline favorite star in the project board header is hidden to declutter; favoriting stays available elsewhere. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
|
📌 Heads-up: these Task feature PRs were rebased onto Merge order (each PR's base is the one below it; GitHub auto-retargets to
Please review/merge in that order. I force-pushed #616 & #617 during the rebase, so prior local checkouts will have diverged and old review comments may be pinned to rewritten commits. #618 (18 task MCP tools) is independent, off Notes:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Favorites support for Task projects and tasks, reusing the platform favorites framework end to end:
No new REST/DAO/schema — favorites ride the generic
/v1/social/favoritesAPI, and the existingProjectAclPlugin/TaskAclPlugin(object typesproject/task) already gate access.How it works
favoriteflag onTaskDto(GET /tasks/{id}) and on the project JSON inProjectRestService.buildJsonProject, computed via socialFavoriteService.isFavorite(...).TaskRestService/ProjectRestServicegetFavoriteService(+IdentityManager) injected.$utils.includeExtensions), so they load lazily and behave exactly like the Notes/Documents/AI favorites:TaskFavoriteDrawerExtension(load-groupFavoriteDrawerGRP) → registers theproject/taskfavorite types + drawer-item components.taskFavoriteMenuTaskExtension(load-grouptaskDrawerGrp) → registers thetask-menu/task-project-menurows.UITopBarFavoritesPortlet.types.project/.taskshipped in the add-on'sPortlets_en.properties(merged into the social favorites bundle); only_enedited (Crowdin syncs the rest).Test
Verified live on a 7.2.x platform.
Notes
ProjectCardFrontv-if="project.canManage"), so non-managers favorite/unfavorite from the drawer.