Commit 963e94b6 by Tuomas Riihimäki

Fiksattu vapaasanahaku käyttäjistä ja pollille menuitemi.

1 parent 9f7f691d
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="ejbModule"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
......
......@@ -43,17 +43,24 @@ public class UserFacade extends GenericFacade<Integer, User> {
// }
// }
private static final List<SingularAttribute<User, String>> SEARCHATTRS;
static {
ArrayList<SingularAttribute<User, String>> buildAttrs = new ArrayList<SingularAttribute<User, String>>();
buildAttrs.add(User_.nick);
buildAttrs.add(User_.login);
buildAttrs.add(User_.firstnames);
buildAttrs.add(User_.lastname);
buildAttrs.add(User_.email);
buildAttrs.add(User_.phone);
SEARCHATTRS = Collections.unmodifiableList(buildAttrs);
private static List<SingularAttribute<User, String>> SEARCHATTRS;
private List<SingularAttribute<User, String>> getAttrlist() {
if (SEARCHATTRS == null)
{
ArrayList<SingularAttribute<User, String>> buildAttrs = new ArrayList<SingularAttribute<User, String>>();
buildAttrs.add(User_.nick);
buildAttrs.add(User_.login);
buildAttrs.add(User_.firstnames);
buildAttrs.add(User_.lastname);
buildAttrs.add(User_.email);
buildAttrs.add(User_.phone);
logger.warn("Initiating attrlist {}", buildAttrs);
SEARCHATTRS = Collections.unmodifiableList(buildAttrs);
}
return SEARCHATTRS;
}
// final String[] NAMEFIELDS = { "nick", "login", "firstnames", "lastname",
......@@ -122,8 +129,15 @@ public class UserFacade extends GenericFacade<Integer, User> {
orderCall = new OrderCallback<User>(false, sort);
}
for (SingularAttribute<User, String> attr : getAttrlist())
{
logger.info("Looping attrs: {}", attr);
}
return super.searcher(page, pagesize,
new StringSearchPredicateCreator<User>(search, SEARCHATTRS),
new StringSearchPredicateCreator<User>(search, getAttrlist()),
orderCall
);
......
......@@ -35,7 +35,7 @@ public class StringSearchPredicateCreator<T extends ModelInterface<?>> implement
private boolean addSearch(String search) {
if (search != null) {
search = search.trim();
search = search.trim().toLowerCase();
if (!search.isEmpty()) {
searchstr = new StringBuilder().append(WILDCARD).append(search).append(WILDCARD).toString();
return true;
......@@ -50,13 +50,19 @@ public class StringSearchPredicateCreator<T extends ModelInterface<?>> implement
if (searchstr == null || attributes == null || attributes.isEmpty()) {
return;
}
Predicate[] preds = new Predicate[attributes.size()];
int i = 0;
for (SingularAttribute<T, String> attr : attributes) {
logger.info("Equalling {} to {}", attr.getName(), searchstr);
preds[i++] = cb.like(root.get(attr), searchstr);
for (String splitSearch : searchstr.split(" "))
{
splitSearch = new StringBuilder().append(WILDCARD).append(splitSearch.trim()).append(WILDCARD).toString();
Predicate[] preds = new Predicate[attributes.size()];
int i = 0;
for (SingularAttribute<T, String> attr : attributes) {
logger.info("Equalling {} to {}", attr.getName(), splitSearch);
preds[i++] = cb.like(cb.lower(root.get(attr)), splitSearch);
}
predicates.add(cb.or(preds));
}
predicates.add(cb.or(preds));
}
}
......@@ -10,7 +10,7 @@
<classpathentry kind="src" path="/LanBortalDatabase"/>
<classpathentry kind="src" path="/LanBortalUtilities"/>
<classpathentry kind="src" path="/LanBortalAuthModuleClient"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 6 (MacOS X Default)">
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
......
......@@ -235,6 +235,7 @@ sidebar.utils.flushCache=Flush Cache
sidebar.utils.testdata=Testdata
topmenu.adminfront=Admintavaraa
menu.poll.index=Kyselyt
menu.index=Etusivu
menu.user.edit=Omat tiedot
menu.place.placemap=Paikkakartta
......
......@@ -78,7 +78,7 @@ public class MenuView {
MenuGroup shop = new MenuGroup("shop");
MenuGroup poll = new MenuGroup("poll");
PAGEGROUPS = Collections.unmodifiableList(Arrays.asList(frontpage, user, placemap, shop));
PAGEGROUPS = Collections.unmodifiableList(Arrays.asList(frontpage, user, placemap, shop, poll));
addPage(temppages, "/index", frontpage, UserPermission.ANYUSER);
addPage(temppages, "/user/create", frontpage, UserPermission.CREATE_NEW);
......@@ -104,7 +104,7 @@ public class MenuView {
addPage(temppages, "/shop/createBill", shop, BillPermission.CREATE_BILL);
addPage(temppages, "/bill/list", shop, BillPermission.VIEW_OWN);
addPage(temppages, "/poll/", shop, PollPermission.ANSWER);
addPage(temppages, "/poll/index", poll, PollPermission.ANSWER);
PAGES = Collections.unmodifiableMap(temppages);
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!