Skip to content

Commit fd62520

Browse files
committed
Fixes for new usermod system
1 parent a1e4cff commit fd62520

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

wled00/data/settings-core.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,13 +289,14 @@ const umCfg = {
289289

290290
// Auto-discover form and its fields
291291
const form = document.querySelector('form');
292-
if (!fieldMapOrOptions || typeof fieldMapOrOptions !== 'object' || Object.keys(fieldMapOrOptions).length === 0) {
293-
fieldMapOrOptions = {};
292+
let fieldMap = fieldMapOrOptions;
293+
if (!fieldMap || typeof fieldMap !== 'object' || Object.keys(fieldMap).length === 0) {
294+
fieldMap = {};
294295
if (form) {
295296
const els = form.querySelectorAll('input, select, textarea');
296297
els.forEach(el => {
297298
const name = el.name || el.id;
298-
if (name) fieldMapOrOptions[name] = `[name="${name}"]`;
299+
if (name) fieldMap[name] = `[name="${name}"]`;
299300
});
300301
}
301302
}

wled00/wled_server.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,15 @@ void initServer()
225225
serveSettings(request);
226226
});
227227

228+
// Static JS served before the wildcard to avoid /settings* matching /settings-core.js
229+
server.on("/settings-core.js", HTTP_GET, [](AsyncWebServerRequest* request) {
230+
if (handleIfNoneMatchCacheHeader(request)) return;
231+
AsyncWebServerResponse* response = request->beginResponse_P(200, "application/javascript", settingscoreJs, settingscoreJs_length);
232+
response->addHeader(FPSTR(s_content_enc), "gzip");
233+
setStaticContentCacheHeaders(response);
234+
request->send(response);
235+
});
236+
228237
// Usermod settings pages (auto-discovered) - catch /settings_xxx URLs
229238
// Use wildcard /settings* to match /settings_xxx
230239
server.on("/settings*", HTTP_GET, [](AsyncWebServerRequest *request){

0 commit comments

Comments
 (0)