Commit b2593292 by Tuomas Riihimäki

Card status changing

1 parent 1c03cfcd
...@@ -272,7 +272,7 @@ public class CardTemplateBean implements CardTemplateBeanLocal { ...@@ -272,7 +272,7 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
} }
@Override @Override
public PrintedCard setCardState(int cardId, CardState state) throws Exception { public PrintedCard setCardState(Integer cardId, CardState state) throws Exception {
PrintedCard card = printedcardfacade.find(cardId); PrintedCard card = printedcardfacade.find(cardId);
switch (state) switch (state)
{ {
......
...@@ -44,6 +44,6 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> { ...@@ -44,6 +44,6 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> {
List<PrintedCard> getCardsByState(CardState... pendingPrint); List<PrintedCard> getCardsByState(CardState... pendingPrint);
PrintedCard setCardState(int cardId, CardState printed) throws Exception; PrintedCard setCardState(Integer cardId, CardState printed) throws Exception;
} }
<!DOCTYPE html <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:users="http://java.sun.com/jsf/composite/cditools/user"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core">
<h:body> <h:body>
<ui:composition template="#{sessionHandler.template}"> <ui:composition template="#{sessionHandler.template}">
<f:metadata> <f:metadata>
<f:event type="preRenderView" listener="#{userOverviewView.initView()}" /> <f:event type="preRenderView" listener="#{userOverviewView.initView()}" />
</f:metadata> </f:metadata>
<ui:define name="content"> <ui:define name="content">
<p:dialog id="rejectDialog" widgetVar="dialog"> <p:dialog id="rejectDialog" widgetVar="dialog">
<p>Diibadaaba diibadaaba, daaba dii</p> <p>Diibadaaba diibadaaba, daaba dii</p>
<p:inputTextarea /> <p:inputTextarea />
<br/> <br />
<p:commandButton oncomplete="dialog.hide()" actionListener="todo" value="Apply"/> <p:commandButton oncomplete="dialog.hide()" actionListener="#{userOverviewView.rejectCard()}" value="Apply" />
<p:commandButton onclick="dialog.hide()" type="button" value="Cancel"/> <p:commandButton onclick="dialog.hide()" type="button" value="Cancel" />
</p:dialog> </p:dialog>
<h:form id="form"> <h:form id="form">
<p:dataTable value="#{userOverviewView.userOverviewItems}" var="cartItem" binding="#{table}" id="cartOverviewTable"> <p:dataTable value="#{userOverviewView.userOverviewItems}" var="cartItem" binding="#{table}" id="cartOverviewTable">
<p:column style="#{cartItem.printedCard == null ? 'background:grey;' : ''}"> <p:column style="#{cartItem.printedCard == null ? 'background:grey;' : ''}">
<h:panelGroup layout="block" id="schneider" style="background: red;" styleClass="cardstatus-#{cartItem.printedCard == null ? 'nonprintable' : cartItem.printedCard.cardState.toStringLower()}"> <h:panelGroup layout="block" id="schneider" style="background: red;" styleClass="cardstatus-#{cartItem.printedCard == null ? 'nonprintable' : cartItem.printedCard.cardState.toStringLower()}">
<ui:fragment rendered="#{!empty cartItem.eventUser.currentImage}"> <ui:fragment rendered="#{!empty cartItem.eventUser.currentImage}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{cartItem.eventUser.currentImage.id}.img" alt="image" /> <img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{cartItem.eventUser.currentImage.id}.img" alt="image" />
</ui:fragment> </ui:fragment>
<ui:fragment rendered="#{empty cartItem.eventUser.currentImage}"> <ui:fragment rendered="#{empty cartItem.eventUser.currentImage}">
<h:outputText value="#{i18n['overview.noimage']}" /> <h:outputText value="#{i18n['overview.noimage']}" />
</ui:fragment> </ui:fragment>
</h:panelGroup> </h:panelGroup>
</p:column> </p:column>
<p:column style="#{cartItem.printedCard == null ? 'background:grey;' : ''}"> <p:column id="cardinfo" style="#{cartItem.printedCard == null ? 'background:grey;' : ''}">
<h2><h:outputText value="#{cartItem.eventUser.nick}" /></h2> <h2>
<h:outputText value="#{cartItem.eventUser.firstnames} #{cartItem.eventUser.lastname}" /> <h:outputText value="#{cartItem.eventUser.nick}" />
<h:outputText value="zz #{cartItem.printedCard.template.name}" /> </h2>
<h:panelGrid columns="2" border="0">
<h:outputText value="#{i18n['user.wholeName']}" />
<h:outputText value="#{cartItem.eventUser.firstnames} #{cartItem.eventUser.lastname}" />
<h:outputText value="#{i18n['printedCard.template']}" />
<h:outputText value="#{cartItem.printedCard.template.name}" />
<h:outputText value="#{i18n['printedCard.cardState']}" />
<h:outputText value="#{cartItem.printedCard.cardState}" />
</h:panelGrid>
</p:column> </p:column>
<p:column styleClass="cardstatus-#{cartItem.printedCard == null ? 'nonprintable' : cartItem.printedCard.cardState.toStringLower()}"> <p:column styleClass="cardstatus-#{cartItem.printedCard == null ? 'nonprintable' : cartItem.printedCard.cardState.toStringLower()}">
<p:commandButton value="OK #{table.rowIndex}" actionListener="#{cartItem.acceptCard}" ajax="true" update="schneider"> <p:commandButton value="OK #{table.rowIndex}" actionListener="#{userOverviewView.acceptCard()}" ajax="true" update="schneider cardinfo">
<!-- <f:ajax execute="uov-items" render="@all"></f:ajax> --> <!-- <f:ajax execute="uov-items" render="@all"></f:ajax> -->
</p:commandButton> </p:commandButton>
<p:commandButton id="Reject" value="Reject" onclick="dialog.show();" type="button" /> <p:commandButton id="Reject" value="Reject" onclick="dialog.show();" type="button" />
</p:column> </p:column>
</p:dataTable> </p:dataTable>
</h:form> </h:form>
......
...@@ -3,9 +3,7 @@ ...@@ -3,9 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui" xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui" xmlns:users="http://java.sun.com/jsf/composite/cditools/user"
xmlns:shop="http://java.sun.com/jsf/composite/cditools/shop" xmlns:shop="http://java.sun.com/jsf/composite/cditools/shop" xmlns:reader="http://java.sun.com/jsf/composite/cditools/reader">
xmlns:reader="http://java.sun.com/jsf/composite/cditools/reader"
>
<h:body> <h:body>
<ui:composition template="#{sessionHandler.template}"> <ui:composition template="#{sessionHandler.template}">
<ui:param name="thispage" value="page.user.create" /> <ui:param name="thispage" value="page.user.create" />
...@@ -18,7 +16,7 @@ ...@@ -18,7 +16,7 @@
<h1>#{i18n['sendPicture.header']}</h1> <h1>#{i18n['sendPicture.header']}</h1>
<users:usertabs tabId="picture" /> <users:usertabs tabId="picture" />
</ui:define> </ui:define>
<ui:define name="content"> <ui:define name="content">
...@@ -47,15 +45,23 @@ ...@@ -47,15 +45,23 @@
</h:panelGrid> </h:panelGrid>
<ui:fragment rendered="#{userView.canManage()}"> <ui:fragment rendered="#{userView.canManage()}">
<h2>Ylläpito</h2> <h2>Ylläpito</h2>
<h:form> <h:form>
<users:previewAndPrintCard /> <users:previewAndPrintCard />
<p:commandButton action="#{userView.acceptPrintedCard()}" value="accept printed card" /> <p:commandButton action="#{userView.acceptPrintedCard()}" value="accept printed card" />
</h:form> </h:form>
<h:form rendered="#{!empty userView.printedCard}">
<h:selectOneMenu value="#{userView.printedCard.cardState}">
<f:selectItems value="#{userView.printedCardStates}" />
</h:selectOneMenu>
<h:commandButton action="#{userView.setCardState()}" value="#{i18n['printedCard.setState']}" />
</h:form>
<h3>RFID</h3> <h3>RFID</h3>
<reader:barcode_rfid selectvalue="#{i18n['readerevent.associateToUser']}" selectaction="#{userView.attachBarcodeToCard()}"/> <reader:barcode_rfid selectvalue="#{i18n['readerevent.associateToUser']}" selectaction="#{userView.attachBarcodeToCard()}" />
</ui:fragment> </ui:fragment>
......
package fi.codecrew.moya.web.cdiview.user; package fi.codecrew.moya.web.cdiview.user;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal; import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard; import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
...@@ -21,28 +24,65 @@ public class UserOverviewView extends GenericCDIView { ...@@ -21,28 +24,65 @@ public class UserOverviewView extends GenericCDIView {
private static final long serialVersionUID = -9115983838324313414L; private static final long serialVersionUID = -9115983838324313414L;
@Inject @Inject
UserCartView userCartView; private UserCartView userCartView;
@EJB CardTemplateBeanLocal cardTemplateBean; @EJB
private CardTemplateBeanLocal cardTemplateBean;
private List<UserOverviewItem> userOverviewItems = null;
private ListDataModel<UserOverviewItem> userOverviewItems = null;
private static final Logger logger = LoggerFactory.getLogger(UserOverviewView.class);
public void initView() { public void initView() {
if(userOverviewItems == null) { if (userOverviewItems == null) {
userOverviewItems = new ArrayList<UserOverviewItem>(); ArrayList<UserOverviewItem> ovlist = new ArrayList<UserOverviewItem>();
for(EventUser eu : userCartView.getUsercart()) { for (EventUser eu : getUserCartView().getUsercart()) {
PrintedCard pc = cardTemplateBean.checkPrintedCard(eu); PrintedCard pc = cardTemplateBean.checkPrintedCard(eu);
UserOverviewItem uoi = new UserOverviewItem(eu, pc); UserOverviewItem uoi = new UserOverviewItem(eu, pc);
userOverviewItems.add(uoi); ovlist.add(uoi);
} }
userOverviewItems = new ListDataModel<>(ovlist);
} }
} }
public List<UserOverviewItem> getUserOverviewItems() { public ListDataModel<UserOverviewItem> getUserOverviewItems() {
return userOverviewItems; return userOverviewItems;
} }
public void setUserOverviewItems(List<UserOverviewItem> userOverviewItems) { public void rejectCard()
{
UserOverviewItem cardItem = userOverviewItems.getRowData();
logger.info("Rejecting card");
PrintedCard card = cardItem.getPrintedCard();
card.setCardState(CardState.REJECTED);
card = cardTemplateBean.saveCard(card);
cardItem.setPrintedCard(card);
// cardTemplateBean.setCardState(cardItem.getPrintedCard(), CardState.REJECTED);
}
public void acceptCard()
{
UserOverviewItem cardItem = userOverviewItems.getRowData();
PrintedCard card = cardItem.getPrintedCard();
card.setCardState(CardState.VALIDATED);
card = cardTemplateBean.saveCard(card);
cardItem.setPrintedCard(card);
logger.info("Accepted card: {}", cardItem.getPrintedCard());
}
public void setUserOverviewItems(ListDataModel<UserOverviewItem> userOverviewItems) {
this.userOverviewItems = userOverviewItems; this.userOverviewItems = userOverviewItems;
} }
public UserCartView getUserCartView() {
return userCartView;
}
public void setUserCartView(UserCartView userCartView) {
this.userCartView = userCartView;
}
} }
...@@ -55,20 +55,20 @@ public class UserView extends GenericCDIView { ...@@ -55,20 +55,20 @@ public class UserView extends GenericCDIView {
@EJB @EJB
private transient UserBeanLocal userbean; private transient UserBeanLocal userbean;
@EJB @EJB
private transient ReaderBeanLocal readerbean; private transient ReaderBeanLocal readerbean;
private Integer userid; private Integer userid;
private transient UploadedFile image; private transient UploadedFile image;
private CroppedImage croppedImage; private CroppedImage croppedImage;
private EventUser user; private EventUser user;
@Inject @Inject
private transient Conversation conversation; private transient Conversation conversation;
@Inject @Inject
private transient ReaderView readerView; private transient ReaderView readerView;
...@@ -87,7 +87,7 @@ public class UserView extends GenericCDIView { ...@@ -87,7 +87,7 @@ public class UserView extends GenericCDIView {
@EJB @EJB
private transient CardTemplateBeanLocal cardBean; private transient CardTemplateBeanLocal cardBean;
private List<Role> usersRoles; private List<Role> usersRoles;
@EJB @EJB
private transient RoleBeanLocal rolebean; private transient RoleBeanLocal rolebean;
...@@ -101,7 +101,20 @@ public class UserView extends GenericCDIView { ...@@ -101,7 +101,20 @@ public class UserView extends GenericCDIView {
private MassPrintResult mpr = null; private MassPrintResult mpr = null;
private boolean waitForAcceptance = false; private boolean waitForAcceptance = false;
private String captureForwardUrl = ""; private String captureForwardUrl = "";
private PrintedCard printedCard;
public PrintedCard getPrintedCard() {
if (printedCard == null) {
printedCard = cardBean.checkPrintedCard(user);
}
return printedCard;
}
public void setPrintedCard(PrintedCard card)
{
printedCard = card;
}
@Produces @Produces
@LoggedIn @LoggedIn
public EventUser getCurrentUser() { public EventUser getCurrentUser() {
...@@ -113,7 +126,7 @@ public class UserView extends GenericCDIView { ...@@ -113,7 +126,7 @@ public class UserView extends GenericCDIView {
byte[] data = captureEvent.getData(); byte[] data = captureEvent.getData();
UserImage img = userbean.uploadImage(user, "image/png", data, "userimage.png", "Uploaded image"); UserImage img = userbean.uploadImage(user, "image/png", data, "userimage.png", "Uploaded image");
user = userbean.getEventUser(img.getUser()); user = userbean.getEventUser(img.getUser());
// super.navihandler.forward("/admin/adduser/capturesuccess"); // super.navihandler.forward("/admin/adduser/capturesuccess");
if (getCaptureForwardUrl().equals("")) if (getCaptureForwardUrl().equals(""))
super.navihandler.forward(getCaptureForwardUrl()); super.navihandler.forward(getCaptureForwardUrl());
} }
...@@ -168,7 +181,7 @@ public class UserView extends GenericCDIView { ...@@ -168,7 +181,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);
...@@ -181,7 +194,7 @@ public class UserView extends GenericCDIView { ...@@ -181,7 +194,7 @@ public class UserView extends GenericCDIView {
try { try {
mpr = cardPrintBean.getUserCardAsPrintablePdf(getSelectedUser().getId()); mpr = cardPrintBean.getUserCardAsPrintablePdf(getSelectedUser().getId());
ByteArrayInputStream pdfstream = new ByteArrayInputStream(mpr.getPdf()); ByteArrayInputStream pdfstream = new ByteArrayInputStream(mpr.getPdf());
setStreamedFile(new DefaultStreamedContent(pdfstream, "application/pdf","user_" + getSelectedUser().getId() + "_card.pdf")); setStreamedFile(new DefaultStreamedContent(pdfstream, "application/pdf", "user_" + getSelectedUser().getId() + "_card.pdf"));
logger.info("user_" + getSelectedUser().getId() + "_card.pdf"); logger.info("user_" + getSelectedUser().getId() + "_card.pdf");
} catch (Exception e) { } catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage())); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage()));
...@@ -200,27 +213,28 @@ public class UserView extends GenericCDIView { ...@@ -200,27 +213,28 @@ public class UserView extends GenericCDIView {
public String makeCard() public String makeCard()
{ {
PrintedCard card = cardBean.checkPrintedCard(user); printedCard = cardBean.checkPrintedCard(user);
if (card != null) if (printedCard != null)
{ {
user = card.getUser(); user = printedCard.getUser();
} }
return null; return null;
} }
public String sendImage() { public String sendImage() {
if (getImage() == null) if (getImage() == null)
{ {
super.addFaceMessage("user.imageUpload.imageNotFound"); super.addFaceMessage("user.imageUpload.imageNotFound");
} else { } else {
UserImage userimage = userbean.uploadImage(user, getImage().getContentType(), getImage().getContents(), getImage().getFileName(), ""); UserImage userimage = userbean.uploadImage(user, getImage().getContentType(), getImage().getContents(), getImage().getFileName(), "");
user = userbean.getEventUser(userimage.getUser()); user = userbean.getEventUser(userimage.getUser());
super.addFaceMessage("user.imageUploaded"); super.addFaceMessage("user.imageUploaded");
} }
printedCard = null;
return null; return null;
} }
...@@ -228,9 +242,10 @@ public class UserView extends GenericCDIView { ...@@ -228,9 +242,10 @@ public class UserView extends GenericCDIView {
if (super.requirePermissions(UserPermission.CREATE_NEW)) { if (super.requirePermissions(UserPermission.CREATE_NEW)) {
user = new EventUser(new User(), eventbean.getCurrentEvent(), permbean.getCurrentUser()); user = new EventUser(new User(), eventbean.getCurrentEvent(), permbean.getCurrentUser());
super.beginConversation(); super.beginConversation();
printedCard = null;
} }
} }
public void initView() { public void initView() {
/* /*
...@@ -300,35 +315,39 @@ public class UserView extends GenericCDIView { ...@@ -300,35 +315,39 @@ public class UserView extends GenericCDIView {
{ {
return permbean.isCurrentUser(user); return permbean.isCurrentUser(user);
} }
/** public void setCardState()
{
printedCard = cardBean.saveCard(printedCard);
}
/**
* attach barcode or rfid to card * attach barcode or rfid to card
* *
* @return * @return
*/ */
public String attachBarcodeToCard() { public String attachBarcodeToCard() {
PrintedCard card = readerView.getPrintedCard(); PrintedCard card = readerView.getPrintedCard();
// already attached // already attached
if(card != null) { if (card != null) {
super.addFaceMessage("usercard.alreadyassociated"); super.addFaceMessage("usercard.alreadyassociated");
return null; return null;
} }
// still there, we can get real card and update it's barcodes // still there, we can get real card and update it's barcodes
card = cardBean.checkPrintedCard(user); card = cardBean.checkPrintedCard(user);
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); 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) {
readerbean.assocTagToCard(readerView.getReaderEvent().getValue(), readerView.getReaderEvent().getReader().getIdentification(), card); readerbean.assocTagToCard(readerView.getReaderEvent().getValue(), readerView.getReaderEvent().getReader().getIdentification(), card);
} }
return null; return null;
} }
...@@ -336,7 +355,7 @@ public class UserView extends GenericCDIView { ...@@ -336,7 +355,7 @@ public class UserView extends GenericCDIView {
userbean.createNewUser(user, getPassword()); userbean.createNewUser(user, getPassword());
return "/user/created"; return "/user/created";
} }
public String createUserAdduserView() { public String createUserAdduserView() {
userbean.createNewUser(user, getPassword()); userbean.createNewUser(user, getPassword());
authView.executeAdduserAutoLogin(user, getPassword()); authView.executeAdduserAutoLogin(user, getPassword());
...@@ -427,7 +446,7 @@ public class UserView extends GenericCDIView { ...@@ -427,7 +446,7 @@ public class UserView extends GenericCDIView {
} }
public StreamedContent getStreamedFile() { public StreamedContent getStreamedFile() {
if(streamedFile == null) if (streamedFile == null)
logger.info("Tried to get empty streamed file"); logger.info("Tried to get empty streamed file");
return streamedFile; return streamedFile;
} }
...@@ -443,4 +462,9 @@ public class UserView extends GenericCDIView { ...@@ -443,4 +462,9 @@ public class UserView extends GenericCDIView {
public void setCaptureForwardUrl(String captureForwardUrl) { public void setCaptureForwardUrl(String captureForwardUrl) {
this.captureForwardUrl = captureForwardUrl; this.captureForwardUrl = captureForwardUrl;
} }
public CardState[] getPrintedCardStates()
{
return CardState.values();
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!