Repository navigation
webui: group the device firmware update dialog by device type and version - #292
Conversation
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Version comparison and device grouping src/webui/www_source/webui/js/pages/startpage/startpage.js |
Version components are compared numerically, with missing components treated as zero. Eligible devices are grouped by type and current firmware, with counts, addresses, and firmware upload status tracked. |
Grouped update dialog src/webui/www_source/webui/js/pages/startpage/startpage.js, src/webui/www_source/webui/js/dialog/statusdisplaydialogacousticepaper.js, src/webui/www/webui/js/lang/en/translate.lang.extension.js, src/webui/www/webui/js/lang/de/translate.lang.extension.js |
The dialog displays sorted grouped rows, device counts, and serial-number details. It highlights newer current versions and selects the download or already-uploaded alert based on group status. The serial-number column can be hidden or shown. English and German labels and instructions are updated. |
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Feature
Sequence Diagram(s)
sequenceDiagram
participant StartPage
participant DeviceUpdateList
participant fwUpdates
StartPage->>DeviceUpdateList: Initialize update list before device-list fetch
StartPage->>DeviceUpdateList: Store grouped device and firmware data
StartPage->>fwUpdates: Render grouped rows and update instructions
Possibly related PRs
- OpenCCU/OpenCCU-Base#259: Both changes modify the start-page firmware update flow and its download URL handling.
Suggested reviewers: cn-eq3
Merge Risk: 
Minimal · up to 416f8
-
Firmware updates are grouped by device type and version. No merge-blocking issue was established.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull details: Docstring Coverage
-
Explanation
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 4 files.
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches
-
Generate docstrings
-
- Commit to this branch
- Create a new PR
Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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.
|
OpenCCU cleanup PR: OpenCCU/OpenCCU#4628 (removes rootfs patch 0183 and pins OpenCCU-Base to the merge commit Generated by Claude Code |
This removes OpenCCU rootfs patch 0183-WebUI-ImprovedFirmwareupdateDialog.patch, now that OpenCCU/OpenCCU-Base#292 is merged.
Original OpenCCU rootfs patch: 0183
Original filename:
0183-WebUI-ImprovedFirmwareupdateDialog.patchOriginal patch: https://github.com/OpenCCU/OpenCCU/blob/4d1d123a6/buildroot-external/package/openccu-base/rootfs-patches/0183-WebUI-ImprovedFirmwareupdateDialog.patch
Fixes before migration:
This applies the patch as fixed by OpenCCU/OpenCCU#4625. The device firmware update dialog of the start page groups the updatable devices by device type and current firmware version instead of listing every device:
src/webui/www_source/webui/js/pages/startpage/startpage.js):StartPage.cmpVersion()compares dotted versions numerically.showAllDeviceFirmware()/setDeviceVersion()collect the devices per type and current version inDeviceUpdateList(count, addresses, whether the firmware still has to be downloaded or is already uploaded).showAvailableDeviceFirmware()renders one row per group with the device count, the hidden serial numbers, the current version (bold and orange when it is newer than the recommended one) and the recommended version, which links to the download area or shows the "already uploaded" hint. A short instruction below the table links to "Device firmware".src/webui/www_source/webui/js/dialog/statusdisplaydialogacousticepaper.js, where the patch placed it in the generatedwebui.js): the globaltoggleSerialNumberDisplay()shows or hides the serial number column, together with its<col>, when the device count is clicked.src/webui/www/webui/js/lang/{de,en}/translate.lang.extension.js): new and renamed column headers and the instruction texts; the German file now ends with a newline.All files keep their line endings and encodings (CRLF for
startpage.js). The generatedwebui.jsand all other staged files are byte-identical to the OpenCCU patch. The three comment lines ofcmpVersionkeep the trailing spaces of the original patch for that reason.The keyboard operability of the device count cell stays open in OpenCCU/OpenCCU#4361, together with the other mouse-only WebUI controls collected there.
Validation
scripts/base-patch-migration.py validatewith the canonical Buildroot 2026.08.1git4archive of this change (416f83b1, sha256f542ce84a943008b747e0525c5af215e954c0e6bad2414141a206ef033f4fcbc, based on the current OpenCCU pin641809a7) and--skip-patch 0183, on the OpenCCU state of fix(webui): keep the serial number column of the firmware dialog in the table OpenCCU#4625: PASS (the other 15 rootfs patches apply with zero fuzz; the security tests of the validation passed).comparewith a validation of the same OpenCCU state with all 16 patches: IDENTICAL (all 4667 manifest entries, transitioncandidate-skipof 0183).The OpenCCU cleanup PR (removal of 0183, pin and archive hash) will follow after this PR is merged.
Generated by Claude Code
Summary by CodeRabbit