Repository navigation
feat(ui): restyle admin and moderation (redesign step 5/6) - #69
Merged
Merged
Conversation
- theme tokens as CSS variables: light, dark, or follow the system, chosen per user (cookie, applied during SSR so there is no flash) - meaningful colors: green for upload/seed, amber for download/leech, violet for freeleech; contrast inks keep existing controls legible in both themes - self-hosted IBM Plex Sans and Mono (Google Fonts was blocked by the CSP, so the app silently fell back to system fonts) - app shell: grouped sidebar (browse, community, account, staff), top bar with a transfer meter, freeleech pill and account menu (passkey copy, points, theme, language) - command palette (Cmd/Ctrl+K or /): search torrents and jump to pages - mobile navigation drawer, skip link, visible focus, reduced motion - dialog overlays stay dark in both themes; fix icons collapsed to zero width by an inline class Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- greeting, account strip (ratio with upload/download, seeding and leeching counts, bonus points, hit & runs), staff note, new torrents, open bounties and latest forum topics, from a single /api/dashboard request - track per-user seeding/leeching torrents in Redis on announce - show the admin welcome message, which was editable but never displayed - transfer meter reads live upload/download (the sealed session only held the values from sign-in) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- one conversation per pair of members, unread badge in the sidebar, messages page with conversation list and thread, start a conversation from a profile or by username - block a member (they can no longer message you), hide a conversation for yourself (it comes back on a new message) - only participants can read a conversation, staff included; plain text rendered as text, 1 to 5000 characters, rate limited - conversation marked read up to the newest message shown Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- list: live search synced with the URL, categories as filter chips with subcategories, real sorting (newest, oldest, size, name; the API ignored sortBy until now), tags under each name, pending badge on own uploads - /search redirects to /torrents (it duplicated the list) - detail: prominent download, uploader, tags, swarm strip with seed/leech bar, details panel with hash copy, collapsible peer list, report button - comments are displayed and can be posted and deleted (the API returned them but the page never showed them) - comments: rate limited, no comments on pending torrents you cannot see - upload/edit modals: plain labels, readable category paths - fix subcategory lookup using select instead of columns Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- plain sentence-case typography instead of tracked capitals, real page headings, numbers in the tabular face - violet kept for freeleech only: balances and rewards use the text color - forum: categories as a compact list showing the latest topic; post authors with avatar and link to their profile - profiles aligned with the other pages, role badges in neutral outline Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- plain sentence-case labels across all admin and moderation panels, including settings field labels and stat cards - raw palette colors replaced by theme tokens (danger, seed, leech) - charts read their colors from the theme and follow light/dark changes - branding preview logo visible in the light theme - remove the homepage content editor and /api/homepage-content: the home page is now the dashboard and never showed that content; the staff note (welcome message) stays and its help text says where it appears Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 11 minutes. View limit detailsLimit details: You’ve used all 2 included reviews currently available. Review configuration: ⚙️ Run configuration
⛔ Files ignored due to path filters (1)
📒 Files selected for processing (93)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
2 of 3 tasks
- closed mobile drawer is invisible so its links leave the tab order; the sidebar gets a landmark label instead of an action label - command palette drops late search answers and resets on close, and returns focus to the element that opened it - passkey copy only shows Copied when the clipboard write succeeds - account switch clears the previous balance and avatar - theme cookie is validated, unknown values fall back to system - fixed colors: paper (white) for text on colored fills and uploaded logos, scrim for shadows, so they do not flip with the theme Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- user activity tracking errors are logged instead of failing the announce (and skipping H&R and completion tracking after it) - the dashboard falls back to empty swarm counts when stats are unavailable instead of returning a 500 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- banned or missing recipients are refused (404) for new conversations and replies alike - blocking an unknown user id returns 404 instead of a 500 - malformed ?before / ?limit return 400 instead of a 500 - hidden conversations are filtered in SQL so they do not use up the 100-row limit and push older visible ones out of the list - block and hide failures show an error instead of an unhandled rejection Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- unknown ?sort values fall back to newest instead of an empty list - the torrent list orders by id after the chosen column, so offset pagination cannot repeat or skip torrents with equal size or name - failed comment deletions show an error and refresh the list - delete button text uses the fixed white on the red fill Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # app/components/admin/Announcements.vue # app/components/admin/Branding.vue # app/components/admin/HnR.vue # app/components/admin/HomepageContent.vue # app/components/admin/Panic.vue # app/components/admin/Registration.vue # app/components/admin/Reports.vue
Owner
Author
|
@coderabbitai review |
|
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.
Summary
SettingsGroup) and stat cards.danger,seed,leech, neutrals);GET /api/homepage-content. The home page is now the dashboard and never displayed that content. The settings columns are left in place, so no migration is needed. The staff note (welcome message) stays, and its help text now says it appears on every member's dashboard.Test plan
npx vitest run,npm run build, translation key check🤖 Generated with Claude Code