Use distinct colors for pending review and requested changes in PR lists #3164
Adam Kadlec opened 8 hours ago

OneDev version: 16.8.4

In the pull request overview, it is difficult to distinguish a pending review from a review requesting changes at a glance. Both status icons use the same warning color, and the reviewer-avatar status icons are only 10 x 10 pixels. This is especially noticeable when scanning multiple PRs, including PRs being reviewed by an AI user: one needs to distinguish waiting for a review result from a result requiring action.

Steps to reproduce

  1. Open a pull request list containing PRs with pending reviews and PRs with requested changes.
  2. Compare the small review status icons on reviewer avatars.
  3. Both states have the same color; distinguishing them relies on recognizing the small clock/diff glyph or opening a tooltip.

Expected behavior

Use distinct semantic colors, while retaining different icon shapes and tooltips:

  • Approved: green (as today).
  • Pending review: blue / informational.
  • Requested changes: red / action required.

An ongoing AI task is a separate state; the core issue here is that pending review and requested changes share a color. Making these colors distinct would improve scanning even without changing icon sizes or adding settings.

Source reference

In server-core/src/main/java/io/onedev/server/web/component/pullrequest/review/review.css, both .review-status-pending.icon and .review-status-request-for-changes.icon currently use fill: var(--warning). The same file sets reviewer-avatar status icons to 10px.

https://github.com/theonedev/onedev/blob/v16.8.4/server-core/src/main/java/io/onedev/server/web/component/pullrequest/review/review.css

Please also check the resulting colors in both light and dark themes. Keeping the distinct glyphs/tooltips avoids relying on color alone.

1/1
Type
Enhancement
Priority
Normal
Assignee
Labels
No labels
Issue Votes (0)
Watchers (2)
Reference
OD-3164
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover