Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Antti Väyrynen
/
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 033f3e9f
authored
May 11, 2013
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
incomingflota
1 parent
8e9138de
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
108 additions
and
13 deletions
code/MoyaWeb/WebContent/WEB-INF/web.xml
code/MoyaWeb/WebContent/admin/incoming/printCard.xhtml
code/MoyaWeb/WebContent/resources/cditools/reader/rfid.xhtml
code/MoyaWeb/WebContent/resources/cditools/user/edit.xhtml
code/MoyaWeb/WebContent/resources/cditools/user/previewAndPrintCard.xhtml
code/MoyaWeb/src/fi/codecrew/moya/servlet/FileDownloadServlet.java
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/UserView.java
code/MoyaWeb/src/fi/codecrew/moya/web/flow/IncomingView.java
code/MoyaWeb/WebContent/WEB-INF/web.xml
View file @
033f3e9
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
<context-param>
<context-param>
<param-name>
javax.faces.PROJECT_STAGE
</param-name>
<param-name>
javax.faces.PROJECT_STAGE
</param-name>
<!-- Production | Development -->
<!-- Production | Development -->
<param-value>
Production
</param-value>
<param-value>
Development
</param-value>
</context-param>
</context-param>
<context-param>
<context-param>
<param-name>
javax.faces.FACELETS_SKIP_COMMENTS
</param-name>
<param-name>
javax.faces.FACELETS_SKIP_COMMENTS
</param-name>
...
...
code/MoyaWeb/WebContent/admin/incoming/printCard.xhtml
View file @
033f3e9
...
@@ -12,28 +12,31 @@
...
@@ -12,28 +12,31 @@
</f:metadata>
</f:metadata>
<ui:define
name=
"content"
>
<ui:define
name=
"content"
>
<h:outputScript
library=
"primefaces"
name=
"jquery/jquery.js"
target=
"head"
/>
<h:outputScript
library=
"primefaces"
name=
"jquery/jquery.js"
target=
"head"
/>
<h:panelGrid
columns=
"3"
>
<h:form>
<h:form>
<p:poll
interval=
"1"
listener=
"#{incomingView.polledRead}"
/>
<p:poll
interval=
"1"
listener=
"#{incomingView.polledRead}"
/>
</h:form>
</h:form>
<h:panelGrid
columns=
"3"
>
<h:panelGroup>
<h:panelGroup>
<user:edit
commitaction=
"#{incomingView.saveUser()}"
commitvalue=
"#{i18n['user.save']}"
/>
<user:edit
commitaction=
"#{incomingView.saveUser()}"
commitvalue=
"#{i18n['user.save']}"
camAlwaysOn=
"true"
/>
</h:panelGroup>
</h:panelGroup>
<h:panelGroup>
<h:panelGroup>
<h:form>
<h:form>
<p:imageCropper
value=
"#{userView.croppedImage}"
aspectRatio=
"0.7317073170731707"
image=
"/dydata/userimage/#{userView.user.currentImage.id}.jpg"
/>
<p:imageCropper
value=
"#{userView.croppedImage}"
aspectRatio=
"0.7317073170731707"
image=
"/dydata/userimage/#{userView.user.currentImage.id}.jpg"
/>
<h:commandButton
action=
"#{userView.crop}"
value=
"#{i18n['user.cropImage']}"
/>
<h:commandButton
action=
"#{userView.crop}"
value=
"#{i18n['user.cropImage']}"
/>
<h:commandButton
action=
"#{userView.cancelCrop}"
value=
"#{i18n['user.cropImage']}"
/>
</h:form>
</h:form>
</h:panelGroup>
</h:panelGroup>
<h:panelGroup>
<h:panelGroup>
<h:form>
<h:form>
<user:previewAndPrintCard
/>
<p:graphicImage
url=
"/dydata/usercard/#{userView.user.user.id}.png"
width=
"300"
/><br
/>
<h:commandButton
action=
"#{incomingView.printCard}"
value=
"#{i18n['print']}"
/>
<p:commandButton
action=
"#{userView.acceptPrintedCard()}"
value=
"accept printed card"
/>
</h:form>
</h:form>
</h:panelGroup>
</h:panelGroup>
</h:panelGrid>
</h:panelGrid>
...
...
code/MoyaWeb/WebContent/resources/cditools/reader/rfid.xhtml
View file @
033f3e9
...
@@ -22,9 +22,9 @@ xmlns:reader="http://java.sun.com/jsf/composite/cditools/reader"
...
@@ -22,9 +22,9 @@ xmlns:reader="http://java.sun.com/jsf/composite/cditools/reader"
<h:dataTable
border=
"1"
id=
"reader"
value=
"#{readerListDataView.readers}"
var=
"rr"
>
<h:dataTable
border=
"1"
id=
"reader"
value=
"#{readerListDataView.readers}"
var=
"rr"
>
<h:column>
<h:column>
<f:facet
name=
"header"
>
<f:facet
name=
"header"
>
<h:outputText
value=
"
$
{i18n['reader.name']}"
/>
<h:outputText
value=
"
#
{i18n['reader.name']}"
/>
</f:facet>
</f:facet>
<h:outputText
value=
"#{rr}"
/>
<h:outputText
value=
"#{rr
.identification
}"
/>
</h:column>
</h:column>
<h:column>
<h:column>
<h:commandButton
action=
"#{readerListDataView.selectReader}"
value=
"#{i18n['reader.select']}"
/>
<h:commandButton
action=
"#{readerListDataView.selectReader}"
value=
"#{i18n['reader.select']}"
/>
...
...
code/MoyaWeb/WebContent/resources/cditools/user/edit.xhtml
View file @
033f3e9
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<composite:interface>
<composite:interface>
<composite:attribute
name=
"creating"
required=
"false"
default=
"false"
/>
<composite:attribute
name=
"creating"
required=
"false"
default=
"false"
/>
<composite:attribute
name=
"commitaction"
required=
"true"
method-signature=
"java.lang.String action()"
/>
<composite:attribute
name=
"commitaction"
required=
"true"
method-signature=
"java.lang.String action()"
/>
<composite:attribute
name=
"camAlwaysOn"
required=
"false"
default=
"false"
/>
</composite:interface>
</composite:interface>
<composite:implementation>
<composite:implementation>
...
@@ -19,20 +20,25 @@
...
@@ -19,20 +20,25 @@
<h:panelGroup>
<h:panelGroup>
<ui:fragment
rendered=
"#{not empty userView.user.id}"
>
<ui:fragment
rendered=
"#{not empty userView.user.id}"
>
<p:dialog
id=
"chartPanel"
for=
"webcamButton"
modal=
"true"
dynamic=
"true"
widgetVar=
"webcamDialog"
>
<p:dialog
rendered=
"#{!cc.attrs.camAlwaysOn}"
id=
"chartPanel"
for=
"webcamButton"
modal=
"true"
dynamic=
"true"
widgetVar=
"webcamDialog"
>
<p:photoCam
widgetVar=
"pc"
listener=
"#{userView.oncapture}"
update=
"@all"
/>
<p:photoCam
widgetVar=
"pc"
listener=
"#{userView.oncapture}"
update=
"@all"
/>
<p:commandButton
type=
"button"
value=
"Capture"
onclick=
"pc.capture()"
/>
<p:commandButton
type=
"button"
value=
"Capture"
onclick=
"pc.capture()"
/>
</p:dialog>
</p:dialog>
<h:outputText
rendered=
"#{empty userView.user.currentImage}"
value=
"#{i18n['user.noCurrentImage']}"
/>
<h:outputText
rendered=
"#{empty userView.user.currentImage}"
value=
"#{i18n['user.noCurrentImage']}"
/>
<ui:fragment
rendered=
"#{!empty userView.user.currentImage}"
>
<ui:fragment
rendered=
"#{!empty userView.user.currentImage}"
>
<img
style=
"width: 150px;"
src=
"#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img"
alt=
"image"
/>
<img
style=
"width: 150px;"
src=
"#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img"
alt=
"image"
/>
</ui:fragment>
</ui:fragment>
<br
/>
<br
/>
<p:commandButton
id=
"webcamButton"
value=
"#{i18n['userimage.webcam']}"
onclick=
"webcamDialog.show()"
type=
"button"
/>
<p:commandButton
rendered=
"#{!cc.attrs.camAlwaysOn}"
id=
"webcamButton"
value=
"#{i18n['userimage.webcam']}"
onclick=
"webcamDialog.show()"
type=
"button"
/>
<br
/>
<br
/>
<br
/>
<br
/>
<ui:fragment
rendered=
"#{cc.attrs.camAlwaysOn}"
>
<p:photoCam
widgetVar=
"pc"
listener=
"#{userView.oncapture}"
update=
"@all"
/>
<p:commandButton
type=
"button"
value=
"Capture"
onclick=
"pc.capture()"
/>
</ui:fragment>
<p:fileUpload
id=
"uploadfile"
required=
"TRUE"
requiredMessage=
"Required!"
invalidSizeMessage=
"#{i18n['user.imageTooBig']}"
sizeLimit=
"1024"
value=
"#{userView.image}"
mode=
"simple"
/>
<p:fileUpload
id=
"uploadfile"
required=
"TRUE"
requiredMessage=
"Required!"
invalidSizeMessage=
"#{i18n['user.imageTooBig']}"
sizeLimit=
"1024"
value=
"#{userView.image}"
mode=
"simple"
/>
<p:message
for=
"uploadfile"
/>
<p:message
for=
"uploadfile"
/>
...
...
code/MoyaWeb/WebContent/resources/cditools/user/previewAndPrintCard.xhtml
View file @
033f3e9
...
@@ -9,9 +9,12 @@
...
@@ -9,9 +9,12 @@
<composite:implementation>
<composite:implementation>
<div>
<p:graphicImage
url=
"/dydata/usercard/#{userView.user.user.id}.png"
width=
"300"
/><br
/>
<p:commandButton
action=
"#{userView.prepareCardDownload()}"
rendered=
"#{userView.waitForAcceptance==false}"
value=
"print card"
ajax=
"true"
update=
"@form"
onclick=
"PrimeFaces.monitorDownload(start, stop)"
>
<p:commandButton
action=
"#{userView.prepareCardDownload()}"
rendered=
"#{userView.waitForAcceptance==false}"
value=
"print card"
ajax=
"true"
update=
"@form"
onclick=
"PrimeFaces.monitorDownload(start, stop)"
>
<p:fileDownload
value=
"#{userView.streamedFile}"
/>
<p:fileDownload
value=
"#{userView.streamedFile}"
/>
</p:commandButton>
</p:commandButton>
</div>
</composite:implementation>
</composite:implementation>
</html>
</html>
...
...
code/MoyaWeb/src/fi/codecrew/moya/servlet/FileDownloadServlet.java
View file @
033f3e9
...
@@ -17,13 +17,16 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -17,13 +17,16 @@ import javax.servlet.http.HttpServletResponse;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.CardPrintBeanLocal
;
import
fi.codecrew.moya.beans.CardTemplateBeanLocal
;
import
fi.codecrew.moya.beans.CardTemplateBeanLocal
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.beans.PermissionBeanLocal
;
import
fi.codecrew.moya.beans.PermissionBeanLocal
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.model.CardTemplate
;
import
fi.codecrew.moya.model.CardTemplate
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.LanEventProperty
;
import
fi.codecrew.moya.model.LanEventProperty
;
import
fi.codecrew.moya.model.LanEventPropertyKey
;
import
fi.codecrew.moya.model.LanEventPropertyKey
;
import
fi.codecrew.moya.model.PrintedCard
;
import
fi.codecrew.moya.model.UserImage
;
import
fi.codecrew.moya.model.UserImage
;
/**
/**
...
@@ -41,6 +44,13 @@ public class FileDownloadServlet extends GenericImageServlet {
...
@@ -41,6 +44,13 @@ public class FileDownloadServlet extends GenericImageServlet {
@EJB
@EJB
private
transient
UserBeanLocal
userbean
;
private
transient
UserBeanLocal
userbean
;
@EJB
private
transient
CardTemplateBeanLocal
cardbean
;
@EJB
private
transient
CardPrintBeanLocal
cardprint
;
@EJB
@EJB
private
transient
PermissionBeanLocal
permbean
;
private
transient
PermissionBeanLocal
permbean
;
...
@@ -57,6 +67,14 @@ public class FileDownloadServlet extends GenericImageServlet {
...
@@ -57,6 +67,14 @@ public class FileDownloadServlet extends GenericImageServlet {
private
static
final
Pattern
URLPATTERN
=
Pattern
.
compile
(
"([^./]+)"
);
private
static
final
Pattern
URLPATTERN
=
Pattern
.
compile
(
"([^./]+)"
);
/**
* Usage MoyaWeb/dydata/format/
* possible formats
* logo
* userimage/<eventuserid>.jpg
* cardtemplate/<cardtemplateid>.png
* usercard/
*/
@Override
@Override
protected
ImageMover
getImagedata
()
{
protected
ImageMover
getImagedata
()
{
ImageMover
ret
=
new
ImageMover
();
ImageMover
ret
=
new
ImageMover
();
...
@@ -117,6 +135,28 @@ public class FileDownloadServlet extends GenericImageServlet {
...
@@ -117,6 +135,28 @@ public class FileDownloadServlet extends GenericImageServlet {
}
}
}
}
}
else
if
(
urlparts
.
get
(
0
).
equals
(
"usercard"
)
&&
urlparts
.
size
()
>
2
)
{
int
userid
=
Integer
.
parseInt
(
urlparts
.
get
(
1
));
EventUser
usr
=
userbean
.
findByUserId
(
userid
);
logger
.
info
(
"Trying to print usercard for user {}"
,
usr
);
if
(
usr
!=
null
)
{
PrintedCard
card
=
cardbean
.
checkPrintedCard
(
usr
);
try
{
byte
[]
img
=
cardprint
.
constructPNG
(
card
);
if
(
img
.
length
>
0
)
{
ret
.
setData
(
img
);
ret
.
setImagetype
(
"image/png"
);
}
}
catch
(
Exception
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
}
}
if
(
ret
.
getImagetype
()
==
null
)
{
if
(
ret
.
getImagetype
()
==
null
)
{
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/user/UserView.java
View file @
033f3e9
...
@@ -27,6 +27,7 @@ import fi.codecrew.moya.beans.EventBeanLocal;
...
@@ -27,6 +27,7 @@ import fi.codecrew.moya.beans.EventBeanLocal;
import
fi.codecrew.moya.beans.ReaderBeanLocal
;
import
fi.codecrew.moya.beans.ReaderBeanLocal
;
import
fi.codecrew.moya.beans.RoleBeanLocal
;
import
fi.codecrew.moya.beans.RoleBeanLocal
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.beans.UserBeanLocal
;
import
fi.codecrew.moya.enums.CardState
;
import
fi.codecrew.moya.enums.apps.UserPermission
;
import
fi.codecrew.moya.enums.apps.UserPermission
;
import
fi.codecrew.moya.model.CardTemplate
;
import
fi.codecrew.moya.model.CardTemplate
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser
;
...
@@ -167,6 +168,7 @@ public class UserView extends GenericCDIView {
...
@@ -167,6 +168,7 @@ public class UserView extends GenericCDIView {
userbean
.
saveCroppedImage
(
user
.
getUser
().
getCurrentImage
(),
userbean
.
saveCroppedImage
(
user
.
getUser
().
getCurrentImage
(),
croppedImage
.
getLeft
(),
croppedImage
.
getTop
(),
croppedImage
.
getLeft
(),
croppedImage
.
getTop
(),
croppedImage
.
getWidth
(),
croppedImage
.
getHeight
());
croppedImage
.
getWidth
(),
croppedImage
.
getHeight
());
user
=
userbean
.
getEventUser
(
newImage
.
getUser
());
user
=
userbean
.
getEventUser
(
newImage
.
getUser
());
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
logger
.
info
(
"Error converting image"
,
e
);
logger
.
info
(
"Error converting image"
,
e
);
...
@@ -318,6 +320,8 @@ public class UserView extends GenericCDIView {
...
@@ -318,6 +320,8 @@ public class UserView extends GenericCDIView {
if
(
readerView
.
getBarcode
()
!=
null
&&
!
readerView
.
getBarcode
().
isEmpty
())
{
if
(
readerView
.
getBarcode
()
!=
null
&&
!
readerView
.
getBarcode
().
isEmpty
())
{
card
.
setBarcode
(
readerView
.
getBarcode
());
card
.
setBarcode
(
readerView
.
getBarcode
());
card
.
setCardState
(
CardState
.
VALIDATED
);
logger
.
debug
(
"barcode {} to card {} "
,
readerView
.
getBarcode
(),
card
.
getUser
().
getNick
());
logger
.
debug
(
"barcode {} to card {} "
,
readerView
.
getBarcode
(),
card
.
getUser
().
getNick
());
cardBean
.
saveCard
(
card
);
cardBean
.
saveCard
(
card
);
}
else
if
(
readerView
.
getReaderEvent
()
!=
null
)
{
}
else
if
(
readerView
.
getReaderEvent
()
!=
null
)
{
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/flow/IncomingView.java
View file @
033f3e9
package
fi
.
codecrew
.
moya
.
web
.
flow
;
package
fi
.
codecrew
.
moya
.
web
.
flow
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
javax.inject.Named
;
...
@@ -7,9 +8,16 @@ import javax.inject.Named;
...
@@ -7,9 +8,16 @@ import javax.inject.Named;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.CardTemplateBeanLocal
;
import
fi.codecrew.moya.beans.PermissionBeanLocal
;
import
fi.codecrew.moya.beans.ReaderBeanLocal
;
import
fi.codecrew.moya.enums.CardState
;
import
fi.codecrew.moya.enums.apps.UserPermission
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.PrintedCard
;
import
fi.codecrew.moya.web.annotations.SelectedUser
;
import
fi.codecrew.moya.web.annotations.SelectedUser
;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
import
fi.codecrew.moya.web.cdiview.reader.ReaderNameContainer
;
import
fi.codecrew.moya.web.cdiview.reader.ReaderView
;
import
fi.codecrew.moya.web.cdiview.reader.ReaderView
;
import
fi.codecrew.moya.web.cdiview.user.UserView
;
import
fi.codecrew.moya.web.cdiview.user.UserView
;
...
@@ -29,6 +37,17 @@ public class IncomingView extends GenericCDIView {
...
@@ -29,6 +37,17 @@ public class IncomingView extends GenericCDIView {
@Inject
@Inject
private
ReaderView
readerView
;
private
ReaderView
readerView
;
@Inject
private
ReaderNameContainer
namecontainer
;
@EJB
private
CardTemplateBeanLocal
cardBean
;
@EJB
private
PermissionBeanLocal
permBean
;
public
void
initView
()
{
public
void
initView
()
{
super
.
beginConversation
();
super
.
beginConversation
();
...
@@ -37,7 +56,10 @@ public class IncomingView extends GenericCDIView {
...
@@ -37,7 +56,10 @@ public class IncomingView extends GenericCDIView {
private
boolean
initialized
=
false
;
private
boolean
initialized
=
false
;
public
void
initPrintCardView
()
{
public
void
initPrintCardView
()
{
if
(!
permbean
.
hasPermission
(
UserPermission
.
MODIFY
)
||
namecontainer
.
getReaderId
()
==
null
||
namecontainer
.
getReaderId
()
<=
0
)
{
super
.
navihandler
.
redirectNavigation
(
"index.jsf"
);
}
if
(!
initialized
)
{
if
(!
initialized
)
{
logger
.
debug
(
"INITIALIZING!!!!"
);
logger
.
debug
(
"INITIALIZING!!!!"
);
initializePoller
();
initializePoller
();
...
@@ -79,6 +101,7 @@ public class IncomingView extends GenericCDIView {
...
@@ -79,6 +101,7 @@ public class IncomingView extends GenericCDIView {
// still there, it must be "clean" barcode
// still there, it must be "clean" barcode
if
(
userview
.
getUser
()
!=
null
)
{
if
(
userview
.
getUser
()
!=
null
)
{
userview
.
attachBarcodeToCard
();
userview
.
attachBarcodeToCard
();
}
}
}
}
...
@@ -99,5 +122,21 @@ public class IncomingView extends GenericCDIView {
...
@@ -99,5 +122,21 @@ public class IncomingView extends GenericCDIView {
//userview.prepareCardDownload();
//userview.prepareCardDownload();
return
"printCard"
;
return
"printCard"
;
}
}
public
String
printCard
()
{
PrintedCard
card
=
cardBean
.
checkPrintedCard
(
user
);
card
.
setCardState
(
CardState
.
VALIDATED
);
cardBean
.
saveCard
(
card
);
return
null
;
}
}
}
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