Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Riina Antikainen
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 3a29778b
authored
Apr 11, 2014
by
Tuomas Riihimäki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rewrite of user listing.. Sorting, pagination from primefaces
1 parent
cc061898
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
313 additions
and
161 deletions
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/CardTemplateBean.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/UserBean.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/EventUserFacade.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/UserFacade.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/AndPredicateCreator.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventLimiter.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventUserAccountSaldoPredicate.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventUserPlacegroupPredicate.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventUserRolefilter.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventuserToUserWrapper.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/OrPredicateCreator.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/OrderCallback.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/PathStringSearchPredicateCreator.java
code/MoyaBeansClient/ejbModule/fi/codecrew/moya/beans/UserBeanLocal.java
code/MoyaUtilities/src/main/java/fi/codecrew/moya/utilities/jpa/FacadeCallback.java
code/MoyaWeb/WebContent/resources/cditools/user/eventuserlist.xhtml
code/MoyaWeb/WebContent/resources/cditools/user/list.xhtml
code/MoyaWeb/WebContent/useradmin/list.xhtml
code/MoyaWeb/src/fi/codecrew/moya/HostnameFilter.java
code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_en.properties
code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_fi.properties
code/MoyaWeb/src/fi/codecrew/moya/servlet/FileDownloadServlet.java
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/ImportView.java
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/UserSearchView.java
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/UserView.java
code/MoyaWeb/src/fi/codecrew/moya/web/helper/LayoutView.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/CardTemplateBean.java
View file @
3a29778
...
...
@@ -189,10 +189,10 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
public
CardTemplate
getUsersCardtype
(
EventUser
user
)
{
Set
<
Role
>
roles
=
userbean
.
localFindUsersRoles
(
user
);
logger
.
info
(
"Checking roles {} against {}"
,
user
,
roles
);
//
logger.info("Checking roles {} against {}", user, roles);
CardTemplate
greatestTemplate
=
null
;
for
(
Role
listrole
:
roles
)
{
logger
.
info
(
"Checking role {}"
,
listrole
);
//
logger.info("Checking role {}", listrole);
if
(
greatestTemplate
==
null
||
(
listrole
.
getCardTemplate
()
!=
null
&&
greatestTemplate
.
getPower
()
<
listrole
.
getCardTemplate
().
getPower
()))
{
greatestTemplate
=
listrole
.
getCardTemplate
();
}
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
View file @
3a29778
...
...
@@ -155,7 +155,7 @@ public class ReaderBean implements ReaderBeanLocal {
// reader is in autoproduct-mode, create dat product
if
(
reader
.
isAutoproduct
())
{
EventUser
eu
=
userbean
.
getEventUser
(
card
.
getUser
().
getUser
());
EventUser
eu
=
userbean
.
getEventUser
(
card
.
getUser
().
getUser
()
,
false
);
if
(
eu
!=
null
)
{
AccountEvent
createAc
=
productPBean
.
createAccountEvent
(
reader
.
getAutomaticProduct
(),
reader
.
getAutomaticProductCount
(),
eu
,
Calendar
.
getInstance
());
readerfacade
.
flush
();
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/UserBean.java
View file @
3a29778
...
...
@@ -655,12 +655,11 @@ public class UserBean implements UserBeanLocal {
}
@Override
public
EventUser
findByUserId
(
Integer
userid
)
{
public
EventUser
findByUserId
(
Integer
userid
,
boolean
createEventuser
)
{
User
user
=
userFacade
.
find
(
userid
);
EventUser
ret
=
null
;
if
(
user
!=
null
)
{
ret
=
this
.
getEventUser
(
user
,
false
);
if
(
user
!=
null
)
{
ret
=
this
.
getEventUser
(
user
,
createEventuser
);
}
return
ret
;
}
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/EventUserFacade.java
View file @
3a29778
...
...
@@ -13,6 +13,10 @@ import javax.persistence.criteria.CriteriaBuilder;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.From
;
import
javax.persistence.criteria.Root
;
import
javax.persistence.metamodel.SingularAttribute
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.enums.DatabaseHasCompare
;
...
...
@@ -22,6 +26,7 @@ import fi.codecrew.moya.facade.callbacks.EventUserAccountSaldoPredicate;
import
fi.codecrew.moya.facade.callbacks.EventUserPlacegroupPredicate
;
import
fi.codecrew.moya.facade.callbacks.EventUserRolefilter
;
import
fi.codecrew.moya.facade.callbacks.EventUserSearchPredicate
;
import
fi.codecrew.moya.facade.callbacks.EventuserToUserWrapper
;
import
fi.codecrew.moya.facade.callbacks.OrderCallback
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser_
;
...
...
@@ -29,6 +34,7 @@ import fi.codecrew.moya.model.LanEvent;
import
fi.codecrew.moya.model.User
;
import
fi.codecrew.moya.model.User_
;
import
fi.codecrew.moya.util.UserSearchQuery
;
import
fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder
;
import
fi.codecrew.moya.utilities.SearchResult
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
...
...
@@ -47,6 +53,7 @@ public class EventUserFacade extends IntegerPkGenericFacade<EventUser> {
}
private
final
Map
<
Integer
,
Map
<
String
,
Integer
>>
logincache
=
new
HashMap
<
Integer
,
Map
<
String
,
Integer
>>();
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
EventUserFacade
.
class
);
public
EventUser
findByLogin
(
final
String
login
)
{
LanEvent
event
=
eventBean
.
getCurrentEvent
();
...
...
@@ -108,14 +115,30 @@ public class EventUserFacade extends IntegerPkGenericFacade<EventUser> {
public
SearchResult
<
EventUser
>
searchEventUsers
(
UserSearchQuery
query
)
{
ArrayList
<
FacadeCallback
<
EventUser
>>
callbacks
=
new
ArrayList
<
FacadeCallback
<
EventUser
>>();
callbacks
.
add
(
new
OrderCallback
<
EventUser
>(
false
,
EventUser_
.
id
));
callbacks
.
add
(
new
EventLimiter
(
eventBean
.
getCurrentEvent
()));
if
(
query
.
getSearch
()
!=
null
&&
!
query
.
getSearch
().
isEmpty
())
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
EventUser
>
listCQuery
=
cb
.
createQuery
(
EventUser
.
class
);
CriteriaQuery
<
Long
>
countCQuery
=
cb
.
createQuery
(
Long
.
class
);
if
(
query
.
getSort
()
!=
null
)
{
boolean
asc
=
false
;
if
(
query
.
getSortDirection
()
!=
null
)
{
asc
=
QuerySortOrder
.
ASCENDING
.
equals
(
query
.
getSortDirection
());
}
SingularAttribute
<?
super
User
,
?>
sortfield
=
UserFacade
.
getUserField
(
query
.
getSort
());
logger
.
info
(
"Sortig with {}, asc {} "
,
sortfield
,
asc
);
callbacks
.
add
(
new
EventuserToUserWrapper
(
new
OrderCallback
<
User
>(
asc
,
sortfield
)));
}
else
{
callbacks
.
add
(
new
OrderCallback
<
EventUser
>(
false
,
EventUser_
.
id
));
}
callbacks
.
add
(
new
EventLimiter
(
eventBean
.
getCurrentEvent
()));
if
(
query
.
getSearch
()
!=
null
&&
!
query
.
getSearch
().
isEmpty
())
{
callbacks
.
add
(
new
EventUserSearchPredicate
(
query
.
getSearch
(),
UserFacade
.
getAttrlist
()));
}
if
(
query
.
isPlaceAssoc
())
{
if
(
query
.
isPlaceAssoc
())
{
callbacks
.
add
(
new
EventUserPlacegroupPredicate
());
}
if
(
query
.
getFilterRoles
()
!=
null
&&
!
query
.
getFilterRoles
().
isEmpty
())
{
...
...
@@ -132,11 +155,6 @@ public class EventUserFacade extends IntegerPkGenericFacade<EventUser> {
}
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
EventUser
>
listCQuery
=
cb
.
createQuery
(
EventUser
.
class
);
CriteriaQuery
<
Long
>
countCQuery
=
cb
.
createQuery
(
Long
.
class
);
From
<?,
EventUser
>
listRoot
=
searchCallbacks
(
listCQuery
,
callbacks
,
EventUser
.
class
);
From
<?,
EventUser
>
countRoot
=
searchCallbacks
(
countCQuery
,
callbacks
,
EventUser
.
class
);
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/UserFacade.java
View file @
3a29778
...
...
@@ -15,12 +15,13 @@ import javax.persistence.metamodel.SingularAttribute;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.facade.callbacks.OrderCallback
;
import
fi.codecrew.moya.facade.callbacks.StringSearchPredicateCreator
;
import
fi.codecrew.moya.model.User_
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.model.User
;
import
fi.codecrew.moya.model.User_
;
import
fi.codecrew.moya.utilities.SearchQuery
;
import
fi.codecrew.moya.utilities.SearchQuery.QuerySortOrder
;
import
fi.codecrew.moya.utilities.SearchResult
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
...
...
@@ -102,11 +103,11 @@ public class UserFacade extends IntegerPkGenericFacade<User> {
public
SearchResult
<
User
>
searchAllUsers
(
SearchQuery
search
)
{
List
<
FacadeCallback
<
User
>>
callbacks
=
new
ArrayList
<
FacadeCallback
<
User
>>();
if
(
search
.
getSort
()
==
null
||
search
.
getSort
().
isEmpty
())
{
callbacks
.
add
(
new
OrderCallback
<
User
>(
false
,
User_
.
id
));
}
else
{
callbacks
.
add
(
new
OrderCallback
<
User
>(
false
,
search
.
getSort
()
));
}
// Ascending if null or not descending..
boolean
asc
=
search
.
getSortDirection
()
==
null
||
!
QuerySortOrder
.
DESCENDING
.
equals
(
search
.
getSortDirection
());
SingularAttribute
<?
super
User
,
?>
sortfield
=
getUserField
(
search
.
getSort
(
));
callbacks
.
add
(
new
OrderCallback
<
User
>(
asc
,
sortfield
));
callbacks
.
add
(
new
StringSearchPredicateCreator
<
User
>(
search
.
getSearch
(),
getAttrlist
()));
return
super
.
searcher
(
search
,
callbacks
);
...
...
@@ -142,6 +143,68 @@ public class UserFacade extends IntegerPkGenericFacade<User> {
return
getEm
().
createQuery
(
cq
).
getResultList
();
}
/**
* For example in sorting.
*
* @param fieldname
* @return By default return "id"
*/
public
static
SingularAttribute
<?
super
User
,
?>
getUserField
(
String
fieldname
)
{
SingularAttribute
<?
super
User
,
?>
sort
=
User_
.
id
;
if
(
fieldname
!=
null
)
{
switch
(
fieldname
)
{
case
"created"
:
sort
=
User_
.
created
;
break
;
case
"login"
:
sort
=
User_
.
login
;
break
;
case
"lastname"
:
sort
=
User_
.
lastname
;
break
;
case
"firstnames"
:
sort
=
User_
.
firstnames
;
break
;
case
"birthday"
:
sort
=
User_
.
birthday
;
break
;
case
"nick"
:
sort
=
User_
.
nick
;
break
;
case
"email"
:
sort
=
User_
.
email
;
break
;
case
"address"
:
sort
=
User_
.
address
;
break
;
case
"zip"
:
sort
=
User_
.
zip
;
break
;
case
"postalTown"
:
sort
=
User_
.
postalTown
;
break
;
case
"town"
:
sort
=
User_
.
town
;
break
;
case
"phone"
:
sort
=
User_
.
phone
;
break
;
case
"gender"
:
sort
=
User_
.
gender
;
break
;
case
"confirmTime"
:
sort
=
User_
.
confirmTime
;
break
;
case
"id"
:
default
:
sort
=
User_
.
id
;
}
}
return
sort
;
}
// public SearchResult<User> searchEventUsers(SearchQuery query)
// {
// ArrayList<FacadeCallback<EventUser>> callbacks = new
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/AndPredicateCreator.java
View file @
3a29778
...
...
@@ -5,7 +5,7 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Path
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.metamodel.SingularAttribute
;
...
...
@@ -27,7 +27,7 @@ public class AndPredicateCreator<A, T extends ModelInterface> implements FacadeC
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
T
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
T
>
root
,
List
<
Predicate
>
predicates
)
{
if
(
searchval
==
null
||
attributes
==
null
||
attributes
.
isEmpty
())
{
return
;
}
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventLimiter.java
View file @
3a29778
...
...
@@ -4,11 +4,11 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Path
;
import
javax.persistence.criteria.Predicate
;
import
fi.codecrew.moya.model.EventUser_
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser_
;
import
fi.codecrew.moya.model.LanEvent
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
...
...
@@ -21,7 +21,7 @@ public class EventLimiter implements FacadeCallback<EventUser> {
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
EventUser_
.
event
),
ev
));
}
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventUserAccountSaldoPredicate.java
View file @
3a29778
...
...
@@ -5,14 +5,14 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Path
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
import
javax.persistence.criteria.Subquery
;
import
fi.codecrew.moya.model.AccountEvent_
;
import
fi.codecrew.moya.enums.DatabaseValueCompare
;
import
fi.codecrew.moya.model.AccountEvent
;
import
fi.codecrew.moya.model.AccountEvent_
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
...
...
@@ -27,7 +27,7 @@ public class EventUserAccountSaldoPredicate implements FacadeCallback<EventUser>
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
Subquery
<
BigDecimal
>
subq
=
cq
.
subquery
(
BigDecimal
.
class
);
Root
<
AccountEvent
>
acRoot
=
subq
.
from
(
AccountEvent
.
class
);
subq
.
where
(
cb
.
equal
(
acRoot
.
get
(
AccountEvent_
.
user
),
root
));
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventUserPlacegroupPredicate.java
View file @
3a29778
...
...
@@ -4,17 +4,17 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Path
;
import
javax.persistence.criteria.Predicate
;
import
fi.codecrew.moya.model.EventUser_
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser_
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
public
class
EventUserPlacegroupPredicate
implements
FacadeCallback
<
EventUser
>
{
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
predicates
.
add
(
cb
.
isNotEmpty
(
root
.
get
(
EventUser_
.
groupMemberships
)));
}
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventUserRolefilter.java
View file @
3a29778
...
...
@@ -8,7 +8,6 @@ import java.util.Set;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.From
;
import
javax.persistence.criteria.Path
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.criteria.Root
;
...
...
@@ -18,13 +17,13 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.model.AccountEvent_
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser_
;
import
fi.codecrew.moya.model.GroupMembership_
;
import
fi.codecrew.moya.model.Place_
;
import
fi.codecrew.moya.model.Product_
;
import
fi.codecrew.moya.model.Role_
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.Role
;
import
fi.codecrew.moya.model.Role_
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
public
class
EventUserRolefilter
implements
FacadeCallback
<
EventUser
>
{
...
...
@@ -49,7 +48,7 @@ public class EventUserRolefilter implements FacadeCallback<EventUser> {
return
checkedRoles
;
}
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
if
(
roles
!=
null
&&
!
roles
.
isEmpty
())
{
HashSet
<
Integer
>
roleids
=
new
HashSet
<
Integer
>();
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/EventuserToUserWrapper.java
0 → 100644
View file @
3a29778
package
fi
.
codecrew
.
moya
.
facade
.
callbacks
;
import
java.util.List
;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Path
;
import
javax.persistence.criteria.Predicate
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser_
;
import
fi.codecrew.moya.model.User
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
public
class
EventuserToUserWrapper
implements
FacadeCallback
<
EventUser
>
{
private
final
FacadeCallback
<
User
>[]
callbacks
;
@SafeVarargs
public
EventuserToUserWrapper
(
FacadeCallback
<
User
>...
wrapped
)
{
this
.
callbacks
=
wrapped
;
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
EventUser
>
root
,
List
<
Predicate
>
predicates
)
{
for
(
FacadeCallback
<
User
>
subcallback
:
callbacks
)
{
subcallback
.
exec
(
cb
,
cq
,
root
.
get
(
EventUser_
.
user
),
predicates
);
}
}
}
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/OrPredicateCreator.java
View file @
3a29778
...
...
@@ -4,7 +4,7 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Path
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.metamodel.SingularAttribute
;
...
...
@@ -25,7 +25,7 @@ public class OrPredicateCreator<A, T extends ModelInterface> implements FacadeCa
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
T
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
T
>
root
,
List
<
Predicate
>
predicates
)
{
if
(
searchstr
==
null
||
attributes
==
null
||
attributes
.
isEmpty
())
{
return
;
}
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/OrderCallback.java
View file @
3a29778
...
...
@@ -4,11 +4,14 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Expression
;
import
javax.persistence.criteria.Path
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.metamodel.SingularAttribute
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.utilities.jpa.FacadeCallback
;
import
fi.codecrew.moya.utilities.jpa.ModelInterface
;
...
...
@@ -17,6 +20,7 @@ public class OrderCallback<T extends ModelInterface> implements FacadeCallback<T
private
final
SingularAttribute
<?
super
T
,
?>
sort
;
private
final
boolean
asc
;
private
String
sortstr
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
OrderCallback
.
class
);
public
OrderCallback
(
boolean
asc
,
SingularAttribute
<?
super
T
,
?>
sortAttr
)
{
sort
=
sortAttr
;
...
...
@@ -31,16 +35,15 @@ public class OrderCallback<T extends ModelInterface> implements FacadeCallback<T
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
T
>
root
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
T
>
root
,
List
<
Predicate
>
predicates
)
{
Class
<?>
rettype
=
cq
.
getResultType
();
// Check if returntype is entity or are we for example counting results
if
(!
ModelInterface
.
class
.
isAssignableFrom
(
rettype
))
{
if
(!
ModelInterface
.
class
.
isAssignableFrom
(
rettype
))
{
return
;
}
Path
<?>
path
=
null
;
Expression
<?>
path
=
null
;
if
(
sort
==
null
)
{
if
(
sortstr
==
null
)
{
return
;
...
...
@@ -56,6 +59,9 @@ public class OrderCallback<T extends ModelInterface> implements FacadeCallback<T
if
(
path
==
null
)
{
return
;
}
if
(
path
.
getJavaType
().
equals
(
String
.
class
))
{
path
=
cb
.
lower
((
Expression
<
String
>)
path
);
}
if
(
asc
)
{
cq
.
orderBy
(
cb
.
asc
(
path
));
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/callbacks/PathStringSearchPredicateCreator.java
View file @
3a29778
...
...
@@ -5,7 +5,6 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.From
;
import
javax.persistence.criteria.Path
;
import
javax.persistence.criteria.Predicate
;
import
javax.persistence.metamodel.SingularAttribute
;
...
...
@@ -44,7 +43,7 @@ public abstract class PathStringSearchPredicateCreator<T extends ModelInterface,
}
@Override
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
T
>
path
,
List
<
Predicate
>
predicates
)
{
public
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
T
>
path
,
List
<
Predicate
>
predicates
)
{
if
(
searchstr
==
null
||
attributes
==
null
||
attributes
.
isEmpty
())
{
return
;
}
...
...
code/MoyaBeansClient/ejbModule/fi/codecrew/moya/beans/UserBeanLocal.java
View file @
3a29778
...
...
@@ -49,7 +49,7 @@ public interface UserBeanLocal {
* ID of the User entity to be searcher
* @return
*/
EventUser
findByUserId
(
Integer
userid
);
EventUser
findByUserId
(
Integer
userid
,
boolean
createEventuser
);
EventUser
findByEventUserId
(
Integer
integer
);
...
...
code/MoyaUtilities/src/main/java/fi/codecrew/moya/utilities/jpa/FacadeCallback.java
View file @
3a29778
...
...
@@ -4,14 +4,13 @@ import java.util.List;
import
javax.persistence.criteria.CriteriaBuilder
;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.
From
;
import
javax.persistence.criteria.
Path
;
import
javax.persistence.criteria.Predicate
;
public
interface
FacadeCallback
<
C
extends
ModelInterface
>
{
// void exec(CriteriaBuilder cb, CriteriaQuery<?> cq, Root<C> root,
// List<Predicate> predicates);
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
From
<?,
C
>
root
,
List
<
Predicate
>
predicates
);
void
exec
(
CriteriaBuilder
cb
,
CriteriaQuery
<?>
cq
,
Path
<
C
>
root
,
List
<
Predicate
>
predicates
);
}
code/MoyaWeb/WebContent/resources/cditools/user/eventuserlist.xhtml
View file @
3a29778
...
...
@@ -2,24 +2,20 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:h=
"http://java.sun.com/jsf/html"
xmlns:f=
"http://java.sun.com/jsf/core"
xmlns:composite=
"http://java.sun.com/jsf/composite"
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:p=
"http://primefaces.org/ui"
>
xmlns:ui=
"http://java.sun.com/jsf/facelets"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
xmlns:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:p=
"http://primefaces.org/ui"
>
<composite:interface>
</composite:interface>
<composite:implementation>
<p:dataTable
styleClass=
"bordertable"
id=
"usertable"
value=
"#{userSearchView.eventuserModel}"
rows=
"20"
paginator=
"true"
lazy=
"true"
var=
"user"
>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.nick']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"nick"
/>
</h:link>
</f:facet>
<p:dataTable
styleClass=
"bordertable"
id=
"usertable"
value=
"#{userSearchView.eventuserModel}"
rows=
"20"
paginator=
"true"
lazy=
"true"
var=
"user"
>
<p:column
headerText=
"#{i18n['user.nick']}"
sortBy=
"nick"
>
<h:outputText
styleClass=
"hoverable"
value=
"#{(empty user.nick)?'----':user.nick}"
/>
<div
class=
"userdata_popup"
>
<h:panelGrid
columns=
"3"
>
<h:panelGrid
columns=
"3"
>
<img
style=
"width: 100px;"
src=
"#{request.contextPath}/dydata/userimage/#{user.currentImage.id}.img"
alt=
"image"
/>
<h:panelGroup>
...
...
@@ -40,7 +36,7 @@
<h:outputText
value=
"#{user.email}"
/>
<br
/>
<h:outputText
value=
"#{i18n['user.accountBalance']}: "
/>
<h:outputText
value=
"#{user.accountBalance}"
>
<f:convertNumber
maxFractionDigits=
"2"
minFractionDigits=
"0"
/>
</h:outputText>
...
...
@@ -49,34 +45,23 @@
</div>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.firstNames']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"firstnames"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<p:column
sortBy=
"login"
headerText=
"#{i18n['user.login']}"
>
<h:outputText
value=
"#{wra.user.login}"
/>
</p:column>
<p:column
headerText=
"#{i18n['user.firstNames']}"
sortBy=
"firstnames"
>
<h:outputText
value=
"#{user.firstnames}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.lastName']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"lastname"
/>
</h:link>
</f:facet>
<p:column
headerText=
"#{i18n['user.lastName']}"
sortBy=
"lastname"
>
<h:outputText
value=
"#{user.lastname}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.email']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"email"
/>
</h:link>
</f:facet>
<p:column
headerText=
"#{i18n['user.email']}"
sortBy=
"email"
>
<h:outputText
value=
"#{user.email}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['userlist.searchcount']}"
/>
:
<h:outputText
value=
"#{userSearchView.resultcount}"
/>
</f:facet>
<button
onclick=
"location.replace('#{request.contextPath}/useradmin/edit.jsf?userid=#{user.user.id}')"
>
#{i18n['user.edit']}
</button>
</p:column>
...
...
@@ -85,15 +70,14 @@
</h:column> -->
</p:dataTable>
<script>
jQuery
(
function
()
{
jQuery
(
".hoverable"
).
hover
(
function
()
{
jQuery
(
this
).
next
().
fadeIn
(
'fast'
);
},
function
()
{
jQuery
(
this
).
next
().
fadeOut
(
'fast'
);
});
});
</script>
jQuery
(
function
()
{
jQuery
(
".hoverable"
).
hover
(
function
()
{
jQuery
(
this
).
next
().
fadeIn
(
'fast'
);
},
function
()
{
jQuery
(
this
).
next
().
fadeOut
(
'fast'
);
});
});
</script>
</composite:implementation>
</html>
...
...
code/MoyaWeb/WebContent/resources/cditools/user/list.xhtml
View file @
3a29778
...
...
@@ -7,48 +7,39 @@
</composite:interface>
<composite:implementation>
<h:outputScript
library=
"primefaces"
name=
"jquery/jquery.js"
target=
"head"
/>
<h:outputScript
library=
"primefaces"
name=
"jquery/jquery.js"
target=
"head"
/>
<p:dataTable
id=
"user"
value=
"#{userSearchView.results}"
var=
"wra"
>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.nick']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"nick"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<h:outputText
styleClass=
"hoverable"
value=
"#{(empty wra.user.nick)?'----':wra.user.nick}"
/>
<p:dataTable
id=
"user"
value=
"#{userSearchView.userModel}"
rows=
"20"
var=
"wra"
paginator=
"true"
lazy=
"true"
>
<p:column
sortBy=
"login"
headerText=
"#{i18n['user.login']}"
>
<h:outputText
value=
"#{wra.user.login}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.firstnames']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"firstnames"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<p:column
sortBy=
"nick"
headerText=
"#{i18n['user.nick']}"
>
<h:outputText
value=
"#{(empty wra.user.nick)?'----':wra.user.nick}"
/>
</p:column>
<p:column
headerText=
"#{i18n['user.firstNames']}"
sortBy=
"firstnames"
>
<h:outputText
value=
"#{wra.user.firstnames}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.lastName']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"lastname"
/>
</h:link>
</f:facet>
<p:column
headerText=
"#{i18n['user.lastName']}"
sortBy=
"lastname"
>
<h:outputText
value=
"#{wra.user.lastname}"
/>
</p:column>
<p:column
headerText=
"#{i18n['user.email']}"
sortBy=
"email"
>
<h:outputText
value=
"#{wra.user.email}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['userlist.searchcount']}"
/>
:
<h:outputText
value=
"#{userSearchView.resultcount}"
/>
</f:facet>
<h:link
rendered=
"#{!empty wra.eventuser}"
outcome=
"/useradmin/edit"
value=
"#{i18n['user.edit']}"
>
<f:param
name=
"userid"
value=
"#{wra.user.id}"
/>
</h:link>
<h:link
rendered=
"#{empty wra.eventuser}"
outcome=
"/useradmin/edit"
value=
"#{i18n['user.addToEvent']}"
onclick=
"return confirm('#{i18n['user.confirmUserToEventAdding']}')"
>
<f:param
name=
"userid"
value=
"#{wra.user.id}"
/>
</h:link>
<!-- <p:commandButton onClick="location.replace('#{request.contextPath}/useradmin/edit.jsf?userid=#{wra.user.id}')">#{i18n['user.edit']}</p:commandButton>
<!-- <p:commandButton onClick="location.replace('#{request.contextPath}/useradmin/edit.jsf?userid=#{wra.user.id}')">#{i18n['user.edit']}</p:commandButton>
<p:overlayPanel for="userinfoBtn">
<h:panelGrid columns="2">
<img style="width:100px;" src="#{request.contextPath}/dydata/userimage/#{wra.user.currentImage.id}.img" alt="image" />
...
...
@@ -65,15 +56,15 @@
</h:panelGroup>
</h:panelGrid>
</p:overlayPanel>
-->
-->
</p:column>
<!-- <h:column>
<h:commandButton action="#{userView.shop()}" value="#{i18n['user.shop']}" />
</h:column> -->
</p:dataTable>
<script>
jQuery
(
function
()
{
jQuery
(
".hoverable"
).
hover
(
function
()
{
...
...
code/MoyaWeb/WebContent/useradmin/list.xhtml
View file @
3a29778
...
...
@@ -69,7 +69,6 @@
</div>
</h:panelGroup>
</h:panelGrid>
<h:outputText
value=
"#{i18n['userlist.searchcount']}"
/>
:
<h:outputText
value=
"#{userSearchView.resultcount}"
/>
</h:form>
<p>
<users:list
rendered=
"#{!userSearchView.searchQuery.onlyThisEvent}"
/>
...
...
code/MoyaWeb/src/fi/codecrew/moya/HostnameFilter.java
View file @
3a29778
...
...
@@ -72,7 +72,7 @@ public class HostnameFilter implements Filter {
@Override
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
logger
.
info
(
"HostnameFilter called!"
);
//
logger.info("HostnameFilter called!");
HttpServletRequest
httpRequest
=
null
;
if
(
request
!=
null
&&
request
instanceof
HttpServletRequest
)
{
...
...
@@ -161,14 +161,14 @@ public class HostnameFilter implements Filter {
protected
void
parseHostname
(
HttpServletRequest
httpRequest
)
{
logger
.
info
(
"Path info {}"
,
httpRequest
.
getPathInfo
());
logger
.
info
(
"querystring {}"
,
httpRequest
.
getQueryString
());
logger
.
info
(
"ctxpath {}"
,
httpRequest
.
getContextPath
());
logger
.
info
(
"pathTranslated {}"
,
httpRequest
.
getPathTranslated
());
logger
.
info
(
"requestUri {}"
,
httpRequest
.
getRequestURI
());
logger
.
info
(
"URL {}"
,
httpRequest
.
getRequestURL
().
toString
());
logger
.
info
(
"servletpath {}"
,
httpRequest
.
getServletPath
());
logger
.
info
(
"servletCtx {}"
,
httpRequest
.
getServletContext
());
//
logger.info("Path info {}", httpRequest.getPathInfo());
//
logger.info("querystring {}", httpRequest.getQueryString());
//
logger.info("ctxpath {}", httpRequest.getContextPath());
//
logger.info("pathTranslated {}", httpRequest.getPathTranslated());
//
logger.info("requestUri {}", httpRequest.getRequestURI());
//
logger.info("URL {}", httpRequest.getRequestURL().toString());
//
logger.info("servletpath {}", httpRequest.getServletPath());
//
logger.info("servletCtx {}", httpRequest.getServletContext());
StringBuffer
url
=
httpRequest
.
getRequestURL
();
// logger.info("Original hostname {}", url);
// Subject subj = Subject.getSubject(AccessController.getContext());
...
...
code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_en.properties
View file @
3a29778
...
...
@@ -1154,6 +1154,7 @@ tournaments.tournament_type = Tournament typ
user.accountBalance
=
Account balance
user.accountEventHeader
=
Account events
user.accountevents
=
Account events
user.addToEvent
=
Associate user to event
user.address
=
Address
user.age
=
Age
user.bank
=
Bank
...
...
@@ -1163,6 +1164,7 @@ user.cardPower = Usertype
user.changePassword
=
Change password
user.changepassword.forUser
=
For user
user.changepassword.title
=
Change password
user.confirmUserToEventAdding
=
Are you sure you want to associate this user to this event?
user.create
=
Create user
user.createdmessage
=
User has been created successfully. You can now login.
user.cropImage
=
Crop image
...
...
code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_fi.properties
View file @
3a29778
...
...
@@ -1139,6 +1139,7 @@ tournaments.tournament_type = Turnauksen tyy
user.accountBalance
=
Tilin saldo
user.accountEventHeader
=
Tilitapahtumat
user.accountevents
=
Tilitapahtumat
user.addToEvent
=
Liit
\u
00E4 k
\u
00E4ytt
\u
00E4j
\u
00E4 tapahtumaan
user.address
=
Osoite
user.age
=
Ik
\u
00E4
user.bank
=
Pankki
...
...
@@ -1148,6 +1149,7 @@ user.cardPower = K\u00E4ytt\u00E4j\u00E4tyyppi
user.changePassword
=
Vaihda salasana
user.changepassword.forUser
=
K
\u
00E4ytt
\u
00E4j
\u
00E4lle
user.changepassword.title
=
Vaihda salasana
user.confirmUserToEventAdding
=
Oletko varma ett
\u
00E4 haluat liitt
\u
00E4
\u
00E4 t
\u
00E4m
\u
00E4n k
\u
00E4ytt
\u
00E4j
\u
00E4n t
\u
00E4h
\u
00E4n tapahtumaan?
user.create
=
Luo k
\u
00E4ytt
\u
00E4j
\u
00E4
user.createdmessage
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis
\u
00E4
\u
00E4n.
user.cropImage
=
Rajaa
...
...
code/MoyaWeb/src/fi/codecrew/moya/servlet/FileDownloadServlet.java
View file @
3a29778
...
...
@@ -60,13 +60,15 @@ public class FileDownloadServlet extends GenericImageServlet {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FileDownloadServlet
.
class
);
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
private
static
final
Pattern
URLPATTERN
=
Pattern
.
compile
(
"([^./]+)"
);
/**
* Usage MoyaWeb/dydata/format/ possible formats logo userimage/<eventuserid>.jpg cardtemplate/<cardtemplateid>.png usercard/
* Usage MoyaWeb/dydata/format/ possible formats logo
* userimage/<eventuserid>.jpg cardtemplate/<cardtemplateid>.png usercard/
*/
@Override
protected
ImageMover
getImagedata
()
{
...
...
@@ -132,7 +134,7 @@ public class FileDownloadServlet extends GenericImageServlet {
{
int
userid
=
Integer
.
parseInt
(
urlparts
.
get
(
1
));
EventUser
usr
=
userbean
.
findByUserId
(
userid
);
EventUser
usr
=
userbean
.
findByUserId
(
userid
,
false
);
logger
.
info
(
"Trying to print usercard for user {}"
,
usr
);
if
(
usr
!=
null
)
{
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/ImportView.java
View file @
3a29778
...
...
@@ -164,11 +164,11 @@ public class ImportView extends GenericCDIView {
// }
//
public
ArrayList
<
Us
er
>
getUsers
()
{
public
ArrayList
<
ImportWrapp
er
>
getUsers
()
{
return
users
;
}
public
void
setUsers
(
ArrayList
<
Us
er
>
users
)
{
public
void
setUsers
(
ArrayList
<
ImportWrapp
er
>
users
)
{
this
.
users
=
users
;
}
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/UserSearchView.java
View file @
3a29778
...
...
@@ -11,6 +11,8 @@ import javax.inject.Named;
import
org.primefaces.model.LazyDataModel
;
import
org.primefaces.model.SortOrder
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.enums.apps.UserPermission
;
...
...
@@ -29,6 +31,7 @@ public class UserSearchView extends PaginationView<UserWrapper> {
public
static
class
UserWrapper
implements
ModelInterface
{
private
static
final
long
serialVersionUID
=
8881170508994116964L
;
private
final
User
user
;
private
final
EventUser
eventuser
;
...
...
@@ -72,6 +75,9 @@ public class UserSearchView extends PaginationView<UserWrapper> {
private
UserSearchQuery
usersearch
=
new
UserSearchQuery
();
private
LazyDataModel
<
EventUser
>
eventuserModel
;
private
LazyDataModel
<
UserWrapper
>
userModel
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
UserSearchView
.
class
);
public
void
addToCart
()
{
...
...
@@ -90,6 +96,7 @@ public class UserSearchView extends PaginationView<UserWrapper> {
public
void
initView
()
{
if
(
requirePermissions
(
permbean
.
hasPermission
(
UserPermission
.
VIEW_ALL
)))
{
super
.
setSort
(
"id"
);
eventuserModel
=
new
LazyDataModel
<
EventUser
>()
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -99,15 +106,18 @@ public class UserSearchView extends PaginationView<UserWrapper> {
SortOrder
sortOrder
,
Map
<
String
,
String
>
filters
)
{
UserSearchQuery
sq
=
getSearchQuery
();
sq
.
setPagesize
(
pageSize
);
if
(
pageSize
>
0
)
{
if
(
pageSize
>
0
)
{
sq
.
setPage
(
first
/
pageSize
);
}
sq
.
setSort
(
sortField
);
sq
.
setSortDirection
(
SortOrder
.
ASCENDING
.
equals
(
sortOrder
)
?
QuerySortOrder
.
ASCENDING
:
(
SortOrder
.
DESCENDING
.
equals
(
sortOrder
)
?
QuerySortOrder
.
DESCENDING
:
QuerySortOrder
.
UNSORTED
));
SearchResult
<
EventUser
>
sr
=
userbean
.
getThisEventsUsers
(
sq
);
logger
.
info
(
"sortfield {}, order {}, querysort: {}"
,
sortField
,
sortOrder
,
sq
.
getSortDirection
());
this
.
setRowCount
(
new
Long
(
sr
.
getResultcount
()).
intValue
());
this
.
setWrappedData
(
sr
.
getResults
());
setResultcount
(
sr
.
getResultcount
());
setEventUserResults
(
sr
.
getResults
());
...
...
@@ -125,28 +135,67 @@ public class UserSearchView extends PaginationView<UserWrapper> {
};
if
(
usersearch
.
isOnlyThisEvent
()
||
usersearch
.
getSearch
()
==
null
||
usersearch
.
getSearch
().
isEmpty
())
{
usersearch
.
setOnlyThisEvent
(
true
);
SearchResult
<
EventUser
>
eventusers
=
userbean
.
getThisEventsUsers
(
getSearchQuery
());
this
.
setResultcount
(
eventusers
.
getResultcount
());
this
.
setEventUserResults
(
eventusers
.
getResults
());
}
else
{
SearchResult
<
User
>
result
=
userbean
.
getUsers
(
getSearchQuery
());
setResultcount
(
result
.
getResultcount
());
ArrayList
<
UserWrapper
>
res
=
new
ArrayList
<
UserWrapper
>();
for
(
User
u
:
result
.
getResults
())
{
res
.
add
(
new
UserWrapper
(
u
,
userbean
.
getEventUser
(
u
,
false
)));
userModel
=
new
LazyDataModel
<
UserWrapper
>()
{
private
static
final
long
serialVersionUID
=
1L
;
@Override
public
List
<
UserWrapper
>
load
(
int
first
,
int
pageSize
,
String
sortField
,
SortOrder
sortOrder
,
Map
<
String
,
String
>
filters
)
{
UserSearchQuery
sq
=
getSearchQuery
();
sq
.
setPagesize
(
pageSize
);
if
(
pageSize
>
0
)
{
sq
.
setPage
(
first
/
pageSize
);
}
if
(
sortField
==
null
||
sortField
.
isEmpty
())
{
sortField
=
"id"
;
}
sq
.
setSort
(
sortField
);
sq
.
setSortDirection
(
SortOrder
.
ASCENDING
.
equals
(
sortOrder
)
?
QuerySortOrder
.
ASCENDING
:
(
SortOrder
.
DESCENDING
.
equals
(
sortOrder
)
?
QuerySortOrder
.
DESCENDING
:
QuerySortOrder
.
UNSORTED
));
SearchResult
<
User
>
sr
=
userbean
.
getUsers
(
sq
);
this
.
setRowCount
(
new
Long
(
sr
.
getResultcount
()).
intValue
());
setResultcount
(
sr
.
getResultcount
());
List
<
UserWrapper
>
wrappers
=
getUserWrappers
(
sr
.
getResults
());
setResults
(
wrappers
);
this
.
setWrappedData
(
wrappers
);
return
wrappers
;
}
setResults
(
res
);
}
@Override
public
void
setRowIndex
(
int
rowIndex
)
{
if
(
getPageSize
()
==
0
)
{
rowIndex
=
-
1
;
}
super
.
setRowIndex
(
rowIndex
);
}
};
super
.
beginConversation
();
}
}
@Override
public
String
newSearch
()
{
String
ret
=
super
.
newSearch
();
return
ret
;
}
private
List
<
UserWrapper
>
getUserWrappers
(
List
<
User
>
users
)
{
ArrayList
<
UserWrapper
>
res
=
new
ArrayList
<
UserWrapper
>();
for
(
User
u
:
users
)
{
res
.
add
(
new
UserWrapper
(
u
,
userbean
.
getEventUser
(
u
,
false
)));
}
return
res
;
}
@Override
public
UserSearchQuery
getSearchQuery
()
{
return
usersearch
;
...
...
@@ -168,4 +217,12 @@ public class UserSearchView extends PaginationView<UserWrapper> {
this
.
eventuserModel
=
eventuserModel
;
}
public
LazyDataModel
<
UserWrapper
>
getUserModel
()
{
return
userModel
;
}
public
void
setUserModel
(
LazyDataModel
<
UserWrapper
>
userModel
)
{
this
.
userModel
=
userModel
;
}
}
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/UserView.java
View file @
3a29778
...
...
@@ -153,7 +153,7 @@ public class UserView extends GenericCDIView {
public
EventUser
getSelectedUser
()
{
if
(
user
==
null
)
{
if
(
userid
!=
null
&&
permbean
.
hasPermission
(
UserPermission
.
VIEW_ALL
))
{
user
=
userbean
.
findByUserId
(
userid
);
user
=
userbean
.
findByUserId
(
userid
,
true
);
}
else
{
user
=
getCurrentUser
();
}
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/helper/LayoutView.java
View file @
3a29778
...
...
@@ -89,7 +89,7 @@ public class LayoutView implements Serializable {
return
null
;
while
(
selectedTop
.
getParent
()
!=
null
)
{
logger
.
info
(
"Traversing to top {}, key {}"
,
selectedTop
,
selectedTop
.
getKey
());
logger
.
debug
(
"Traversing to top {}, key {}"
,
selectedTop
,
selectedTop
.
getKey
());
selectedSet
.
add
(
selectedTop
);
selectedTop
=
selectedTop
.
getParent
();
}
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment