fix(luci): Await form.Map.render() Promise before KissTheme.wrap()
form.Map.render() returns a Promise, not a DOM element. Passing it directly to KissTheme.wrap() caused "does not implement interface Node" errors. Fixed by awaiting the Promise with .then() before wrapping. Affected views: - metablogizer/settings.js - localai/settings.js - domoticz/overview.js - simplex/overview.js Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
33bc1e1732
commit
2924707e35
@ -3816,3 +3816,13 @@ git checkout HEAD -- index.html
|
||||
- Layer 2: mitmproxy WAF (request inspection, CVE detection)
|
||||
- All 13 MetaBlogizer sites verified working with dual WAF
|
||||
- **CrowdSec MCP:** Added crowdsec-local-mcp for AI-generated WAF rules
|
||||
|
||||
47. **Nextcloud Apps 403 Fix - try_files Directory Match (2026-02-27)**
|
||||
- **Problem:** `/apps/spreed/` and `/apps/dashboard/` returning 403 Forbidden
|
||||
- **Root Cause:** nginx `try_files $uri $uri/ /index.php$request_uri;` checks `$uri/`
|
||||
- `/apps/spreed/` exists as a real directory in filesystem
|
||||
- nginx finds directory, tries to serve index, no index file → 403
|
||||
- **Fix:** Changed to `try_files $uri /index.php$request_uri;`
|
||||
- Removed `$uri/` directory check from try_files
|
||||
- All non-file requests now route directly to PHP front controller
|
||||
- **Result:** Talk (/apps/spreed/) returns 303 redirect, Dashboard returns 401 (auth required)
|
||||
|
||||
@ -449,6 +449,8 @@ return view.extend({
|
||||
});
|
||||
};
|
||||
|
||||
return KissTheme.wrap([m.render()], 'admin/services/domoticz');
|
||||
return m.render().then(function(formEl) {
|
||||
return KissTheme.wrap([formEl], 'admin/services/domoticz');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -87,6 +87,8 @@ return view.extend({
|
||||
o.default = 'vulkan';
|
||||
o.depends('enabled', '1');
|
||||
|
||||
return KissTheme.wrap([m.render()], 'admin/services/localai/settings');
|
||||
return m.render().then(function(formEl) {
|
||||
return KissTheme.wrap([formEl], 'admin/services/localai/settings');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -68,6 +68,8 @@ return view.extend({
|
||||
'</div>';
|
||||
};
|
||||
|
||||
return KissTheme.wrap([m.render()], 'admin/services/metablogizer/settings');
|
||||
return m.render().then(function(formEl) {
|
||||
return KissTheme.wrap([formEl], 'admin/services/metablogizer/settings');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -454,6 +454,8 @@ return view.extend({
|
||||
'</div>';
|
||||
};
|
||||
|
||||
return KissTheme.wrap([m.render()], 'admin/services/simplex');
|
||||
return m.render().then(function(formEl) {
|
||||
return KissTheme.wrap([formEl], 'admin/services/simplex');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user