Commit c1eea815 authored by Matt Tucker's avatar Matt Tucker Committed by matt

Updated version from ryang.


git-svn-id: http://svn.igniterealtime.org/svn/repos/messenger/trunk@1132 b35dd754-fafc-0310-a699-88a17e54d16e
parent 2bceb9c7
version 1.0.1 version 1.0.3
---------------
* Fixed incompatiblity issue with psi
* Fixed bug where a list of all the users in the system would be returned when using psi
version 1.0.2
--------------- ---------------
* Removed plugin info jsp from admin console tab/sidebar * Removed plugin info jsp from admin console tab/sidebar
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
<plugin> <plugin>
<class>org.jivesoftware.messenger.plugin.SearchPlugin</class> <class>org.jivesoftware.messenger.plugin.SearchPlugin</class>
<name>Search</name> <name>Search Plugin</name>
<description>Provides support for searching for users (JEP-0055).</description> <description>Provides support for Jabber Search (JEP-0055)</description>
<author>Ryan Graham</author> <author>Ryan Graham</author>
<version>1.0.2</version> <version>1.0.3</version>
<minServerVersion>2.1.2</minServerVersion> <minServerVersion>2.1.2</minServerVersion>
</plugin> </plugin>
\ No newline at end of file
...@@ -99,7 +99,7 @@ public class SearchPlugin implements Component, Plugin { ...@@ -99,7 +99,7 @@ public class SearchPlugin implements Component, Plugin {
if (probeResult == null) { if (probeResult == null) {
probeResult = DocumentHelper.createElement(QName.get("query", "jabber:iq:search")); probeResult = DocumentHelper.createElement(QName.get("query", "jabber:iq:search"));
XDataFormImpl searchForm = new XDataFormImpl(DataForm.TYPE_RESULT); XDataFormImpl searchForm = new XDataFormImpl(DataForm.TYPE_FORM);
searchForm.setTitle("User Search"); searchForm.setTitle("User Search");
searchForm.addInstruction("The following fields are available for search. " searchForm.addInstruction("The following fields are available for search. "
+ "Wildcard (*) characters are allowed as part the of query."); + "Wildcard (*) characters are allowed as part the of query.");
...@@ -107,7 +107,6 @@ public class SearchPlugin implements Component, Plugin { ...@@ -107,7 +107,6 @@ public class SearchPlugin implements Component, Plugin {
Iterator iter = searchFields.iterator(); Iterator iter = searchFields.iterator();
while (iter.hasNext()) { while (iter.hasNext()) {
String searchField = (String) iter.next(); String searchField = (String) iter.next();
probeResult.addElement(searchField);
XFormFieldImpl field = new XFormFieldImpl(searchField); XFormFieldImpl field = new XFormFieldImpl(searchField);
field.setType(FormField.TYPE_TEXT_SINGLE); field.setType(FormField.TYPE_TEXT_SINGLE);
...@@ -213,15 +212,20 @@ public class SearchPlugin implements Component, Plugin { ...@@ -213,15 +212,20 @@ public class SearchPlugin implements Component, Plugin {
Iterator foundIter = null; Iterator foundIter = null;
if (userManager != null) { if (userManager != null) {
String query = queryField.getTextTrim();
//psi returns every field even if it is empty
if (query.length() > 0) {
foundIter = userManager.findUsers(new HashSet<String>( foundIter = userManager.findUsers(new HashSet<String>(
Arrays.asList(searchField.attributeValue("var"))), Arrays.asList(searchField.attributeValue("var"))), query).iterator();
queryField.getTextTrim()).iterator(); }
} }
else { else {
foundIter = findUsers(searchField.attributeValue("var"), foundIter = findUsers(searchField.attributeValue("var"),
queryField.getTextTrim()).iterator(); queryField.getTextTrim()).iterator();
} }
// filter out all duplicate users // filter out all duplicate users
if (foundIter != null) {
while (foundIter.hasNext()) { while (foundIter.hasNext()) {
User user = (User) foundIter.next(); User user = (User) foundIter.next();
if (!users.contains(user)) { if (!users.contains(user)) {
...@@ -230,6 +234,7 @@ public class SearchPlugin implements Component, Plugin { ...@@ -230,6 +234,7 @@ public class SearchPlugin implements Component, Plugin {
} }
} }
} }
}
Iterator userIter = users.iterator(); Iterator userIter = users.iterator();
while (userIter.hasNext()) { while (userIter.hasNext()) {
...@@ -237,15 +242,15 @@ public class SearchPlugin implements Component, Plugin { ...@@ -237,15 +242,15 @@ public class SearchPlugin implements Component, Plugin {
ArrayList<XFormFieldImpl> items = new ArrayList<XFormFieldImpl>(); ArrayList<XFormFieldImpl> items = new ArrayList<XFormFieldImpl>();
XFormFieldImpl fieldUsername = new XFormFieldImpl("username"); XFormFieldImpl fieldUsername = new XFormFieldImpl("Username");
fieldUsername.addValue(user.getUsername()); fieldUsername.addValue(user.getUsername());
items.add(fieldUsername); items.add(fieldUsername);
XFormFieldImpl fieldName = new XFormFieldImpl("name"); XFormFieldImpl fieldName = new XFormFieldImpl("Name");
fieldName.addValue(user.getName()); fieldName.addValue(user.getName());
items.add(fieldName); items.add(fieldName);
XFormFieldImpl fieldEmail = new XFormFieldImpl("email"); XFormFieldImpl fieldEmail = new XFormFieldImpl("Email");
fieldEmail.addValue(user.getEmail()); fieldEmail.addValue(user.getEmail());
items.add(fieldEmail); items.add(fieldEmail);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment