Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Codecrew
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
30
Merge Requests
2
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 37cc2361
authored
Jan 11, 2015
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
melkein korjattu, vielä vähän edessä
1 parent
1ddcd4e6
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
144 additions
and
6 deletions
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/ReaderBeanLocal.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BarcodeBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/GroupMembershipFacade.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/ReaderFacade.java
code/moya-database/src/main/java/fi/codecrew/moya/model/Reader.java
code/moya-utils/src/main/java/fi/codecrew/moya/utilities/jsf/GenericEntityFinderConverter.java
code/moya-web/WebContent/info/cardlessIncoming.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/converter/EventUserConverter.java
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/ReaderBeanLocal.java
View file @
37cc236
...
...
@@ -58,8 +58,29 @@ public interface ReaderBeanLocal {
List
<
ReaderEvent
>
getLastReaderEvents
();
/**
* check and brogress barcode that origins from browser
*
* @param code
* @return
*/
ReaderEvent
checkCode
(
String
code
);
/**
* Check and brogress barcode from some external reader which is only named
* @param readerIdent
* @param code
* @return
*/
ReaderEvent
checkCode
(
String
readerIdent
,
String
code
);
/**
* Check and progress barcode from some specific reader
*
* @param reader
* @param code
* @return
*/
ReaderEvent
checkCode
(
Reader
reader
,
String
code
);
List
<
ReaderEvent
>
getReaderEvents
(
Integer
readerId
,
Integer
count
);
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BarcodeBean.java
View file @
37cc236
...
...
@@ -327,6 +327,15 @@ public class BarcodeBean implements BarcodeBeanLocal {
return
user
;
}
// try if it is our Eticket -code
EventUser
user
=
getUserFromTextCode
(
barcode
);
logger
.
info
(
"Found maybe some nice user {}"
,
user
);
if
(
user
!=
null
)
return
user
;
}
catch
(
NumberFormatException
x
)
{
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ReaderBean.java
View file @
37cc236
...
...
@@ -80,6 +80,12 @@ public class ReaderBean implements ReaderBeanLocal {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ReaderBean
.
class
);
@Override
public
ReaderEvent
checkCode
(
String
code
)
{
return
checkCode
(
ReaderType
.
BARCODE
.
toString
()+
":handheld_reader_via_browser"
,
code
);
}
@Override
public
ReaderEvent
checkCode
(
String
readerIdent
,
String
code
)
{
Reader
reader
=
readerfacade
.
findOrCreateByIdent
(
readerIdent
);
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/facade/GroupMembershipFacade.java
View file @
37cc236
...
...
@@ -162,15 +162,15 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi
}
public
Long
findPlaceProductCount
(
Product
product
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
return
null
;
/*
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<GroupMembership> root = cq.from(GroupMembership.class);
cq.select(cb.count(root));
cq.where(cb.equal(root.get(GroupMembership_.placeProduct), product));
return super.getSingleNullableResult(getEm().createQuery(cq));
*/
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/facade/ReaderFacade.java
View file @
37cc236
...
...
@@ -28,6 +28,7 @@ import javax.persistence.criteria.CriteriaBuilder;
import
javax.persistence.criteria.CriteriaQuery
;
import
javax.persistence.criteria.Root
;
import
fi.codecrew.moya.model.ReaderType
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -77,8 +78,19 @@ public class ReaderFacade extends IntegerPkGenericFacade<Reader> {
private
static
synchronized
Reader
createIdent
(
ReaderFacade
rf
,
LanEvent
ev
,
String
ident
)
{
Reader
ret
=
rf
.
findByIdent
(
ev
,
ident
);
if
(
ret
==
null
)
{
ret
=
new
Reader
(
ev
,
ident
);
ret
.
setDescription
(
"Automagically created"
);
// if there is doubledot (and text before it), check if it is reader type
if
(
ident
.
indexOf
(
':'
)
>
0
)
{
String
typeString
=
ident
.
substring
(
0
,
ident
.
indexOf
(
':'
));
try
{
ret
.
setType
(
ReaderType
.
valueOf
(
typeString
));
}
catch
(
IllegalArgumentException
x
)
{}
}
rf
.
create
(
ret
);
logger
.
info
(
"Created new reader for ident {} reader {}"
,
ident
,
ev
);
}
...
...
code/moya-database/src/main/java/fi/codecrew/moya/model/Reader.java
View file @
37cc236
...
...
@@ -68,7 +68,7 @@ public class Reader extends GenericEntity {
@Column
(
nullable
=
false
,
name
=
"type"
)
@Enumerated
(
EnumType
.
STRING
)
private
ReaderType
type
=
ReaderType
.
RFID
;
private
ReaderType
type
=
ReaderType
.
BARCODE
;
public
static
final
String
EVENT_ID_COLUMN
=
"event_id"
;
@ManyToOne
()
...
...
code/moya-utils/src/main/java/fi/codecrew/moya/utilities/jsf/GenericEntityFinderConverter.java
0 → 100644
View file @
37cc236
/*
* Copyright Codecrew Ry
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package
fi
.
codecrew
.
moya
.
utilities
.
jsf
;
import
fi.codecrew.moya.utilities.jpa.ModelInterface
;
import
javax.faces.component.UIComponent
;
import
javax.faces.context.FacesContext
;
import
javax.faces.convert.Converter
;
/**
* Use this converter if you want to do some database find -magic via string
* @param <T>
*/
public
abstract
class
GenericEntityFinderConverter
<
T
extends
ModelInterface
>
implements
Converter
{
protected
abstract
T
find
(
Integer
id
);
protected
abstract
T
find
(
String
searchString
);
public
GenericEntityFinderConverter
()
{
super
();
}
@Override
public
Object
getAsObject
(
FacesContext
context
,
UIComponent
component
,
String
value
)
{
T
ret
=
null
;
Integer
id
=
null
;
if
(
value
!=
null
)
{
try
{
id
=
Integer
.
parseInt
(
value
);
if
(
id
!=
null
&&
id
>
0
)
{
ret
=
find
(
id
);
}
}
catch
(
NumberFormatException
x
)
{
// it's not number, it's normal search stuff
ret
=
find
(
value
);
}
}
return
ret
;
}
@Override
public
String
getAsString
(
FacesContext
context
,
UIComponent
component
,
Object
value
)
{
String
ret
=
"0"
;
if
(
value
!=
null
&&
value
instanceof
ModelInterface
)
{
ModelInterface
entity
=
(
ModelInterface
)
value
;
if
(
entity
.
getId
()
!=
null
)
{
ret
=
entity
.
getId
().
toString
();
}
}
return
ret
;
}
}
code/moya-web/WebContent/info/cardlessIncoming.xhtml
View file @
37cc236
...
...
@@ -17,6 +17,8 @@
<reader:backendReader
selectvalue=
"#{i18n['barcodeReader.readBarcode']}"
selectaction=
"#{cardlessIncomingView.polledRead}"
/>
<br
/><br
/>
<h:form>
<p:hotkey
bind=
"enter"
actionListener=
"#{cardlessIncomingView.changeUser}"
/>
TODO: kato että formi ei lähe entteristä, vaan ajetaan toi pirun listeneri. Mut vaan tässä formissa.
<p:autoComplete
styleClass=
"usermultisearch"
id=
"acsb"
value=
"#{infoView.multiSearchUser}"
completeMethod=
"#{infoView.matchMulti}"
converter=
"#{eventUserConverter}"
var=
"usrx"
itemLabel=
"#{usrx.shortUserDescriptor}"
itemValue=
"#{usrx}"
>
<p:ajax
event=
"itemSelect"
listener=
"#{cardlessIncomingView.changeUser}"
/>
</p:autoComplete>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/converter/EventUserConverter.java
View file @
37cc236
...
...
@@ -22,20 +22,36 @@ import javax.ejb.EJB;
import
javax.enterprise.context.RequestScoped
;
import
javax.inject.Named
;
import
fi.codecrew.moya.beans.ReaderBeanLocal
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.ReaderEvent
;
import
fi.codecrew.moya.utilities.jsf.GenericEntityFinderConverter
;
import
fi.codecrew.moya.utilities.jsf.GenericIntegerEntityConverter
;
@Named
@RequestScoped
public
class
EventUserConverter
extends
Generic
IntegerEntity
Converter
<
EventUser
>
{
public
class
EventUserConverter
extends
Generic
EntityFinder
Converter
<
EventUser
>
{
@EJB
private
UserBeanLocal
userbean
;
@EJB
private
ReaderBeanLocal
readerBean
;
@Override
protected
EventUser
find
(
Integer
id
)
{
return
userbean
.
findByEventUserId
(
id
);
}
@Override
protected
EventUser
find
(
String
searchString
)
{
ReaderEvent
event
=
readerBean
.
checkCode
(
searchString
);
if
(
event
==
null
)
return
null
;
return
event
.
getUser
();
}
}
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
View file @
37cc236
...
...
@@ -483,3 +483,4 @@ incomingFlow.count=M\u00E4\u00E4r\u00E4
user.birthday
=
user.confirmUserToEventAdding
=
user.invalidLoginCredentials
=
barcodeReader.readBarcode
=
Lue viivakoodi
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