Commit 3f4096af by Liv Haapala

- Korttilayoutin piirron uusintaa. Korttitemplatelle lisätään teksti tai kuvaobj…

…ecteja, mitkä renderlidään kortille.
- Tarkastusnäkymän Reject-napin korjaus. Tila muuttuu rejectoiduksi ja siitä voi lähettää sähköpostia käyttäjälle.
- Lisätty tarkastusnäkymälistaukseen käyttäjän puhelinnumero ja sähköpostiosoite
1 parent 087d437b
......@@ -166,6 +166,15 @@ public class BootstrapBean implements BootstrapBeanLocal {
"card_text_data",
"card_object_data"
));
dbUpdates.add(new String[] {
"ALTER TABLE card_text_data ADD COLUMN font_color_r integer DEFAULT 0;",
"ALTER TABLE card_text_data ADD COLUMN font_color_g integer DEFAULT 0;",
"ALTER TABLE card_text_data ADD COLUMN font_color_b integer DEFAULT 0;"
});
dbUpdates.add(new String[] {
"ALTER TABLE card_text_data ALTER COLUMN size TYPE double precision;",
"ALTER TABLE card_object_data ALTER COLUMN size TYPE double precision;"
});
}
......
......@@ -8,6 +8,7 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
......@@ -34,12 +35,18 @@ import com.pdfjet.PDF;
import com.pdfjet.Page;
import com.pdfjet.TextLine;
import fi.codecrew.moya.enums.CardObjectDataType;
import fi.codecrew.moya.enums.CardTextDataType;
import fi.codecrew.moya.enums.CardTextStyle;
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.CardObjectData;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.GenericEntity;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.util.MassPrintResult;
......@@ -119,6 +126,8 @@ public class CardPrintBean implements CardPrintBeanLocal {
MassPrintResult mpr = new MassPrintResult();
HashMap<CardTemplate, List<GenericEntity>> templateHash = new HashMap<CardTemplate, List<GenericEntity>>();
for (EventUser user : users) {
PrintedCard printedCard = cardTemplateBean.checkPrintedCard(user);
......@@ -128,6 +137,58 @@ public class CardPrintBean implements CardPrintBeanLocal {
CardTemplate cardTemplate = printedCard.getTemplate();
if(!templateHash.containsKey(cardTemplate)) {
List<CardTextData> textDatas = cardTemplateBean.findCardTextDatas(cardTemplate.getId());
List<CardObjectData> objectDatas = cardTemplateBean.findCardObjectDatas(cardTemplate.getId());
if(textDatas == null)
textDatas = new ArrayList<CardTextData>();
if(objectDatas == null)
objectDatas = new ArrayList<CardObjectData>();
List<GenericEntity> objects = new ArrayList<GenericEntity>();
while(objectDatas.size() > 0 || textDatas.size() > 0) {
CardObjectData biggestObjectZ = null;
CardTextData biggestTextZ = null;
for(CardObjectData obj : objectDatas) {
if(biggestObjectZ == null)
biggestObjectZ = obj;
else if(obj.getzIndex() > biggestObjectZ.getzIndex())
biggestObjectZ = obj;
}
for(CardTextData obj : textDatas) {
if(biggestTextZ == null)
biggestTextZ = obj;
else if(obj.getzIndex() > biggestTextZ.getzIndex())
biggestTextZ = obj;
}
if(biggestObjectZ != null && biggestTextZ != null) {
if(biggestObjectZ.getzIndex() > biggestTextZ.getzIndex()) {
objects.add(biggestObjectZ);
objectDatas.remove(biggestObjectZ);
} else {
objects.add(biggestTextZ);
objectDatas.remove(biggestTextZ);
}
}
else if(biggestObjectZ != null) {
objects.add(biggestObjectZ);
objectDatas.remove(biggestObjectZ);
}
else if(biggestTextZ != null) {
objects.add(biggestTextZ);
textDatas.remove(biggestTextZ);
}
}
templateHash.put(cardTemplate, objects);
}
BufferedImage cardBackground = ImageIO.read(new ByteArrayInputStream(cardTemplate.getImage()));
BufferedImage faceBufferedImage = ImageIO.read(new ByteArrayInputStream(user.getCurrentImage().getImageData()));
......@@ -138,73 +199,114 @@ public class CardPrintBean implements CardPrintBeanLocal {
* Exception("Image dimensions too large, please take/upload smaller!"
* ); }
*/
Page page = new Page(pdf, new float[] { pagex, pagey });
// Render background image
Image templateImage = new Image(pdf, convertBufferedImageToPng(cardBackground), ImageType.PNG);
templateImage.setPosition(0, 0);
templateImage.scaleBy(0.245);
templateImage.drawOn(page);
List<GenericEntity> objects = templateHash.get(cardTemplate);
if(objects == null)
objects = new ArrayList<GenericEntity>();
for(GenericEntity obj : objects) {
// force image aspect ratio.
//for (CardObjectData cardObjectData : objectDatas) {
CardTextData textData = null;
CardObjectData objectData = null;
if(obj.getClass().equals(CardTextData.class)) {
textData = (CardTextData) obj;
} else if(obj.getClass().equals(CardObjectData.class)) {
objectData = (CardObjectData) obj;
}
if(textData != null) {
com.pdfjet.Font font;
if(textData.getFontStyle() == CardTextStyle.BOLD) {
font = new com.pdfjet.Font(pdf, textData.getFontName(), Font.BOLD);
}else if(textData.getFontStyle() == CardTextStyle.ITALIC) {
font = new com.pdfjet.Font(pdf, textData.getFontName(), Font.ITALIC);
} else if(textData.getFontStyle() == CardTextStyle.BOLDITALIC) {
font = new com.pdfjet.Font(pdf, textData.getFontName(), Font.BOLD + Font.ITALIC);
} else {
font = new com.pdfjet.Font(pdf, textData.getFontName());
}
font.setSize(textData.getSize());
int[] textColor = new int[] { textData.getFontColorR(), textData.getFontColorG(), textData.getFontColorB()};
TextLine text = new TextLine(font);
text.setPosition(textData.getX(), textData.getY());
text.setColor(textColor);
if(textData.getTextDataType() == CardTextDataType.NICK) {
text.setText(user.getUser().getNick());
} else if(textData.getTextDataType() == CardTextDataType.FIRSTNAME) {
text.setText(user.getUser().getFirstnames());
} else if(textData.getTextDataType() == CardTextDataType.LASTNAME) {
text.setText(user.getUser().getLastname());
} else if(textData.getTextDataType() == CardTextDataType.WHOLENAME) {
text.setText(user.getUser().getFirstnames() + " " + user.getUser().getLastname());
} else if(textData.getTextDataType() == CardTextDataType.ROLE) {
text.setText(cardTemplate.getName());
} else if(textData.getTextDataType() == CardTextDataType.AGE){
text.setText(user.getBirthday().toString());
} else if(textData.getTextDataType() == CardTextDataType.STATIC) {
text.setText(textData.getText());
}
text.drawOn(page);
}
else if(objectData != null) {
if(objectData.getObjectDataType() == CardObjectDataType.USERS_PICTURE) {
int originalWidth = faceBufferedImage.getWidth();
int originalHeight = faceBufferedImage.getHeight();
int width = originalWidth;
int height = (int) Math.round(originalWidth * (1 / ASPECT_RATIO));
int width = (int)objectData.getSize();
if(objectData.getSize() == 0)
width = originalWidth;
int height = (int) Math.round(width * (1 / ASPECT_RATIO));
if (height > originalHeight) {
height = originalHeight;
width = (int) Math.round(originalHeight * ASPECT_RATIO);
}
int offsetx = (originalWidth - width) / 2;
int offsety = (originalHeight - height) / 2;
int offsetx = 0;
int offsety = 0;
faceBufferedImage = faceBufferedImage.getSubimage(offsetx, offsety, width, height);
if(objectData.getSize() == 0)
offsetx = (originalWidth - width) / 2;
else
offsetx = ((int)objectData.getSize() - width) / 2;
Page page = new Page(pdf, new float[] { pagex, pagey });
offsety = (originalHeight - height) / 2;
// Render background image
Image templateImage = new Image(pdf, convertBufferedImageToPng(cardBackground), ImageType.PNG);
templateImage.setPosition(0, 0);
templateImage.scaleBy(0.245);
templateImage.drawOn(page);
faceBufferedImage = faceBufferedImage.getSubimage(offsetx, offsety, width, height);
// Render face image
Image faceImage = new Image(pdf, convertBufferedImageToPng(faceBufferedImage), ImageType.PNG);
faceImage.setPosition(55, 75);
faceImage.setPosition(objectData.getX(), objectData.getY());
//faceImage.setPosition(175, 222);
// faceImage.scaleBy(0.32);
faceImage.scaleBy(((410.0 * 0.245) / faceImage.getHeight()));
faceImage.drawOn(page);
// Render texts
// Big font for nick
com.pdfjet.Font nickFont = new com.pdfjet.Font(pdf, CoreFont.HELVETICA);
nickFont.setSize(17.0);
int[] white = new int[] { 255, 255, 255 };
// User nick text
// For skynett 2013
int[] nickTextColor = new int[] { 197, 220, 85 };
TextLine nickTextLine = new TextLine(nickFont);
nickTextLine.setText(user.getUser().getNick());
nickTextLine.setPosition(17.0, 195.0);
nickTextLine.setColor(nickTextColor);
nickTextLine.drawOn(page);
// Smaller font
com.pdfjet.Font font = new com.pdfjet.Font(pdf, CoreFont.HELVETICA);
font.setSize(10.0);
// Full name text
String wholeName = user.getUser().getFirstnames() + " " + user.getUser().getLastname();
TextLine wholeNameText = new TextLine(font);
wholeNameText.setText(wholeName);
wholeNameText.setPosition(17.0, 211.0);
wholeNameText.setColor(nickTextColor);
wholeNameText.drawOn(page);
// Role text
TextLine roleTextLine = new TextLine(font);
roleTextLine.setText(cardTemplate.getName());
roleTextLine.setPosition(17.0, 224.0);
roleTextLine.setColor(nickTextColor);
roleTextLine.drawOn(page);
} else if(objectData.getObjectDataType() == CardObjectDataType.CARDS_BARCODE) {
BufferedImage barCodeBufferedImage = ImageIO.read(barcodeBean.getCardBarcode(printedCard));
Image barCodeImage = new Image(pdf, convertBufferedImageToPng(barCodeBufferedImage), ImageType.PNG);
barCodeImage.setPosition(objectData.getX(), objectData.getY());
barCodeImage.scaleBy(0.7);
barCodeImage.drawOn(page);
}
}
// Barcode
// String barcodeString =
......@@ -213,15 +315,9 @@ public class CardPrintBean implements CardPrintBeanLocal {
// barcodeString = barcodeString.substring(barcodeString.length() -
// 12);
// No barcode in insomnia..
/* BufferedImage barCodeBufferedImage = ImageIO.read(barcodeBean.getCardBarcode(printedCard));
Image barCodeImage = new Image(pdf, convertBufferedImageToPng(barCodeBufferedImage), ImageType.PNG);
barCodeImage.setPosition(0.0, 230);// 243.5);
barCodeImage.scaleBy(0.7);
barCodeImage.drawOn(page);
*/
mpr.getAffectedUsers().add(user);
}
}
pdf.flush();
outputStream.close();
......
......@@ -250,6 +250,18 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
return this.printedcardfacade.findAllEnabled(eventBean.getCurrentEvent());
}
@Override
@RolesAllowed(UserPermission.S_WRITE_ROLES)
public List<CardTextData> findCardTextDatas(int templateId) {
return this.ctdFacade.findAll(templateId);
}
@Override
@RolesAllowed(UserPermission.S_WRITE_ROLES)
public List<CardObjectData> findCardObjectDatas(int templateId) {
return this.codFacade.findAll(templateId);
}
@RolesAllowed(UserPermission.S_WRITE_ROLES)
@Override
public CardTemplate save(CardTemplate card) {
......
......@@ -10,8 +10,11 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.codecrew.moya.model.CardObjectData;
import fi.codecrew.moya.model.CardObjectData_;
import fi.codecrew.moya.model.CardTemplate_;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.model.CardTextData_;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.model.CardTemplate;
......@@ -19,24 +22,29 @@ import fi.codecrew.moya.model.CardTemplate;
@LocalBean
public class CardObjectDataFacade extends IntegerPkGenericFacade<CardObjectData> {
//@EJB
//private EventBeanLocal eventbean;
@EJB
private EventBeanLocal eventbean;
@EJB
private CardTemplateBeanLocal ctbean;
public CardObjectDataFacade() {
super(CardObjectData.class);
}
/*
public List<CardTextData> findAll()
{*/
/*
public List<CardObjectData> findAll(int templateId)
{
CardTemplate template = ctbean.find(templateId);
if(template != null) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<CardTemplate> cq = cb.createQuery(CardTextData.class);
Root<CardTextData> root = cq.from(CardTextData.class);
cq.where(cb.equal(root.get(CardTemplate_.event), eventbean.getCurrentEvent()));
CriteriaQuery<CardObjectData> cq = cb.createQuery(CardObjectData.class);
Root<CardObjectData> root = cq.from(CardObjectData.class);
cq.where(cb.equal(root.get(CardObjectData_.cardTemplate), template));
return getEm().createQuery(cq).getResultList();
*/
//}
} else
return null;
}
}
......@@ -11,6 +11,8 @@ import javax.persistence.criteria.Root;
import fi.codecrew.moya.model.CardTemplate_;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.model.CardTextData_;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.model.CardTemplate;
......@@ -18,24 +20,29 @@ import fi.codecrew.moya.model.CardTemplate;
@LocalBean
public class CardTextDataFacade extends IntegerPkGenericFacade<CardTextData> {
//@EJB
//private EventBeanLocal eventbean;
@EJB
private EventBeanLocal eventbean;
@EJB
private CardTemplateBeanLocal ctbean;
public CardTextDataFacade() {
super(CardTextData.class);
}
/*
public List<CardTextData> findAll()
{*/
/*
public List<CardTextData> findAll(int templateId)
{
CardTemplate template = ctbean.find(templateId);
if(template != null) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<CardTemplate> cq = cb.createQuery(CardTextData.class);
CriteriaQuery<CardTextData> cq = cb.createQuery(CardTextData.class);
Root<CardTextData> root = cq.from(CardTextData.class);
cq.where(cb.equal(root.get(CardTemplate_.event), eventbean.getCurrentEvent()));
cq.where(cb.equal(root.get(CardTextData_.cardTemplate), template));
return getEm().createQuery(cq).getResultList();
*/
//}
} else
return null;
}
}
......@@ -27,6 +27,10 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> {
List<PrintedCard> findActiveCards();
List<CardTextData> findCardTextDatas(int templateId);
List<CardObjectData> findCardObjectDatas(int templateId);
CardTemplate save(CardTemplate card);
CardTextData save(CardTextData textData);
......
......@@ -30,7 +30,7 @@ private static final long serialVersionUID = 307145499023412008L;
private int y;
@Column(name = "size", nullable = false)
private int size;
private double size;
@Column(name = "z_index", nullable = false)
private int zIndex;
......@@ -67,7 +67,7 @@ private static final long serialVersionUID = 307145499023412008L;
this.size = size;
}
public int getSize() {
public double getSize() {
return this.size;
}
......
......@@ -39,7 +39,18 @@ public class CardTextData extends GenericEntity{
private int y;
@Column(name = "size", nullable = false)
private int size;
private double size;
@Column(name = "font_color_r", nullable = false)
private int fontColorR;
@Column(name = "font_color_g", nullable = false)
private int fontColorG;
@Column(name = "font_color_b", nullable = false)
private int fontColorB;
@Column(name = "font_name", nullable = false)
private String fontName;
......@@ -53,6 +64,7 @@ public class CardTextData extends GenericEntity{
@Column(name = "z_index", nullable = false)
private int zIndex;
@ManyToOne
@JoinColumn(nullable = false, name = "card_templates_id")
private CardTemplate cardTemplate;
......@@ -85,7 +97,7 @@ public class CardTextData extends GenericEntity{
this.size = size;
}
public int getSize() {
public double getSize() {
return this.size;
}
......@@ -159,4 +171,41 @@ public class CardTextData extends GenericEntity{
public CardTemplate getCardTemplate() {
return this.cardTemplate;
}
public LanEvent getEvent() {
if(cardTemplate != null)
return cardTemplate.getEvent();
else
return null;
}
public int getFontColorR() {
return fontColorR;
}
public void setFontColorR(int fontColorR) {
this.fontColorR = fontColorR;
}
public int getFontColorG() {
return fontColorG;
}
public void setFontColorG(int fontColorG) {
this.fontColorG = fontColorG;
}
public int getFontColorB() {
return fontColorB;
}
public void setFontColorB(int fontColorB) {
this.fontColorB = fontColorB;
}
public void setFontColor(int r, int g, int b) {
this.fontColorR = r;
this.fontColorG = g;
this.fontColorB = b;
}
}
......@@ -15,14 +15,12 @@ import org.postgresql.util.PGobject;
public class JsonAttributeConverter implements AttributeConverter<JsonObject, PGobject> {
public PGobject convertToDatabaseColumn(JsonObject attribute) {
if (attribute == null) {
return null;
}
final PGobject dataValue = new PGobject();
dataValue.setType("json");
try {
if (attribute == null)
dataValue.setValue("null");
else
dataValue.setValue(attribute.toString());
} catch (SQLException e) {
// This will never run because PGobject.setValue() cannot really
......@@ -45,10 +43,14 @@ public class JsonAttributeConverter implements AttributeConverter<JsonObject, PG
throw new RuntimeException("Expected JSON object from database");
}
if(!dbData.getValue().equals("null")) {
// Read as JSON object
final StringReader stringReader = new StringReader(dbData.getValue());
final JsonReader jsonReader = Json.createReader(stringReader);
return jsonReader.readObject();
} else {
return null;
}
}
}
......@@ -4,7 +4,7 @@ public enum CardObjectDataType {
UNKNOWN,
PICTURE,
USERS_PICTURE,
USERS_BARCODE,
CARDS_BARCODE;
......
......@@ -6,6 +6,7 @@ public enum CardTextDataType {
NICK,
FIRSTNAME,
LASTNAME,
WHOLENAME,
STATIC,
AGE,
ROLE;
......
......@@ -30,6 +30,7 @@
<p:selectOneMenu id="typeTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{cardTemplateDataEditView.cardTextData.textDataType}">
<f:selectItem id="textunknown" itemLabel="#{i18n['cardTextData.type.UNKNOWN']}" itemValue="UNKNOWN" />
<f:selectItem id="nick" itemLabel="#{i18n['cardTextData.type.NICK']}" itemValue="NICK" />
<f:selectItem id="wholename" itemLabel="#{i18n['cardTextData.type.WHOLENAME']}" itemValue="WHOLENAME" />
<f:selectItem id="firstname" itemLabel="#{i18n['cardTextData.type.FIRSTNAME']}" itemValue="FIRSTNAME" />
<f:selectItem id="lastname" itemLabel="#{i18n['cardTextData.type.LASTNAME']}" itemValue="LASTNAME" />
<f:selectItem id="static" itemLabel="#{i18n['cardTextData.type.STATIC']}" itemValue="STATIC" />
......@@ -39,9 +40,9 @@
<h:message for="typeTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" />
<p:selectOneMenu id="typeObjectData" rendered="#{!empty cardTemplateDataEditView.cardObjectData}" value="#{cardTemplateDataEditView.cardObjectData.objectDataType}">
<f:selectItem id="objectunknown" itemLabel="#{i18n['cardObjectData.type.UNKNOWN']}" itemValue="UNKNOWN" />
<f:selectItem id="picture" itemLabel="#{i18n['cardObjectData.type.PICTURE']}" itemValue="PICTURE" />
<f:selectItem id="users_barcode" itemLabel="#{i18n['cardTextData.type.USERS_BARCODE']}" itemValue="USERS_BARCODE" />
<f:selectItem id="cards_bardoce" itemLabel="#{i18n['cardTextData.type.CARDS_BARCODE']}" itemValue="CARDS_BARCODE" />
<f:selectItem id="users_picture" itemLabel="#{i18n['cardObjectData.type.USERS_PICTURE']}" itemValue="USERS_PICTURE" />
<f:selectItem id="users_barcode" itemLabel="#{i18n['cardObjectData.type.USERS_BARCODE']}" itemValue="USERS_BARCODE" />
<f:selectItem id="cards_bardoce" itemLabel="#{i18n['cardObjectData.type.CARDS_BARCODE']}" itemValue="CARDS_BARCODE" />
</p:selectOneMenu>
<h:message for="typeObjectData" rendered="#{!empty cardTemplateDataEditView.cardObjectData}" />
......
<!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/tools/user"
xmlns:f="http://java.sun.com/jsf/core"
>
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:viewParam name="templateid" value="#{cardTemplateDataView.templateId}" />
<f:event type="preRenderView" listener="#{cardTemplateDataView.initCardTemplate()}" />
</f:metadata>
<ui:define name="content">
<h:form id="cardTextDatas">
<h:dataTable rendered="#{!empty cardTemplateDataView.cardTextDatas}" value="#{cardTemplateDataView.cardTextDatas}" var="textData">
<h:column>
#{textData.id}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardTextData.type']}" />
</f:facet>
<h:outputText value="#{textData.textDataType}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardTextData.x']}" />
</f:facet>
<h:outputText value="#{textData.x}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardTextData.y']}" />
</f:facet>
<h:outputText value="#{textData.y}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardTextData.zindex']}" />
</f:facet>
<h:outputText value="#{textData.zIndex}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardTextData.size']}" />
</f:facet>
<h:outputText value="#{textData.size}" />
</h:column>
<h:column>
<h:link outcome="/useradmin/editCardTextData" value="#{i18n['cardTextData.edit']}">
<f:param name="textdataid" value="#{textData.id}" />
</h:link>
</h:column>
</h:dataTable>
<h:dataTable rendered="#{!empty cardTemplateDataView.cardObjectDatas}" value="#{cardTemplateDataView.cardObjectDatas}" var="objectData">
<h:column>
#{objectData.id}
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardObjectData.type']}" />
</f:facet>
<h:outputText value="#{objectData.objectDataType}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardObjectData.x']}" />
</f:facet>
<h:outputText value="#{objectData.x}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardObjectData.y']}" />
</f:facet>
<h:outputText value="#{objectData.y}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardObjectData.zindex']}" />
</f:facet>
<h:outputText value="#{objectData.zIndex}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['cardObjectData.size']}" />
</f:facet>
<h:outputText value="#{objectData.size}" />
</h:column>
<h:column>
<h:link outcome="/useradmin/editCardTextData" value="#{i18n['cardObjectData.edit']}">
<f:param name="objectdataid" value="#{objectData.id}" />
</h:link>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
......@@ -52,6 +52,18 @@
<f:param name="createobjecttype" value="1" />
</h:link>
</h:column>
<h:column>
<h:link outcome="/useradmin/editCardTextData" value="#{i18n['cardObjectData.create']}">
<f:param name="templateid" value="#{card.id}" />
<f:param name="createobjecttype" value="2" />
</h:link>
</h:column>
<h:column>
<h:link outcome="/useradmin/listCardTemplateData" value="#{i18n['cardTemplateData.list']}">
<f:param name="templateid" value="#{card.id}" />
</h:link>
</h:column>
</h:dataTable>
</h:form>
......
......@@ -28,14 +28,23 @@
</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['user.phone']}" />
<h:outputText value="#{cartItem.eventUser.phone}" />
<h:outputText value="#{i18n['user.email']}" />
<h:outputText value="#{cartItem.eventUser.email}" />
<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}" />
<!-- <button onclick="location.replace('#{request.contextPath}/useradmin/edit.jsf?userid=#{user.user.id}')">#{i18n['user.edit']}</button> -->
</h:panelGrid>
</p:column>
<p:column styleClass="cardstatus-#{cartItem.printedCard == null ? 'nonprintable' : cartItem.printedCard.cardState.toStringLower()}">
......
......@@ -201,20 +201,22 @@ cardTemplate.roles = Associated roles
cardTemplate.save = Save
cardTemplate.sendImage = Upload Image
cardObjectData.create = Add object data to card layout
cardTemplateData.list = List datas
cardObjectData.create = Add object data
cardObjectData.save = Save
cardObjectData.edit = Edit
cardObjectData.x = X coordinate
cardObjectData.y = Y coordinate
cardObjectData.size = Size of text (px)
cardObjectData.size = Width (px)
cardObjectData.zindex = Z index
cardObjectData.type = Type
cardObjectData.type.UNKNOWN = Unknown
cardObjectData.type.PICTURE = User's picture
cardObjectData.type.USERS_PICTURE = User's picture
cardObjectData.type.USERS_BARCODE = User's barcode
cardObjectData.type.CARDS_BARCODE = Card's barcode
cardTextData.create = Add text data to card layout
cardTextData.create = Add text data
cardTextData.save = Save
cardTextData.edit = Edit
cardTextData.x = X coordinate
......@@ -235,6 +237,7 @@ cardTextData.text = Static text
cardTextData.type = Type
cardTextData.type.UNKNOWN = Unknown
cardTextData.type.NICK = Nick
cardTextData.type.WHOLENAME = Wholename
cardTextData.type.FIRSTNAME = Firstname
cardTextData.type.LASTNAME = Lastname
cardTextData.type.STATIC = Static
......
......@@ -203,20 +203,22 @@ cardTemplate.roles = Yhdistetyt roolit
cardTemplate.save = Tallenna
cardTemplate.sendImage = Lataa kuva
cardObjectData.create = Liit korttilayoutiin kuvia
cardTemplateData.list = Ohjeissislln listaus
cardObjectData.create = Liit kuvia
cardObjectData.save = Tallenna
cardObjectData.edit = Muokkaa
cardObjectData.x = X koordinaatti
cardObjectData.y = Y koordinaatti
cardObjectData.size = Tekstin koko (px)
cardObjectData.size = Leveys (px)
cardObjectData.zindex = Z index
cardObjectData.type = Tyyppi
cardObjectData.type.UNKNOWN = Tuntematon
cardObjectData.type.PICTURE = Kyttjn kuva
cardObjectData.type.USERS_PICTURE = Kyttjn kuva
cardObjectData.type.USERS_BARCODE = Kyttjn viivakoodi
cardObjectData.type.CARDS_BARCODE = Kortin viivakoodi
cardTextData.create = Liit korttilayoutiin teksti
cardTextData.create = Liit teksti
cardTextData.save = Tallenna
cardTextData.edit = Muokkaa
cardTextData.x = X koordinaatti
......@@ -237,6 +239,7 @@ cardTextData.text = Kiinte teksti
cardTextData.type = Tyyppi
cardTextData.type.UNKNOWN = Tuntematon
cardTextData.type.NICK = Nimimerkki
cardTextData.type.WHOLENAME = Kokonimi
cardTextData.type.FIRSTNAME = Etunimi
cardTextData.type.LASTNAME = Sukunimi
cardTextData.type.STATIC = Staattinen
......
......@@ -3,8 +3,7 @@ package fi.codecrew.moya.web.cdiview.card;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.Json;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
......@@ -68,6 +67,7 @@ public class CardTemplateDataEditView extends GenericCDIView {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
setCardTextData(new CardTextData());
//cardTextData.setMeta(Json.createObjectBuilder().build());
super.beginConversation();
}
}
......@@ -76,6 +76,7 @@ public class CardTemplateDataEditView extends GenericCDIView {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
setCardObjectData(new CardObjectData());
//cardObjectData.setMeta(Json.createObjectBuilder().build());
super.beginConversation();
}
}
......@@ -92,6 +93,8 @@ public class CardTemplateDataEditView extends GenericCDIView {
}
public String saveTextData() {
//if(cardTextData.getMeta() == null)
// cardTextData.setMeta(Json.createObjectBuilder().build());
cardTextData = cfbean.save(cardTextData);
return null;
}
......
package fi.codecrew.moya.web.cdiview.card;
import java.lang.reflect.Array;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;
import javax.json.Json;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardObjectData;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.CardTextData;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
@Named
@ConversationScoped
public class CardTemplateDataView extends GenericCDIView {
private static final long serialVersionUID = -9115983838324313414L;
private Integer templateId = 0;
private Integer cardTextDataId = 0;
private Integer cardObjectDataId = 0;
private Integer createObjectType = 0;
private CardTemplate cardTemplate;
private CardTextData cardTextData;
private CardObjectData cardObjectData;
private List<CardTextData> cardTextDatas;
private List<CardObjectData> cardObjectDatas;
@EJB
private transient CardTemplateBeanLocal cfbean;
public void initCardTextDatas() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
setCardTextDatas(cfbean.findCardTextDatas(templateId));
super.beginConversation();
}
}
public void initCardObjectDatas() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
setCardObjectDatas(cfbean.findCardObjectDatas(templateId));
super.beginConversation();
}
}
public void initCardTemplate() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
setCardTemplate(cfbean.find(templateId));
if(cardTemplate != null)
{
setCardTextDatas(cfbean.findCardTextDatas(templateId));
setCardObjectDatas(cfbean.findCardObjectDatas(templateId));
}
super.beginConversation();
}
}
public String saveTextData() {
if(cardTextData.getMeta() == null)
cardTextData.setMeta(Json.createObjectBuilder().build());
cardTextData = cfbean.save(cardTextData);
return null;
}
public String saveObjectData() {
cardObjectData = cfbean.save(cardObjectData);
return null;
}
public CardTextData getCardTextData() {
return cardTextData;
}
public void setCardTextData(CardTextData cardTextData) {
this.cardTextData = cardTextData;
}
public CardObjectData getCardObjectData() {
return cardObjectData;
}
public void setCardObjectData(CardObjectData cardObjectData) {
this.cardObjectData = cardObjectData;
}
public Integer getCardTextDataId() {
return cardTextDataId;
}
public void setCardTextDataId(Integer cardTextDataId) {
this.cardTextDataId = cardTextDataId;
}
public Integer getCardObjectDataId() {
return cardObjectDataId;
}
public void setCardObjectDataId(Integer cardObjectDataId) {
this.cardObjectDataId = cardObjectDataId;
}
public Integer getCreateObjectType() {
return createObjectType;
}
public void setCreateObjectType(Integer createObjectType) {
this.createObjectType = createObjectType;
}
public Integer getTemplateId() {
return templateId;
}
public void setTemplateId(Integer templateId) {
this.templateId = templateId;
}
public CardTemplate getCardTemplate() {
return cardTemplate;
}
public void setCardTemplate(CardTemplate cardTemplate) {
this.cardTemplate = cardTemplate;
}
public List<CardTextData> getCardTextDatas() {
return cardTextDatas;
}
public void setCardTextDatas(List<CardTextData> cardTextDatas) {
this.cardTextDatas = cardTextDatas;
}
public List<CardObjectData> getCardObjectDatas() {
return cardObjectDatas;
}
public void setCardObjectDatas(List<CardObjectData> cardObjectDatas) {
this.cardObjectDatas = cardObjectDatas;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!