Skip to content

feat(web-ui): add per-download detail panel to Downloads page - #461

Merged
ngosang merged 1 commit into
amule-org:masterfrom
ngosang:feature/web10
Jul 13, 2026
Merged

feat(web-ui): add per-download detail panel to Downloads page#461
ngosang merged 1 commit into
amule-org:masterfrom
ngosang:feature/web10

Conversation

@ngosang

@ngosang ngosang commented Jul 13, 2026

Copy link
Copy Markdown
Member

Clicking a download in the Downloads table opens a detail panel in the lower half of the page, separated from the table by a draggable splitter; the page fills the viewport and scrolls its regions internally (app-like) instead of scrolling the whole page. On phones the detail opens as a full-screen drill-down sheet over the list (below the top bar) with a pinned close button, so the tap clearly changes the screen and the info is reachable.

The panel consumes the enriched GET /downloads/{hash} endpoint and updates live while open (re-fetches on each store tick; ETag-cached).

Top of the panel:

  • Completion progress bar.
  • Canvas pieces graph mirroring the aMule GUI: green = complete, red = missing, blue = available with an intensity gradient by source count (theme-tuned via CSS vars). A compact one-line legend shows per-state counts, the total piece count, and the availability scale '(fewer -- more)'.
  • Copy ED2K link / Copy magnet link buttons on the file-name row. The magnet URI matches CamuleAppCommon::CreateMagnetLink; clipboard write falls back to execCommand on non-secure origins.

Fields below, ordered by usefulness (status/progress first, technical last) and each with an explanatory tooltip:

  • Transfer: Status, Completed (bytes + %), Speed, Remaining, Sources, Size, Transferred.
  • Activity: Active time, Last received, Last seen complete, Clients on queue.
  • Media / Comment when present.
  • Parts: Available parts, Saved by ICH (in packages), Lost to corruption, Gained by compression.
  • Identity: Hash (uppercase), Met file.

Also: add onRowClick to the shared VirtualTable, a 'copy' icon, widen the content cap to 1760px, move the Clients nav tab after Shared Files, and the en/es i18n strings.

Clicking a download in the Downloads table opens a detail panel in the lower
half of the page, separated from the table by a draggable splitter; the page
fills the viewport and scrolls its regions internally (app-like) instead of
scrolling the whole page. On phones the detail opens as a full-screen
drill-down sheet over the list (below the top bar) with a pinned close button,
so the tap clearly changes the screen and the info is reachable.

The panel consumes the enriched GET /downloads/{hash} endpoint and updates live
while open (re-fetches on each store tick; ETag-cached).

Top of the panel:
- Completion progress bar.
- Canvas pieces graph mirroring the aMule GUI: green = complete, red = missing,
  blue = available with an intensity gradient by source count (theme-tuned via
  CSS vars). A compact one-line legend shows per-state counts, the total piece
  count, and the availability scale '(fewer -- more)'.
- Copy ED2K link / Copy magnet link buttons on the file-name row. The magnet URI
  matches CamuleAppCommon::CreateMagnetLink; clipboard write falls back to
  execCommand on non-secure origins.

Fields below, ordered by usefulness (status/progress first, technical last) and
each with an explanatory tooltip:
- Transfer: Status, Completed (bytes + %), Speed, Remaining, Sources, Size,
  Transferred.
- Activity: Active time, Last received, Last seen complete, Clients on queue.
- Media / Comment when present.
- Parts: Available parts, Saved by ICH (in packages), Lost to corruption,
  Gained by compression.
- Identity: Hash (uppercase), Met file.

Also: add onRowClick to the shared VirtualTable, a 'copy' icon, widen the
content cap to 1760px, move the Clients nav tab after Shared Files, and the
en/es i18n strings.
@ngosang
ngosang merged commit c26e317 into amule-org:master Jul 13, 2026
13 checks passed
@ngosang
ngosang deleted the feature/web10 branch July 13, 2026 06:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant