Commit a6f97792 by Petri Jarvisalo

Merge branch 'devel' of codecrew.fi:bortal into devel

2 parents e65c38cb 8e9138de
Showing with 382 additions and 118 deletions
......@@ -35,6 +35,7 @@ import com.pdfjet.TextLine;
import fi.codecrew.moya.facade.CardTemplateFacade;
import fi.codecrew.moya.facade.EventUserFacade;
import fi.codecrew.moya.facade.PrintedCardFacade;
import fi.codecrew.moya.facade.UserFacade;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.EventUser;
......@@ -61,6 +62,8 @@ public class CardPrintBean implements CardPrintBeanLocal {
private UserFacade userfacade;
@EJB
private BarcodeBean barcodeBean;
@EJB
private PrintedCardFacade printedCardFacade;
private static final Logger logger = LoggerFactory.getLogger(CardPrintBean.class);
/**
......@@ -225,10 +228,12 @@ public class CardPrintBean implements CardPrintBeanLocal {
}
@Override
public byte[] constructPNG(EventUser user) throws Exception {
public byte[] constructPNG(PrintedCard card) throws Exception {
PrintedCard card = cardTemplateBean.checkPrintedCard(user);
logger.info("Printing card {}", card);
card = printedCardFacade.reload(card);
// logger.info("Printing card tpl {} with template image {}",
// card.getTemplate(), card.getTemplate().getImage());
EventUser user = card.getUser();
BufferedImage face = ImageIO.read(new ByteArrayInputStream(user.getUser().getCurrentImage().getImageData()));
......
......@@ -17,6 +17,7 @@ import javax.imageio.ImageIO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.CardTemplateFacade;
import fi.codecrew.moya.facade.EventUserFacade;
......@@ -250,4 +251,24 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
public List<CardTemplate> findAll() {
return cdFacade.findAll();
}
// TODO: Laita takaisin kun rest-kutsut authaa. -- tuomari
// @RolesAllowed(UserPermission.S_WRITE_ROLES)
@Override
public PrintedCard saveCard(PrintedCard card) {
return printedcardfacade.merge(card);
}
@Override
// TODO: Laita takaisin kun rest-kutsut authaa. -- tuomari
// @RolesAllowed(UserPermission.S_WRITE_ROLES)
public PrintedCard findCard(Integer id) {
return printedcardfacade.find(id);
}
@Override
public List<PrintedCard> getCardsByState(CardState... state) {
return printedcardfacade.findByState(state);
}
}
package fi.codecrew.moya.beans;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.PrintedCardFacade;
import fi.codecrew.moya.model.PrintedCard;
/**
* Session Bean implementation class CardTemplateBean
*/
@Stateless
@LocalBean
@DeclareRoles({ UserPermission.S_WRITE_ROLES })
public class PrintedCardBean implements PrintedCardBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(PrintedCardBean.class);
/**
* Default constructor.
*/
public PrintedCardBean() {
// TODO Auto-generated constructor stub
}
@EJB
private PrintedCardFacade printedCardFacade;
@RolesAllowed(UserPermission.S_WRITE_ROLES)
@Override
public PrintedCard save(PrintedCard card) {
return printedCardFacade.merge(card);
}
@Override
@RolesAllowed(UserPermission.S_WRITE_ROLES)
public PrintedCard find(Integer id) {
return printedCardFacade.find(id);
}
}
......@@ -205,6 +205,19 @@ public class ReaderBean implements ReaderBeanLocal {
Reader reader = readerfacade.find(readerId);
return readerEventFacade.findLastEvents(reader, 20);
}
@Override
public ReaderEvent getLastReaderEvent(Integer readerId) {
Reader reader = readerfacade.find(readerId);
List<ReaderEvent> list = readerEventFacade.findLastEvents(reader, 1);
if(list.size() > 0)
return list.get(0);
return null;
}
@Override
public ReaderEvent getEvent(Integer eventid) {
......@@ -271,4 +284,5 @@ public class ReaderBean implements ReaderBeanLocal {
readerfacade.create(reader);
}
}
package fi.codecrew.moya.facade;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.ejb.EJB;
......@@ -8,13 +10,15 @@ import javax.ejb.Stateless;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import fi.codecrew.moya.model.PrintedCard_;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.LanEvent;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.model.PrintedCard_;
@Stateless
@LocalBean
......@@ -39,7 +43,7 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
return getSingleNullableResult(getEm().createQuery(cq));
}
public PrintedCard findByBarcode(String barcode) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
......@@ -89,4 +93,22 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
return getSingleNullableResult(q);
}
public List<PrintedCard> findByState(CardState... state) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<PrintedCard> cq = cb.createQuery(PrintedCard.class);
Root<PrintedCard> root = cq.from(PrintedCard.class);
List<Predicate> preds = new ArrayList<Predicate>();
preds.add(cb.equal(root.get(PrintedCard_.event), eventbean.getCurrentEvent()));
if (state.length > 0) {
preds.add(root.get(PrintedCard_.cardState).in(Arrays.asList(state)));
}
cq.where(preds.toArray(new Predicate[preds.size()]));
return getEm().createQuery(cq).getResultList();
}
}
......@@ -4,7 +4,7 @@ import java.util.List;
import javax.ejb.Local;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.util.MassPrintResult;
@Local
......@@ -15,5 +15,5 @@ public interface CardPrintBeanLocal {
public void acceptMassPrintResult(MassPrintResult mpr);
byte[] constructPNG(EventUser user) throws Exception;
byte[] constructPNG(PrintedCard card) throws Exception;
}
......@@ -5,6 +5,7 @@ import java.util.List;
import javax.ejb.Local;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
......@@ -37,4 +38,10 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> {
CardTemplate getUsersCardtype(EventUser user);
PrintedCard saveCard(PrintedCard card);
PrintedCard findCard(Integer id);
List<PrintedCard> getCardsByState(CardState... pendingPrint);
}
......@@ -35,4 +35,5 @@ public interface EventBeanLocal {
List<LanEventPrivateProperty> getPrivateProperties();
LanEventPrivateProperty saveOrCreatePrivateProperty(LanEventPrivateProperty privateProperty);
}
package fi.codecrew.moya.beans;
import javax.ejb.Local;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.utilities.jsf.EntityFinderBean;
@Local
public interface PrintedCardBeanLocal extends EntityFinderBean<PrintedCard> {
PrintedCard save(PrintedCard card);
}
......@@ -37,4 +37,6 @@ public interface ReaderBeanLocal {
void createReader(Reader reader);
ReaderEvent getLastReaderEvent(Integer readerId);
}
package fi.codecrew.moya.enums;
public enum CardState {
// Missing user image, template, template image
// or other printing error.
DATA_MISSING,
PENDING_VALIDATION,
REJECTED,
VALIDATED,
PENDING_PRINT,
PRINTING_IN_PROGRESS,
PRINTED;
public String toStringLower() {
return this.toString().toLowerCase();
}
......
......@@ -4,4 +4,9 @@
<attribute name="provider-id" value="jsf-no-op-library-provider"/>
</node>
</facet>
<facet id="jst.jaxrs">
<node name="libprov">
<attribute name="provider-id" value="com.sun.enterprise.jst.server.sunappsrv.jaxrsLibraryproviderID"/>
</node>
</facet>
</root>
......@@ -9,4 +9,5 @@
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.7"/>
<installed facet="jst.jsf" version="2.1"/>
<installed facet="jst.jaxrs" version="1.1"/>
</faceted-project>
......@@ -71,6 +71,11 @@
<servlet-name>PlaceMap</servlet-name>
<servlet-class>fi.codecrew.moya.servlet.PlaceMap</servlet-class>
</servlet>
<servlet>
<description>JAX-RS Tools Generated - Do not modify</description>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
......@@ -141,4 +146,8 @@
<servlet-name>PlaceGroupPdf</servlet-name>
<url-pattern>/PlaceGroupPdf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
\ No newline at end of file
......@@ -8,13 +8,15 @@
<f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{userView.initView}" />
<f:event type="preRenderView" listener="#{userView.prepareCardDownload}" />
<f:event type="preRenderView" listener="#{incomingView.initPrintCardView}" />
</f:metadata>
<ui:define name="content">
<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
<h:panelGrid columns="3">
<h:form>
<p:poll interval="1" listener="#{incomingView.polledRead}" />
</h:form>
<h:panelGroup>
<user:edit commitaction="#{incomingView.saveUser()}" commitvalue="#{i18n['user.save']}" />
......
......@@ -15,8 +15,8 @@
<h:outputLabel for="billnr" value="#{i18n['bill.billNumber']}:" />
<h:outputText id="billnr" value="#{cc.attrs.bill.billNumber}" />
<h:outputLabel rendered="{!cc.attrs.bill.expired}" for="refnr" value="#{i18n['bill.referencenumber']}" />
<h:outputText rendered="{!cc.attrs.bill.expired}" id="refnr" value="#{cc.attrs.bill.referenceNumber}" />
<h:outputLabel rendered="{!cc.attrs.bill.expired and sessionHandler.isEventBoolProperty('ALLOW_BILLING') }" for="refnr" value="#{i18n['bill.referencenumber']}" />
<h:outputText rendered="{!cc.attrs.bill.expired and sessionHandler.isEventBoolProperty('ALLOW_BILLING') }" id="refnr" value="#{cc.attrs.bill.referenceNumber}" />
<h:outputLabel for="billAmount" value="#{i18n['bill.billAmount']}" />
<h:outputText id="billAmount" value="#{cc.attrs.bill.totalPrice()}">
......@@ -28,11 +28,11 @@
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
<h:outputLabel for="paymenttime" value="#{i18n['bill.paymentTime']}:" />
<h:outputText id="paymenttime" value="#{cc.attrs.bill.paymentTime eq 0 ? i18n['bill.paymentTime.now'] : cc.attrs.bill.paymentTime}" />
<h:outputLabel for="paymenttime" rendered=" #{sessionHandler.isEventBoolProperty('ALLOW_BILLING')}" value="#{i18n['bill.paymentTime']}:" />
<h:outputText id="paymenttime" rendered=" #{sessionHandler.isEventBoolProperty('ALLOW_BILLING')}" value="#{cc.attrs.bill.paymentTime eq 0 ? i18n['bill.paymentTime.now'] : cc.attrs.bill.paymentTime}" />
<h:outputLabel rendered="{!cc.attrs.bill.expired}" for="noticetime" value="#{i18n['bill.noticetime']}:" />
<h:outputText rendered="{!cc.attrs.bill.expired}" id="noticetime" value="#{cc.attrs.bill.noticetime}" />
<h:outputLabel rendered="{!cc.attrs.bill.expired and sessionHandler.isEventBoolProperty('ALLOW_BILLING') }" for="noticetime" value="#{i18n['bill.noticetime']}:" />
<h:outputText rendered="{!cc.attrs.bill.expired and sessionHandler.isEventBoolProperty('ALLOW_BILLING')}" id="noticetime" value="#{cc.attrs.bill.noticetime}" />
<h:outputLabel rendered="#{cc.attrs.bill != null}" for="expires" value="#{i18n['bill.expires']}:" />
<h:outputText rendered="#{cc.attrs.bill != null}" id="expires" value="#{cc.attrs.bill.expires.time}">
......
package fi.codecrew.moya.rest;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardPrintBeanLocal;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.rest.pojo.PrintedCardRestPojo;
@RequestScoped
@Path("/card")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON })
public class PrinterRestView {
@EJB
private CardTemplateBeanLocal cardbean;
@EJB
private CardPrintBeanLocal printbean;
@EJB
private UserBeanLocal userbean;
private static final Logger logger = LoggerFactory.getLogger(PrinterRestView.class);
@GET
@Path("/Printed/{id}/")
public PrintedCardRestPojo setCardPrinted(@PathParam("id") int cardId, @QueryParam("key") String hash) throws Exception {
PrintedCard card = cardbean.findCard(cardId);
card.setCardState(CardState.PRINTED);
card = cardbean.saveCard(card);
return new PrintedCardRestPojo(card);
}
@GET
@Path("/Get/{id}/")
public PrintedCardRestPojo getCard(@PathParam("id") int cardId, @QueryParam("key") String hash) throws Exception {
PrintedCard card = cardbean.findCard(cardId);
return new PrintedCardRestPojo(card);
}
@GET
@Path("/GetImage/{id}/")
public Response getUserCard(@PathParam("id") int cardId, @QueryParam("key") String hash) throws Exception {
ResponseBuilder ret = null;
PrintedCard card = null;
try {
card = cardbean.findCard(cardId);
ret = Response.ok(printbean.constructPNG(card), "image/png");
} catch (Throwable t) {
card.setCardState(CardState.DATA_MISSING);
cardbean.saveCard(card);
logger.warn("Error creating card for user cardId " + cardId, t);
ret = Response.status(Response.Status.NOT_ACCEPTABLE);
}
return ret.build();
}
@GET
@Path("/ListUnprinted")
public List<PrintedCardRestPojo> getUserCard(@QueryParam("key") String key) throws Exception {
List<PrintedCardRestPojo> ret = PrintedCardRestPojo.parseCards(cardbean.getCardsByState(CardState.PENDING_PRINT));
logger.info("Returning card pojos: {} for key {}", ret, key);
return ret;
}
@GET
@Path("/ListAll")
public List<PrintedCardRestPojo> getAllCards(@QueryParam("key") String key) throws Exception {
List<PrintedCardRestPojo> ret = PrintedCardRestPojo.parseCards(cardbean.getCardsByState());
logger.info("Returning card pojos: {} for key {}", ret, key);
return ret;
}
}
package fi.codecrew.moya.rest.pojo;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import fi.codecrew.moya.model.PrintedCard;
@XmlRootElement(name = "cards")
public class PrintedCardRestPojo {
public PrintedCardRestPojo() {
card = null;
}
public PrintedCardRestPojo(PrintedCard card)
{
this.card = card;
}
@XmlTransient
private final PrintedCard card;
@XmlElement(name = "cardId")
public Integer getId()
{
return card.getId();
}
@XmlElement(name = "cardTemplate")
public String getTemplate()
{
return card.getTemplate().getName();
}
@XmlElement(name = "username")
public String getUsername()
{
return card.getUser().getNick();
}
@XmlElement(name = "wholeName")
public String getWholeName()
{
return card.getUser().getWholeName();
}
@XmlElement(name = "state")
public String getState() {
return card.getCardState().toString();
}
public static List<PrintedCardRestPojo> parseCards(List<PrintedCard> cards)
{
ArrayList<PrintedCardRestPojo> ret = new ArrayList<PrintedCardRestPojo>();
for (PrintedCard c : cards) {
ret.add(new PrintedCardRestPojo(c));
}
return ret;
}
}
......@@ -70,7 +70,8 @@ public class FileDownloadServlet extends GenericImageServlet {
if (urlparts.isEmpty()) {
ret.setResponse(HttpServletResponse.SC_NOT_FOUND);
} else if (urlparts.get(0).equals("logo")) {
}
else if (urlparts.get(0).equals("logo")) {
LanEventProperty logo = orgbean.getProperty(LanEventPropertyKey.EVENT_LOGO);
if (logo != null) {
ret.setData(logo.getByteValue());
......
......@@ -8,9 +8,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardPrintBeanLocal;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
/**
* Servlet implementation class UploadServlet
......@@ -37,6 +39,8 @@ public class UserPngImageServlet extends GenericImageServlet {
@EJB
private CardPrintBeanLocal cardprint;
private CardTemplateBeanLocal cardbean;
private static final Logger logger = LoggerFactory.getLogger(UserPngImageServlet.class);
// /dydata/(userimage|...)/stuff...
......@@ -45,14 +49,12 @@ public class UserPngImageServlet extends GenericImageServlet {
protected ImageMover getImagedata() {
EventUser usr = permbean.getCurrentUser();
logger.info("Trying to print imagedata for user {}", usr);
ImageMover ret = new ImageMover();
if (usr != null) {
PrintedCard card = cardbean.checkPrintedCard(usr);
try {
byte[] img = cardprint.constructPNG(usr);
byte[] img = cardprint.constructPNG(card);
if (img.length > 0)
{
ret.setData(img);
......
......@@ -43,6 +43,9 @@ public class ReaderView extends GenericCDIView {
private String usersearch;
private String barcode;
private Reader reader;
private boolean pollingMode = false;
private ReaderEvent lastReadEvent = null;
private transient ListDataModel<UserCardWrapper> userlist;
private ListDataModel<ReaderEvent> readerEventList;
......@@ -272,6 +275,14 @@ public class ReaderView extends GenericCDIView {
}
public String getBarcode() {
if(pollingMode) {
ReaderEvent event = readerbean.getLastReaderEvent(namecontainer.getReaderId());
if(!event.equals(lastReadEvent)) {
return event.getValue();
}
}
if(readerEventList != null && readerEventList.isRowAvailable()) {
if(readerEventList.getRowData().getReader().getType() == ReaderType.BARCODE) {
return readerEventList.getRowData().getValue();
......@@ -314,6 +325,19 @@ public class ReaderView extends GenericCDIView {
}
public void initializeForPolling() {
// on polling mode, we do not use list, we use database and remember last readerEvent
this.pollingMode = true;
this.barcode = null;
lastReadEvent = readerbean.getLastReaderEvent(namecontainer.getReaderId());
}
public void pollingBarcodeHandled() {
lastReadEvent = readerbean.getLastReaderEvent(namecontainer.getReaderId());
}
public EventUser getUser() {
......@@ -336,4 +360,12 @@ public class ReaderView extends GenericCDIView {
return null;
}
public boolean isNewBarcodes() {
if(!pollingMode)
return false;
return (!readerbean.getLastReaderEvent(namecontainer.getReaderId()).equals(lastReadEvent));
}
}
......@@ -24,7 +24,6 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardPrintBeanLocal;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.PrintedCardBeanLocal;
import fi.codecrew.moya.beans.ReaderBeanLocal;
import fi.codecrew.moya.beans.RoleBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
......@@ -56,7 +55,6 @@ public class UserView extends GenericCDIView {
@EJB
private transient UserBeanLocal userbean;
@EJB
private transient ReaderBeanLocal readerbean;
......@@ -89,9 +87,6 @@ public class UserView extends GenericCDIView {
@EJB
private transient CardTemplateBeanLocal cardBean;
@EJB
private transient PrintedCardBeanLocal printedCardBean;
private List<Role> usersRoles;
@EJB
private transient RoleBeanLocal rolebean;
......@@ -306,6 +301,7 @@ public class UserView extends GenericCDIView {
/**
* attach barcode or rfid to card
*
* @return
*/
public String attachBarcodeToCard() {
......@@ -322,13 +318,13 @@ public class UserView extends GenericCDIView {
if(readerView.getBarcode() != null && !readerView.getBarcode().isEmpty()) {
card.setBarcode(readerView.getBarcode());
printedCardBean.save(card);
}
// todo: kato että liittäminen tukee kanssa "barcode" -lukijoita jne.
// kato kanssa korttihaku, että se tuklee niitä, kuitenkin tarvitaa ne
if(readerView.getReaderEvent() != null) {
logger.debug("barcode {} to card {} ",readerView.getBarcode(),card.getUser().getNick());
cardBean.saveCard(card);
} else if(readerView.getReaderEvent() != null) {
readerbean.assocTagToCard(readerView.getReaderEvent().getValue(), readerView.getReaderEvent().getReader().getIdentification(), card);
}
return null;
}
......@@ -342,6 +338,7 @@ public class UserView extends GenericCDIView {
authView.executeAdduserAutoLogin(user, getPassword());
return "/admin/adduser/update";
}
public String createAdminUser() {
userbean.createNewUser(user, getPassword());
canSave = permbean.hasPermission(UserPermission.MODIFY);
......
......@@ -20,40 +20,84 @@ public class IncomingView extends GenericCDIView {
private static final long serialVersionUID = 802344850073689859L;
private static final Logger logger = LoggerFactory.getLogger(IncomingView.class);
@Inject
@SelectedUser
private transient EventUser user;
@Inject
@SelectedUser
private transient EventUser user;
@Inject
private UserView userview;
@Inject
private ReaderView readerView;
public void initView() {
@Inject
private UserView userview;
@Inject
private ReaderView readerView;
public void initView() {
super.beginConversation();
}
private boolean initialized = false;
public void initPrintCardView() {
if (!initialized) {
logger.debug("INITIALIZING!!!!");
initializePoller();
initialized = true;
super.beginConversation();
}
public String saveUser() {
logger.info("Saving user in incomingView");
userview.saveUser();
return null;
}
public String saveUser() {
logger.info("Saving user in incomingView");
userview.saveUser();
return null;
}
public void initializePoller() {
readerView.initializeForPolling();
}
public void polledRead() {
if (!readerView.isNewBarcodes()) {
return;
}
public String selectUser() {
EventUser user = readerView.getUser();
if(user == null) {
logger.debug("got no user from barcode");
return null;
logger.debug(":Barcode:");
EventUser user = readerView.getUser();
if (user != null) {
if (!user.equals(userview.getUser())) {
logger.info("found user {}, redirecting", user.getNick());
userview.setUser(user);
// userview.prepareCardDownload();
// PURKKAAA, sori tästä, koitan refaktoroida kauniiksi ku kerkiän -TKwtf
super.navihandler.redirectNavigation("printCard.jsf?userid="+user.getUser().getId());
}
logger.debug("got user from barcode");
userview.setUser(user);
userview.prepareCardDownload();
return "printCard";
} else {
// still there, it must be "clean" barcode
if (userview.getUser() != null) {
userview.attachBarcodeToCard();
}
}
readerView.pollingBarcodeHandled();
}
public String selectUser() {
EventUser user = readerView.getUser();
if (user == null) {
logger.debug("got no user from barcode");
return null;
}
logger.debug("got user from barcode");
userview.setUser(user);
//userview.prepareCardDownload();
return "printCard";
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!