Hi,
On 24.7 webgui the OpenVPN Server Connections widget cannot be loaded.
The page generates a js type error:
Failed to load content for widget: openvpnservers, Error: TypeError: selector.replace is not a function
sanitizeSelector https://opnsense.lan/ui/js/widgets/BaseWidget.js:256
updateTable https://opnsense.lan/ui/js/widgets/BaseTableWidget.js:157
updateServers https://opnsense.lan/ui/js/widgets/OpenVPNServers.js?t=1722369615383:112
updateServers https://opnsense.lan/ui/js/widgets/OpenVPNServers.js?t=1722369615383:63
onWidgetTick https://opnsense.lan/ui/js/widgets/OpenVPNServers.js?t=1722369615383:118
interval https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:475
setInterval handler*_onMarkupRendered https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:473
functions https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:400
functions https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:399
_loadDynamicContent https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:405
_loadDynamicContent https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:405
initialize https://opnsense.lan/ui/js/opnsense_widget_manager.js?v=886fced7e714520f:114
async* https://opnsense.lan/ui/core/dashboard:1393
jQuery 13
opnsense_widget_manager.js:486:17
Probably `selector` is not a string, will investigate further.
The problem seems to occur due to `selector` not being a string in BaseWidget.js -> sanitizeSelector().
Workaround:
+++ /usr/local/opnsense/www/js/widgets/BaseWidget.js
@@ -253,7 +253,7 @@
}
sanitizeSelector(selector) {
- return selector.replace(/[:/.]/gi, '__');
+ return String(selector).replace(/[:/.]/gi, '__');
}
startCommandTransition(id, $target) {
I have opened a ticket on github and will look into it.
https://github.com/opnsense/core/issues/7701