Skip to content

Allow downloading multiple selected interview reports - #453

Open
yucheng922003 wants to merge 1 commit into
sysprog21:mainfrom
yucheng922003:feat/batch-report-download
Open

yucheng922003 wants to merge 1 commit into
sysprog21:mainfrom
yucheng922003:feat/batch-report-download

Conversation

@yucheng922003

@yucheng922003 yucheng922003 commented Oct 23, 2026 •

Copy link
Copy Markdown

Let candidates save multiple attempts without repe## Summary

  • Add checkboxes to past interview attempts, selected by default.
  • Add Select all / Deselect all and Download selected controls.
  • Download only selected reports visible under the current filters.
  • Preserve selections when filters change and reset them when history is reloaded.
  • Reuse the existing Markdown download logic to preserve filenames and report content.

Screenshots

Before

#444 before

After — default state

#444 after

After — after clicking batch download

#444 after_click

After — filtered with no matching reports

#444 after_no_match

Testing

  • Manually verified selection, filtering, and multiple Markdown downloads in Chrome on Windows.
  • Passed ESLint, Prettier, DOM contract tests, and download unit tests.
  • Added browser tests for selection and batch downloads; these are pending CI execution.

Closes #444titive downloads.


Summary by cubic

Adds checkboxes to past interview attempts so you can download multiple saved reports at once instead of one by one.

  • Attempts are ticked by default; the Select all / Deselect all and Download selected controls sit above the list.
  • Batch downloads only the ticked reports visible under the current filters, reusing the existing per-report Markdown download.
  • Selections persist across filter changes and reset when the history reloads.
  • Browsers may block downloads after the first; the page tells users how to allow them.

Closes #444.

Written for commit f056d58. Summary will update on new commits.

View guided diff

cubic-dev-ai[bot]

This comment was marked as resolved.

Comment thread web/app.js Outdated
Comment thread web/app.js Outdated
Comment thread tests/browser/lobby.test.js Outdated
@yucheng922003 yucheng922003 changed the title Download selected interview reportsAllow downloading multiple selected interview reports Allow downloading multiple selected interview reports Oct 23, 2026
@yucheng922003
yucheng922003 force-pushed the feat/batch-report-download branch from f79990f to 6cde114 Compare October 23, 2026 13:35
cubic-dev-ai[bot]

This comment was marked as resolved.

Comment thread web/app.js Outdated
Comment thread web/app.js Outdated
Let candidates save multiple attempts without repetitive downloads.
@yucheng922003
yucheng922003 force-pushed the feat/batch-report-download branch from 6cde114 to f056d58 Compare October 23, 2026 16:20
@jserv
jserv requested review from ColtenOuO and alanhc October 23, 2026 23:36
Comment thread web/app.js
Comment on lines +494 to +497
/// The rows of `progressNormalized` unticked for "Download selected". Keyed on
/// the row objects: a filter change reuses them, so it keeps every choice, and
/// a reload builds new ones that were never unticked, so it starts all ticked.
const unselectedAttempts = new WeakSet();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleting one report brings back every untick. deleteSavedReport calls reloadAfterDelete, which goes through showProgress and normalizeProgressEntries and builds new row objects, so this WeakSet recognizes none of them. If a user unticks A and then deletes B, A is ticked again and the next "Download selected" includes a report they excluded. Key the unticked set on attempt.id (fall back to the row object for rows with no id), clear it only when the history source changes (account vs device), and add a browser test that unticks A, deletes B, and asserts A stays unticked.

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.

Allow downloading multiple selected interview reports

2 participants