feat(webapp): path-based tab routing, upload badges, badge filters, and sort-by-size#659
Merged
Conversation
4439fcb to
7c30d75
Compare
added 3 commits
March 1, 2026 22:04
Make the active tab and filter state in HomeView and AdminView URL-addressable via query parameters (?tab=, &user=, &sort=, &order=, &provider=, &admin=) to enable bookmarking, sharing, and browser back/forward navigation. Token filter values are intentionally excluded from URLs for security (they contain raw API tokens that would leak in browser history and Referer headers). - HomeView: ?tab=stats|uploads|tokens - AdminView: ?tab=stats|users|uploads with filter/sort params - Views use router.replace() + watch(route.query) for sync - lastRouteQuery dedup prevents double API calls - 8 new E2E tests for URL-based tab navigation - ARCHITECTURE.md updated with query param documentation
…sidebar Extract shared UploadBadges component showing one-shot, removable, stream, extend TTL, password, and e2e encryption badges on upload cards (Home/Admin views) and the download sidebar. - New UploadBadges.vue with size prop (sm for cards, md for sidebar) - DRY: replaces inline badges in DownloadSidebar.vue and UploadCard.vue - Color scheme: warning (one-shot), danger (removable), accent (stream/e2e), emerald (extend TTL), surface (password)
Add server-side filtering for upload badge settings (oneShot, removable, stream, extendTTL, password, e2ee) via query parameters on both /uploads (admin) and /me/uploads (user) endpoints. Backend: - Replace positional (userID, tokenStr) args with UploadFilters struct - Add applyUploadFilters() with explicit WHERE clauses (GORM ignores zero-value bools in struct conditions) - Add parseBoolFilter() helper for *bool query param parsing - Fix GetUploadsSortedBySize: INNER JOIN → LEFT JOIN + COALESCE so uploads without files appear with size 0 instead of being excluded Frontend: - Add badge filter toggle buttons in Admin and Home upload views - Full URL persistence: filters sync to query params, restored on mount, tab switch, and back/forward navigation - Use router.push() for filter toggles to enable browser history - Explicit === true checks for badge filter API params Tests: - Add TestBackend_GetUploadsSortedBySize_EmptyUploads (Go) - Add badge-filters.spec.js with 10 E2E tests covering filter visibility, matching, URL persistence, and back/forward navigation - Update existing tests to use UploadFilters struct Docs: - Update ARCHITECTURE.md with new filter query params - Update AGENTS.md with UploadFilters reference
e26d91a to
f56f69b
Compare
f56f69b to
960bc1a
Compare
…ponent - Backend: extract parseBadgeFilters() helper in misc.go (DRY admin.go & me.go) - Backend: add sort=size and CountUploads to /me/uploads endpoint - Frontend: create shared UploadControls.vue (sort/order/badge filters) - Frontend: integrate UploadControls in AdminView and HomeView - Frontend: add sort state, URL persistence, and API sort param to HomeView - Tests: add E2E tests for sort controls and direct URL filter restoration - Docs: update ARCHITECTURE.md and AGENTS.md
960bc1a to
5116d5b
Compare
Member
Author
|
docker deploy |
1 similar comment
Member
Author
|
docker deploy |
|
🚀 Deployment Successful! The instance at plik.root.gg has been redeployed with image |
added 3 commits
March 2, 2026 08:57
- webapp: getFileURL() returns /stream/ URLs when upload.stream is set - server: skip Content-Length for streaming downloads (size is stale for E2EE because encrypted blob > original file size) - e2e: add stream-e2ee.spec.js with full roundtrip test
4ae7f78 to
00fbaaa
Compare
Member
Author
|
docker deploy |
|
🚀 Deployment Successful! The instance at plik.root.gg has been redeployed with image |
Member
Author
|
docker deploy |
|
🚀 Deployment Successful! The instance at plik.root.gg has been redeployed with image |
Member
Author
|
docker deploy |
|
🚀 Deployment Successful! The instance at plik.root.gg has been redeployed with image |
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.
Description
What
New webapp features for upload management (badges, filters, sorting, URL state), plus UI polish and a critical bug fix for stream + E2EE downloads.
Why
Improve upload browsing in home/admin views with badge filters, sorting, and URL-synced state. Fix streaming + E2EE downloads which were completely broken (wrong endpoint + content-length mismatch).
Commits
b7116129feat(webapp): sync home/admin tab and filter state with URL query params2ca4c6a1feat(webapp): add upload setting badges to upload cards and download sidebar63f5cb86feat: add badge filter controls to upload listings5116d5befeat: add sort-by-size to home uploads with shared UploadControls componenta1c2b3bbchore(webapp): rename Source button to GitHub in header86bc63e8fix: stream + E2EE downloadgetFileURL()returns/stream/URLs whenupload.streamis setContent-Lengthfor streaming downloads (encrypted blob > original file size)stream-e2ee.spec.jswith full decrypt roundtrip test00fbaaa4chore: add /commit workflow and mandatory review gate to AGENTS.mdTesting