Commit b2593292 by Tuomas Riihimäki

Card status changing

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