Skip to content

feat: Add settings editing to web UI#346

Closed
itsthisjustin wants to merge 1 commit intocrosspoint-reader:masterfrom
itsthisjustin:feature/edit-settings-web
Closed

feat: Add settings editing to web UI#346
itsthisjustin wants to merge 1 commit intocrosspoint-reader:masterfrom
itsthisjustin:feature/edit-settings-web

Conversation

@itsthisjustin
Copy link
Contributor

Add a new Settings page to the crosspoint.local web interface that allows viewing and editing all device settings via the hotspot.

Settings page that auto-generates form from settings metadata New settings added to SettingsList.h automatically
appear in both the device UI and web UI

  • Supports all setting types: toggle, enum, value (range), and string
  • Settings are saved immediately and persist to SD card

API endpoints:

  • GET /settings - Settings page
  • GET /api/settings - Returns all settings with metadata as JSON
  • POST /api/settings - Updates settings (accepts JSON key-value pairs)

Add a new Settings page to the crosspoint.local web interface that allows
viewing and editing all device settings via the hotspot.

Settings page that auto-generates form from settings metadata
New settings added to SettingsList.h automatically
  appear in both the device UI and web UI
- Supports all setting types: toggle, enum, value (range), and string
- Settings are saved immediately and persist to SD card

API endpoints:
- GET /settings - Settings page
- GET /api/settings - Returns all settings with metadata as JSON
- POST /api/settings - Updates settings (accepts JSON key-value pairs)
@itsthisjustin
Copy link
Contributor Author

@daveallie Added the hotspot settings feature here if you're interested

@faaarmer
Copy link

Works great - saved me a lot of time testing Calibre-web stuff

@itsthisjustin
Copy link
Contributor Author

Works great - saved me a lot of time testing Calibre-web stuff

Exactly haha

Copy link
Member

@daveallie daveallie left a comment

Choose a reason for hiding this comment

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

This is great, any keyboard entry on the device is a real pain. Just some feedback around settings appearing twice.

Comment on lines +42 to +43
SettingInfo::String("opdsServerUrl", "Calibre Web URL", SETTINGS.opdsServerUrl,
sizeof(SETTINGS.opdsServerUrl) - 1),
Copy link
Member

Choose a reason for hiding this comment

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

This setting now appears in the UI for the root settings options, but also in the Calibre Settings sub-section. Perhaps we should categories all settings (just leaving all the existing ones as "General" which show up at the root settings page), and then the UI in the web/on-device could be a little more capable of supporting these subsections. <- This isn't my greatest idea, and if you'd prefer to defer this issue for the moment by just marking settings as "hidden" in this list for the device UI, then I'm ok with that, or if you have better ideas, happy to take a look at another approach

@louis-sicko
Copy link

This would be awesome! Im currently trying to setup OPDS and KoReader and its a pain

obra pushed a commit to obra/crosspoint-reader that referenced this pull request Feb 2, 2026
Reimplements PR crosspoint-reader#346 on top of current master. Adds a web settings page
at /settings that allows viewing and editing all device settings via the
hotspot, with GET/POST JSON API at /api/settings.
@itsthisjustin
Copy link
Contributor Author

closing this pr in favor of one from @obra

daveallie added a commit that referenced this pull request Feb 8, 2026
## Summary

This is an updated version of @itsthisjustin's #346 that builds on
current master and also deduplicates the settings list so we don't have
two copies of the settings. In the Web UI, it should organize the
settings a little closer to what you see on device.

## Additional Context

I tested this live on device and it seems to play nicely for me. It's
re-based on master since master's settings stuff has moved somewhat
since the original PR and addresses the sole review comment #346 - it
also means that I don't need to manually key in the URL for my OPDS
server. :)

---

### AI Usage

My changes were implemented with Claude Opus 4.5 and Claude Code 2.1.25.
I don't know if @itsthisjustin's original work used AI assistance.

Co-authored-by: Dave Allie <[email protected]>
lukestein pushed a commit to lukestein/crosspoint-reader that referenced this pull request Feb 8, 2026
## Summary

This is an updated version of @itsthisjustin's crosspoint-reader#346 that builds on
current master and also deduplicates the settings list so we don't have
two copies of the settings. In the Web UI, it should organize the
settings a little closer to what you see on device.

## Additional Context

I tested this live on device and it seems to play nicely for me. It's
re-based on master since master's settings stuff has moved somewhat
since the original PR and addresses the sole review comment crosspoint-reader#346 - it
also means that I don't need to manually key in the URL for my OPDS
server. :)

---

### AI Usage

My changes were implemented with Claude Opus 4.5 and Claude Code 2.1.25.
I don't know if @itsthisjustin's original work used AI assistance.

Co-authored-by: Dave Allie <[email protected]>
lukestein pushed a commit to lukestein/crosspoint-reader that referenced this pull request Feb 8, 2026
## Summary

This is an updated version of @itsthisjustin's crosspoint-reader#346 that builds on
current master and also deduplicates the settings list so we don't have
two copies of the settings. In the Web UI, it should organize the
settings a little closer to what you see on device.

## Additional Context

I tested this live on device and it seems to play nicely for me. It's
re-based on master since master's settings stuff has moved somewhat
since the original PR and addresses the sole review comment crosspoint-reader#346 - it
also means that I don't need to manually key in the URL for my OPDS
server. :)

---

### AI Usage

My changes were implemented with Claude Opus 4.5 and Claude Code 2.1.25.
I don't know if @itsthisjustin's original work used AI assistance.

Co-authored-by: Dave Allie <[email protected]>
lukestein pushed a commit to lukestein/crosspoint-reader that referenced this pull request Feb 8, 2026
## Summary

This is an updated version of @itsthisjustin's crosspoint-reader#346 that builds on
current master and also deduplicates the settings list so we don't have
two copies of the settings. In the Web UI, it should organize the
settings a little closer to what you see on device.

## Additional Context

I tested this live on device and it seems to play nicely for me. It's
re-based on master since master's settings stuff has moved somewhat
since the original PR and addresses the sole review comment crosspoint-reader#346 - it
also means that I don't need to manually key in the URL for my OPDS
server. :)

---

### AI Usage

My changes were implemented with Claude Opus 4.5 and Claude Code 2.1.25.
I don't know if @itsthisjustin's original work used AI assistance.

Co-authored-by: Dave Allie <[email protected]>
Unintendedsideeffects pushed a commit to Unintendedsideeffects/crosspoint-reader that referenced this pull request Feb 17, 2026
## Summary

This is an updated version of @itsthisjustin's crosspoint-reader#346 that builds on
current master and also deduplicates the settings list so we don't have
two copies of the settings. In the Web UI, it should organize the
settings a little closer to what you see on device.

## Additional Context

I tested this live on device and it seems to play nicely for me. It's
re-based on master since master's settings stuff has moved somewhat
since the original PR and addresses the sole review comment crosspoint-reader#346 - it
also means that I don't need to manually key in the URL for my OPDS
server. :)

---

### AI Usage

My changes were implemented with Claude Opus 4.5 and Claude Code 2.1.25.
I don't know if @itsthisjustin's original work used AI assistance.

Co-authored-by: Dave Allie <[email protected]>
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.

4 participants