From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 504D71FF146 for ; Tue, 26 May 2026 16:02:11 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 65C20153C; Tue, 26 May 2026 16:02:10 +0200 (CEST) From: Christian Ebner To: pdm-devel@lists.proxmox.com Subject: [PATCH datacenter-manager v2] ui: auto-installer: filter by country name and code Date: Tue, 26 May 2026 16:01:13 +0200 Message-ID: <20260526140113.581117-1-c.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1779804071014 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.069 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: OUAXCRISBQ5BBG23OZ32LKTZAKCVL5WP X-Message-ID-Hash: OUAXCRISBQ5BBG23OZ32LKTZAKCVL5WP X-MailFrom: c.ebner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The country filed for answer files expects a 2 character country code as input, while showing the full country name for items. The filter therefore currently applies to country codes only, not matching on country (common) names. Filter based on both, matching name or country code instead. Signed-off-by: Christian Ebner --- Changes since version 1 (thanks @Shannon): - match country name by containing string instead of starting with query string. .../auto_installer/prepared_answer_form.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ui/src/remotes/auto_installer/prepared_answer_form.rs b/ui/src/remotes/auto_installer/prepared_answer_form.rs index c1d2bab..a68c5cd 100644 --- a/ui/src/remotes/auto_installer/prepared_answer_form.rs +++ b/ui/src/remotes/auto_installer/prepared_answer_form.rs @@ -171,6 +171,22 @@ pub fn render_global_options_form( } }) .value(config.country.clone()) + .filter(|item: &AttrValue, query: &str| { + let query = query.to_string().to_lowercase(); + let item = item.to_string(); + + // match by country code + if item.starts_with(&query) { + return true; + } + + // match by country (common) name + if let Some(name) = COUNTRY_INFO.deref().get(&item) { + return name.to_lowercase().contains(&query); + } + + false + }) .autoselect_filter(true) .required(true), ) -- 2.47.3