2.0 KiB
2.0 KiB
Daily Upload Progress and Task-Log Behavior
Metadata
- Date: 2026-07-31
- Status: Implemented
- Scope: Desktop daily ARR.XML upload interaction and inline progress feedback
- Confidence: Fact
- Source:
arr_web/static/index.html,arr_web/static/app.js,arr_web/static/styles.css, focused tests - Last verified: 2026-07-31
User-Facing Outcome
- Clicking
开始处理keeps the operator on the daily page; it no longer opens the task-log dialog automatically. - The header
任务日志button and a selected daily-history row still open the same trace dialog on demand. - The upload card exposes a compact accessible progressbar with approximate stages for upload, fixed processing, independent validation and database commit.
- The estimate advances while the synchronous upload request is in flight, caps before terminal completion, then resolves to 100% on success or an inline red error state on failure.
- The file chooser and dropzone are temporarily disabled while the request is in flight so the visible progress stays attached to the submitted file.
Verification
node --check arr_web/static/app.js: passed.python3 -m unittest -v tests.test_arr_web_task_log_ui: 5 passed.python3 -m unittest -v tests.test_arr_web_job_trace tests.test_arr_web_repository_schema: 8 passed.python3 -m unittest -v tests.test_arr_web.PortalApplicationTests.test_fixed_static_routes_and_required_content tests.test_arr_web.PortalApplicationTests.test_all_public_assets_exclude_removed_copy: 2 passed.- No API route, upload contract, processing coordinator or task-trace query changed.
Design Boundary
This is a preserve-mode operational UI refinement. It keeps the existing dependency-free HTML/CSS, light neutral theme,
single blue accent and rounded upload-card language. Progress values are intentionally approximate because POST /api/jobs returns after the ARR-owned processing flow reaches a terminal receipt; no fake server progress contract was
introduced.