You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c284d0e
Browse filesBrowse the repository at this point in the historyBrowse files
feat: auto-save General + Buttons settings tabs (no submit button)
The General and Buttons settings sub-tabs persist changes automatically instead
of requiring a submit press:
- Debounced (~0.6s) genSettings() on any change in #settings-general / #settings-buttons
(delegated, so the dynamically populated button dropdowns are covered too).
- A time-window guard suppresses auto-save while fillSettings() programmatically
populates the form (immune to early returns), so loading never triggers a save.
- Submit buttons on both tabs replaced with a small 'changes saved automatically'
hint; Reset now applies defaults immediately (persists after repopulating).
- Other tabs (WiFi, security, MQTT, FTP, Bluetooth) deliberately keep submit
(half-typed credentials / reboot on BT-mode change). i18n de/en/fr.
Verified on the test device via Playwright: toggling a General checkbox and
changing a Buttons dropdown both persist without submit; populating the form
triggers no save; values restored; no console errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -137,6 +137,7 @@ neon logo that doubles as the SVG favicon ([`7be5254`](../../commit/7be5254)):
137
137
|**M3U playlist builder**: a "Create playlist" button in the Files tab opens a two-pane builder — browse the SD card on the left, an ordered (drag-to-reorder) track list on the right — to assemble an `.m3u` from SD files, whole folders, and webradio URLs (which `LOCAL_M3U` plays interchangeably). Saving writes `/Playlists/<name>.m3u` via a new `POST /playlist` endpoint; the file can then be assigned to an RFID tag with play mode 11. i18n de/en/fr |[`af041fc`](../../commit/af041fc)|
138
138
|**File browser: assignment badges + context-menu RFID learn (scan-after-select)**: in the Files-tab tree each row is badged (right-aligned, after the name) when that exact path has an **RFID tag** assigned (tag icon) and/or a **per-path EQ rule** (sliders icon), so you can see at a glance what is mapped where. The explorer **context menu** learns/removes RFID assignments directly: right-click a file/folder → **RFID anlernen** → pick a play mode, then **lay the card** — the next scanned card is assigned to that path (no tab switch / submit); or **remove** an existing assignment. Mirrors the existing EQ-profile submenu. Works with physical cards and the [virtual cards](#virtual-rfid-cards) (`CMD_VIRTUAL_RFID_CARD_*`) alike. Badges refresh when a folder is (re)opened and live after assigning/removing. i18n de/en/fr |[`7b8e303`](../../commit/7b8e303)|
139
139
|**No standby while on external power**: optional setting (General tab) that keeps the device from entering the inactivity standby while it is on external power. The `complete` board has no charge/USB sense, so "on power" is inferred heuristically from the battery voltage against a configurable threshold (default **3.5 V** — the LiFePO4 charge voltage sits above its resting voltage). The manual sleep timer is unaffected. i18n de/en/fr |[`no-sleep-on-power`](../../releases/tag/no-sleep-on-power)|
140
+
|**Auto-save settings (General + Buttons)**: the **General** and **Buttons** settings sub-tabs no longer have a submit button — changes are persisted automatically (debounced ~0.6 s) as soon as you toggle/select or leave a field. Populating the form on load is suppressed so it never triggers a spurious save; the **Reset** button now applies the defaults right away. The credential/connection tabs (WiFi, security, MQTT, FTP, Bluetooth) keep their explicit submit button on purpose (half-typed passwords / reboot on Bluetooth-mode change). i18n de/en/fr |[`settings-autosave`](../../releases/tag/settings-autosave)|
140
141
|**OpenAPI/Swagger spec updated**: the bundled `REST_API.yaml` (served at `/swagger.html`) now documents all fork-added endpoints (`/sync`, `/syncstop`, `/playlist`, `/githubupdate`, `/version`, `/login`, `/logout`, `/security`, `/eqrule(s)`, `/activeequalizer`, `/bluetooth*`, `/sdclean`) and declares the security schemes (`X-API-Key` header / `apikey` query param, or the `ESPUINO_SESSION` login cookie) so the Swagger "Authorize" button works. The web-interface footer links to the Swagger UI (`/swagger.html`) |[`f8298d9`](../../commit/f8298d9)|
0 commit comments