From 752afd942b69b2b2a2afc0b1f363462d8160433c Mon Sep 17 00:00:00 2001 From: ilya khlevnoy <71222850+Plyha@users.noreply.github.com> Date: Sat, 24 Sep 2022 15:13:39 +0300 Subject: [PATCH 1/3] The search doesn't find anything if use a non-English localization --- .../openfire/plugin/SearchPlugin.java | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java b/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java index ce98cdee9..4adae57e8 100644 --- a/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java +++ b/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java @@ -17,20 +17,8 @@ package org.jivesoftware.openfire.plugin; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.Map.Entry; -import java.util.Set; -import java.util.TreeMap; import org.dom4j.DocumentHelper; import org.dom4j.Element; @@ -746,12 +734,12 @@ private IQ replyDataFormResult(Collection users, IQ packet) { final LinkedHashMap item = new LinkedHashMap(); item.put("jid", username + "@" + serverName); - item.put(LocaleUtils.getLocalizedString("advance.user.search.username", "search"), username); + item.put(LocaleUtils.getLocalizedString("advance.user.search.username", "search",null, Locale.ENGLISH,false), username); - item.put(LocaleUtils.getLocalizedString("advance.user.search.name", "search"), + item.put(LocaleUtils.getLocalizedString("advance.user.search.name", "search",null, Locale.ENGLISH,false), (user.isNameVisible() ? removeNull(user.getName()) : "")); - item.put(LocaleUtils.getLocalizedString("advance.user.search.email", "search"), + item.put(LocaleUtils.getLocalizedString("advance.user.search.email", "search",null, Locale.ENGLISH,false), (user.isEmailVisible() ? removeNull(user.getEmail()) : "")); searchResults.addItemFields(item); From fee78ae1f5b2ae54cec4ecfd505ead89ec64f7c7 Mon Sep 17 00:00:00 2001 From: ilya khlevnoy <71222850+Plyha@users.noreply.github.com> Date: Sat, 24 Sep 2022 15:33:34 +0300 Subject: [PATCH 2/3] Update changelog.html --- changelog.html | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.html b/changelog.html index d03ae22ad..552609826 100644 --- a/changelog.html +++ b/changelog.html @@ -47,6 +47,7 @@

1.7.4TBC

  • [Issue #12] - fix: keep order of fields equal to order of reported fields.
  • +
  • [Issue #19] - The search doesn't find anything if use a non-English localization

1.7.3 -- September 25, 2019

From cbf4558d7aa6f05a9a0f181a72c077457682e6ce Mon Sep 17 00:00:00 2001 From: Guus der Kinderen Date: Thu, 20 Jul 2023 17:29:22 +0200 Subject: [PATCH 3/3] Search result's 'var' values should not be localized The 'var' values should be hard-coded, and not be in any kind of human-readable/translated state. Instead, a label should be used for human-readable/translated content. --- src/i18n/search_i18n.properties | 1 + .../openfire/plugin/SearchPlugin.java | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/i18n/search_i18n.properties b/src/i18n/search_i18n.properties index 88991f92f..f95d46d58 100644 --- a/src/i18n/search_i18n.properties +++ b/src/i18n/search_i18n.properties @@ -34,6 +34,7 @@ advance.user.search.more_options=More Options advance.user.search.less_options=Less Options advance.user.search.users_found=Users Found advance.user.search.online=Online +advance.user.search.jid=Jabber ID advance.user.search.username=Username advance.user.search.name=Name advance.user.search.email=Email diff --git a/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java b/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java index 4adae57e8..0c01d401b 100644 --- a/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java +++ b/src/java/org/jivesoftware/openfire/plugin/SearchPlugin.java @@ -731,16 +731,16 @@ private IQ replyDataFormResult(Collection users, IQ packet) { for (final User user : users) { final String username = JID.unescapeNode(user.getUsername()); - final LinkedHashMap item = new LinkedHashMap(); - item.put("jid", username + "@" + serverName); - - item.put(LocaleUtils.getLocalizedString("advance.user.search.username", "search",null, Locale.ENGLISH,false), username); + searchResults.addReportedField("jid", LocaleUtils.getLocalizedString("advance.user.search.jid", "search"), FormField.Type.jid_single ); + searchResults.addReportedField("username", LocaleUtils.getLocalizedString("advance.user.search.username", "search"), FormField.Type.text_single ); + searchResults.addReportedField("name", LocaleUtils.getLocalizedString("advance.user.search.name", "search"), FormField.Type.text_single ); + searchResults.addReportedField("email", LocaleUtils.getLocalizedString("advance.user.search.email", "search"), FormField.Type.text_single ); - item.put(LocaleUtils.getLocalizedString("advance.user.search.name", "search",null, Locale.ENGLISH,false), - (user.isNameVisible() ? removeNull(user.getName()) : "")); - - item.put(LocaleUtils.getLocalizedString("advance.user.search.email", "search",null, Locale.ENGLISH,false), - (user.isEmailVisible() ? removeNull(user.getEmail()) : "")); + final LinkedHashMap item = new LinkedHashMap<>(); + item.put("jid", username + "@" + serverName); + item.put("username", username); + item.put("name", (user.isNameVisible() ? removeNull(user.getName()) : "")); + item.put("email", (user.isEmailVisible() ? removeNull(user.getEmail()) : "")); searchResults.addItemFields(item); }