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');