From efab3474f9a8e91f990b67dac21cb61ed3199abb Mon Sep 17 00:00:00 2001
From: Monviech <79600909+Monviech@users.noreply.github.com>
Date: Wed, 16 Apr 2025 08:20:54 +0200
Subject: [PATCH] www/caddy: Show only wildcard domains in subdomain selection,
show only wildcard domains in handler selection if a subdomain is selected
(#4646)
---
.../mvc/app/models/OPNsense/Caddy/Caddy.xml | 3 +++
.../views/OPNsense/Caddy/reverse_proxy.volt | 23 +++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml b/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
index e07d56a0c..225d50110 100644
--- a/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
+++ b/www/caddy/src/opnsense/mvc/app/models/OPNsense/Caddy/Caddy.xml
@@ -302,6 +302,9 @@
reverseproxy.reverse
FromDomain,FromPort
%s %s
+
+ /^\*\./
+
diff --git a/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt b/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt
index 672cd81aa..abb23a0a4 100644
--- a/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt
+++ b/www/caddy/src/opnsense/mvc/app/views/OPNsense/Caddy/reverse_proxy.volt
@@ -336,6 +336,9 @@
.selectpicker('val', selectedDomains)
.selectpicker('refresh');
}
+
+ // Trigger to filter the dropdowns if subdomains are selected
+ $("#handle\\.subdomain").trigger("change");
}
});
@@ -387,6 +390,26 @@
});
});
+ // When subdomain is selected in handler show only wildcard domains
+ $("#handle\\.subdomain").on("change", function () {
+ const subdomainSelected = $("#handle\\.subdomain").val() !== "";
+
+ $("#handle\\.reverse").find("option").each(function () {
+ const isWildcard = $(this).text().includes("*.");
+ $(this).toggle(!subdomainSelected || isWildcard);
+ });
+
+ if (subdomainSelected) {
+ const selectedText = $("#handle\\.reverse").find("option:selected").text();
+ if (!selectedText.includes("*.")) {
+ // Clear selection if not a wildcard
+ $("#handle\\.reverse").val("").change();
+ }
+ }
+
+ $("#handle\\.reverse").selectpicker("refresh");
+ });
+
// Trigger bootgrid setup for handlers tab too (even if not active) to ensure command buttons always work
$('a[href="#handlers"]').trigger('shown.bs.tab');