feat: project-wide bookmark manager with a -/bookmarks tab and home page section - #9863
Open
nishantmonu51 wants to merge 2 commits into
Open
feat: project-wide bookmark manager with a -/bookmarks tab and home page section#9863nishantmonu51 wants to merge 2 commits into
-/bookmarks tab and home page section#9863nishantmonu51 wants to merge 2 commits into
Conversation
Bookmarks were only reachable from a single dashboard's dropdown. This adds a Bookmarks section on the project home page and a `-/bookmarks` tab that list every bookmark the user can see across dashboards, with search, sorting and open, edit and delete actions. Backend: - `ListBookmarks` treats resource kind and name as optional filters, so an empty request returns all bookmarks in the project visible to the caller. - The handler now requires read access to the project and rejects a resource name without a kind. - Rows are returned ordered by name, and `UpdateBookmark` bumps `updated_on`. Frontend: - Home page section mirrors the Dashboards section: 5-row preview, sort dropdown in the heading on its own `bookmarks_sort` URL param, and a "See all bookmarks" link. Hidden for anonymous viewers. - New `-/bookmarks` page and tab with the shared table toolbar. - Sort by last used (tracked per browser like dashboards), last updated, name or dashboard. Rows show dashboard, category chips, update and usage times. - Owners and bookmark managers get hover edit (metadata dialog) and delete (with confirmation) actions. - All bookmark mutations invalidate every bookmark query so the dropdown and the manager stay in sync. - `UrlParamsState.createStringParam` is typed as non-nullable, which also removes pre-existing type errors in the dashboards listing.
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.
Bookmarks were only reachable from a single dashboard's dropdown, so there was no way to find a bookmark across dashboards or manage a long list of them. This adds a bookmark manager that follows the Dashboards listing UX.
bookmarks_sortURL param so it does not collide with the dashboards sort), and a "See all bookmarks" link. It is hidden for anonymous viewers of public projects.-/bookmarkstab and page lists every bookmark the user can see across dashboards, with the shared table toolbar for search and sort.BookmarkMetadataDialog) and to delete with a confirmation.ListBookmarksnow treats resource kind and name as optional filters, requires read access to the project, and returns rows ordered by name;UpdateBookmarkbumpsupdated_on. Same response shape, so the existing dropdown callers are unchanged. Covered byadmin/server/bookmarks_test.go.UrlParamsState.createStringParamis typed as non-nullable, which also removes pre-existing type errors in the dashboards listing.web-admin/tests/bookmarks-manager.spec.ts; unit tests inbookmark-listing-utils.spec.ts.Tags on bookmarks are a follow-up; the slot next to the sort dropdown is left for the tag filter.
Checklist: