Repository navigation
web: make the settings drawer readable and honest - #69
Merged
Merged
Conversation
The Cloud section printed the raw getCloudState JSON. It now shows a connected/not-connected status with the API and App URLs on their own rows, and prefills the URL inputs with the current values. Same pass over the rest of the drawer: - Labels on every form field (MQTT, IP address, cloud, EDID, WOL, SSH) instead of placeholders that disappear once a value is filled in. - Save buttons report success or the device's error instead of firing silently (new util::fire_status). - Extension is a select of the known boards instead of a free-text id, and applying it reloads the Power section. - Network and About are label/value rows; status lines are sentences. - Brightness never saved: setBacklightSettings requires dim_after and off_after, which the slider did not send. Send them back unchanged. - Hide controls the device does not act on (serial Send, video sleep, host display idle) instead of offering buttons that do nothing. - .muted text wraps at word boundaries instead of mid-word. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2qNacq5gbEg9WMeL6W6gz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by 4c · project thread
Summary
Before: the Cloud section printed the raw
getCloudStateJSON ({"appUrl":…,"connected":false,"url":…}), wrapped mid-word. Many fields had only placeholders, so once filled (e.g. MQTT base topic "rustkvm") nothing said what they were. Save buttons fired silently. Some controls did nothing on the device, and the brightness slider never saved.After: Cloud shows a status dot with "Connected / Not connected" and the API and App URLs on separate rows, with the inputs prefilled. Every field has a visible label, save actions report success or the device's error, and controls the device ignores are hidden.
How
util::fire_status: likefire, but writes "Saving…" / ok message /Failed: <error>into a status line. Used for cloud, Tailscale, extension, HTTPS, EDID, WOL, IP settings, SSH, MQTT, macros.setBacklightSettingsrequiresdim_afterandoff_after; the slider sent onlymax_brightness, so every change failed deserialization silently. They are now read and sent back unchanged.sendCustomCommandonly logs; old history is still shown and clearable), video sleep, host display idle (both stored, never read). Time zone shows as text instead of a disabled select..mutedwraps withoverflow-wrap: anywhereinstead ofword-break: break-all.No RPC method or backend changes.
Testing
cargo +nightly fmt --checkincrates/rkvm-webcargo +nightly clippy --workspace --release --all-targets -- -D warnings(backend untouched)cargo +nightly test --workspace(backend untouched)-D warningsclean locally;trunk buildruns in CIChecklist
#[allow(...)]suppressions and no newunwrap()/expect()in production pathsMissedTickBehavior::Delayrkvm-protoGenerated by Claude Code