Commit abbcf698 by Antti Tönkyrä

print user stuff @ send picture page using new code

1 parent 4f849d26
...@@ -132,6 +132,15 @@ ...@@ -132,6 +132,15 @@
</navigation-case> </navigation-case>
</navigation-rule> </navigation-rule>
<navigation-rule> <navigation-rule>
<display-name>useradmin/sendPicture</display-name>
<from-view-id>/useradmin/sendPicture.xhtml</from-view-id>
<navigation-case>
<from-outcome>accepted</from-outcome>
<to-view-id>/useradmin/edit.xhtml</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
<display-name>voting/create</display-name> <display-name>voting/create</display-name>
<from-view-id>/voting/create.xhtml</from-view-id> <from-view-id>/voting/create.xhtml</from-view-id>
<navigation-case> <navigation-case>
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<h:outputText <h:outputText
rendered="#{salespointListView.salespoints.rowCount le 0}" rendered="#{salespointListView.salespoints.rowCount le 0}"
value="#{i18n['salespoint.noSalesPoints']}" /> value="#{i18n['salespoint.noSalesPoints']}" />
<h:form rendered="#{salespointListView.salespoints.rowCount gt 0}"> <h:form rendered="#{salespointListView.salespoints.rowCount gt 0}">
<h:dataTable styleClass="bordertable" id="salespointList" <h:dataTable styleClass="bordertable" id="salespointList"
value="#{salespointListView.salespoints}" var="salespoint"> value="#{salespointListView.salespoints}" var="salespoint">
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<f:metadata> <f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" /> <f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{userView.initView}" /> <f:event type="preRenderView" listener="#{userView.initView}" />
<f:event type="preRenderView" listener="#{userView.prepareCardDownload}" />
</f:metadata> </f:metadata>
<ui:define name="title"> <ui:define name="title">
<h1>#{i18n['sendPicture.header']}</h1> <h1>#{i18n['sendPicture.header']}</h1>
...@@ -62,6 +63,12 @@ ...@@ -62,6 +63,12 @@
<ui:fragment rendered="#{userView.canManage()}"> <ui:fragment rendered="#{userView.canManage()}">
<h2>Ylläpito</h2> <h2>Ylläpito</h2>
<h:form> <h:form>
<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:commandButton>
<p:commandButton action="#{userView.acceptPrintedCard()}" value="accept printed card" />
</h:form>
<!-- <h:form>
<h:commandButton action="#{userView.makeCard()}" value="#{i18n['user.makeCard']}" /> <h:commandButton action="#{userView.makeCard()}" value="#{i18n['user.makeCard']}" />
<h:dataTable var="card" value="#{userCardView.printedCards}"> <h:dataTable var="card" value="#{userCardView.printedCards}">
<h:column> <h:column>
...@@ -77,7 +84,7 @@ ...@@ -77,7 +84,7 @@
</h:column> </h:column>
</h:dataTable> </h:dataTable>
</h:form> </h:form>-->
<h3>RFID</h3> <h3>RFID</h3>
<h:form rendered="#{empty readerNameContainer.readerId}"> <h:form rendered="#{empty readerNameContainer.readerId}">
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<h:commandButton action="#{userCartView.removeCurrent()}" value="#{i18n['usercart.removeCurrent']}" /> <h:commandButton action="#{userCartView.removeCurrent()}" value="#{i18n['usercart.removeCurrent']}" />
<h:commandButton action="#{userCartView.next()}" value="#{i18n['usercart.next']}" rendered="#{userCartView.userCartSize > (userCartView.current+1)}" /></h:form> <h:commandButton action="#{userCartView.next()}" value="#{i18n['usercart.next']}" rendered="#{userCartView.userCartSize > (userCartView.current+1)}" /></h:form>
<h:link outcome="/card/massprint" value="yarr"> <h:link outcome="/card/massprint" value="Mass Print">
<f:param name="cid" value="#{javax.enterprise.context.conversation.id}"/> <f:param name="cid" value="#{javax.enterprise.context.conversation.id}"/>
</h:link> </h:link>
......
package fi.insomnia.bortal.web.cdiview.user; package fi.insomnia.bortal.web.cdiview.user;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
...@@ -7,11 +10,15 @@ import javax.ejb.EJB; ...@@ -7,11 +10,15 @@ import javax.ejb.EJB;
import javax.enterprise.context.Conversation; import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.ConversationScoped;
import javax.enterprise.inject.Produces; import javax.enterprise.inject.Produces;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import org.primefaces.event.CaptureEvent; import org.primefaces.event.CaptureEvent;
import org.primefaces.model.CroppedImage; import org.primefaces.model.CroppedImage;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile; import org.primefaces.model.UploadedFile;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -28,6 +35,7 @@ import fi.insomnia.bortal.model.PrintedCard; ...@@ -28,6 +35,7 @@ import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.Role; import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage; import fi.insomnia.bortal.model.UserImage;
import fi.insomnia.bortal.util.MassPrintResult;
import fi.insomnia.bortal.web.annotations.LoggedIn; import fi.insomnia.bortal.web.annotations.LoggedIn;
import fi.insomnia.bortal.web.annotations.SelectedUser; import fi.insomnia.bortal.web.annotations.SelectedUser;
import fi.insomnia.bortal.web.cdiview.GenericCDIView; import fi.insomnia.bortal.web.cdiview.GenericCDIView;
...@@ -77,6 +85,12 @@ public class UserView extends GenericCDIView { ...@@ -77,6 +85,12 @@ public class UserView extends GenericCDIView {
private transient EventBeanLocal eventbean; private transient EventBeanLocal eventbean;
@EJB @EJB
private transient CardPrintBeanLocal cardPrintBean; private transient CardPrintBeanLocal cardPrintBean;
private File file;
private StreamedContent streamedFile;
private MassPrintResult mpr = null;
private boolean waitForAcceptance = false;
@Produces @Produces
@LoggedIn @LoggedIn
...@@ -143,6 +157,31 @@ public class UserView extends GenericCDIView { ...@@ -143,6 +157,31 @@ public class UserView extends GenericCDIView {
} }
return null; return null;
} }
public void prepareCardDownload() {
file = null;
try {
mpr = cardPrintBean.getUserCardAsPrintablePdf(this.user.getId());
file = File.createTempFile("cardprintout",null);
FileOutputStream fostream = new FileOutputStream(file);
fostream.write(mpr.getPdf());
fostream.close();
setStreamedFile(new DefaultStreamedContent(new FileInputStream(this.file)));
} catch(Exception e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage()));
}
}
public String acceptPrintedCard() {
if(mpr != null && mpr.getAffectedUsers().size() > 0) {
cardPrintBean.acceptMassPrintResult(mpr);
return "accepted";
} else {
return "failure";
}
}
public String makeCard() public String makeCard()
{ {
...@@ -311,4 +350,24 @@ public class UserView extends GenericCDIView { ...@@ -311,4 +350,24 @@ public class UserView extends GenericCDIView {
public void setUsername(String username) { public void setUsername(String username) {
this.username = username; this.username = username;
} }
public void raiseWaitForAcceptance() {
waitForAcceptance = true;
}
public boolean isWaitForAcceptance() {
return waitForAcceptance;
}
public void setWaitForAcceptance(boolean waitForAcceptance) {
this.waitForAcceptance = waitForAcceptance;
}
public StreamedContent getStreamedFile() {
return streamedFile;
}
public void setStreamedFile(StreamedContent streamedFile) {
this.streamedFile = streamedFile;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!