Commit e20e7522 by Liv Haapala

- kortin generointi korttidatan pohjalta

- viilailuja käyttäjien tarkastusnäkymään
1 parent 2a309d21
......@@ -179,6 +179,10 @@ public class BootstrapBean implements BootstrapBeanLocal {
"ALTER TABLE card_text_data ALTER COLUMN size TYPE double precision;",
"ALTER TABLE card_object_data ALTER COLUMN size TYPE double precision;"
});
dbUpdates.add(new String[] {
"ALTER TABLE card_text_data DROP COLUMN font_style;",
"ALTER TABLE card_text_data ADD COLUMN font_style TEXT NOT NULL DEFAULT 'PLAIN';"
});
}
......
......@@ -25,12 +25,12 @@ import fi.codecrew.moya.util.MailMessage;
* Message-Driven Bean implementation class for: MailMessageBean
*
*/
@MessageDriven(mappedName = "jms/moyaMailQueue",
/*@MessageDriven(mappedName = "jms/moyaMailQueue",
activationConfig = {
@ActivationConfigProperty(
propertyName = "destinationType",
propertyValue = "javax.jms.Queue")
})
})*/
public class MailMessageBean implements MessageListener {
@Resource(name = "mail/moya")
......
......@@ -168,6 +168,7 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation adminuser = adminmenu.addPage(null, null);
adminuser.setKey("topnavi.usermgmt");
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/list"), UserPermission.VIEW_ALL);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/overview"), UserPermission.VIEW_ALL).setVisible(false);;
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/create"), UserPermission.VIEW_ALL);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/sendPicture"), UserPermission.VIEW_ALL).setVisible(false);
adminuser.addPage(menuitemfacade.findOrCreate("/place/adminGroups"), UserPermission.VIEW_ALL).setVisible(false);
......@@ -192,6 +193,8 @@ public class MenuBean implements MenuBeanLocal {
adminEventCards.setKey("subnavi.cards");
adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/listCardTemplates"), UserPermission.READ_ROLES);
adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/createCardTemplate"), UserPermission.WRITE_ROLES);
adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/editCardTextData"), UserPermission.WRITE_ROLES).setVisible(false);
adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/listCardTemplateData"), UserPermission.READ_ROLES).setVisible(false);
adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/editCardTemplate"), null).setVisible(false);
adminEventCards.addPage(menuitemfacade.findOrCreate("/shop/shopToUser"), null).setVisible(false);
adminEventCards.addPage(menuitemfacade.findOrCreate("/shop/assocToUser"), null).setVisible(false);
......
......@@ -466,7 +466,7 @@ public class UserBean implements UserBeanLocal {
return true;
}
public PrintedCard rejectPrintedCard(PrintedCard card) {
public PrintedCard rejectPrintedCard(PrintedCard card, MailMessage mail) {
if(card != null) {
......@@ -474,8 +474,6 @@ public class UserBean implements UserBeanLocal {
card = cardTemplateBean.saveCard(card);
logger.info("rejectPrintedCard(): Rejected card {}, state {}", card, card.getCardState() );
MailMessage mail = new MailMessage();
User user = null;
if(card.getUser() != null && card.getUser().getUser() != null)
user = card.getUser().getUser();
......
......@@ -18,6 +18,7 @@ import fi.codecrew.moya.model.TournamentGame;
import fi.codecrew.moya.model.User;
import fi.codecrew.moya.model.UserApproval;
import fi.codecrew.moya.model.UserImage;
import fi.codecrew.moya.util.MailMessage;
import fi.codecrew.moya.util.UserSearchQuery;
import fi.codecrew.moya.utilities.SearchQuery;
import fi.codecrew.moya.utilities.SearchResult;
......@@ -99,7 +100,7 @@ public interface UserBeanLocal {
boolean initPasswordResetForEmail(String email, String url);
PrintedCard rejectPrintedCard(PrintedCard card);
PrintedCard rejectPrintedCard(PrintedCard card, MailMessage mail);
boolean initPasswordResetForUsername(String username, String url);
......
package fi.codecrew.moya.model;
import java.awt.Color;
import java.awt.Font;
import java.math.BigDecimal;
......@@ -55,6 +56,7 @@ public class CardTextData extends GenericEntity{
private String fontName;
@Column(name = "font_style", nullable = false)
@Enumerated(EnumType.STRING)
private CardTextStyle fontStyle;
@Column(name = "text", nullable = true)
......@@ -68,6 +70,12 @@ public class CardTextData extends GenericEntity{
@JoinColumn(nullable = false, name = "card_templates_id")
private CardTemplate cardTemplate;
public boolean isTypeStatic() {
if(this.textDataType == CardTextDataType.STATIC)
return true;
return false;
}
public void setTextDataType(CardTextDataType field) {
this.textDataType = field;
}
......@@ -207,4 +215,24 @@ public class CardTextData extends GenericEntity{
this.fontColorG = g;
this.fontColorB = b;
}
public String getColorHexCode() {
String r = Integer.toHexString(fontColorR);
String g = Integer.toHexString(fontColorG);
String b = Integer.toHexString(fontColorB);
return r + g + b;
}
public void setColorHexCode(String colorHexCode) {
Color color = null;
try {
color = Color.decode("#"+colorHexCode);
fontColorR = color.getRed();
fontColorG = color.getGreen();
fontColorB = color.getBlue();
}catch(Exception ex) {
}
}
}
package fi.codecrew.moya.enums;
public enum CardTemplateDataType {
UNKNOWN,
TEXT_DATA,
OBJECT_DATA;
public String toStringLower() {
return this.toString().toLowerCase();
}
}
......@@ -8,13 +8,13 @@
<ui:define name="content">
<f:metadata>
<f:viewParam name="textdataid" value="#{cardTemplateDataEditView.cardTextDataId}" />
<f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCardTextData}" />
<!-- <f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCardTextData}" /> -->
<f:viewParam name="objectdataid" value="#{cardTemplateDataEditView.cardObjectDataId}" />
<f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCardObjectData}" />
<!-- <f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCardObjectData}" /> -->
<f:viewParam name="createobjecttype" value="#{cardTemplateDataEditView.createObjectType}" />
<f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCreateObjectType}" />
<!-- <f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCreateObjectType}" /> -->
<f:viewParam name="templateid" value="#{cardTemplateDataEditView.templateId}" />
<f:event type="preRenderView" listener="#{cardTemplateDataEditView.initCardTemplate}" />
<f:event type="preRenderView" listener="#{cardTemplateDataEditView.initView()}" />
</f:metadata>
<h:form id="cardTemplateData">
<h:panelGrid columns="3">
......@@ -25,15 +25,25 @@
-->
<h:outputLabel for="typeTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{i18n['cardTextData.type']}:" />
<h:outputLabel for="typeObjectData" rendered="#{!empty cardTemplateDataEditView.cardObjectData}" value="#{i18n['cardObjectData.type']}:" />
<p:selectOneMenu id="typeTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{cardTemplateDataEditView.cardTextData.textDataType}">
<f:selectItems var="textDataType" itemLabel="#{i18n['cardTextData.type.#{textDataType}']}" itemValue="#{cardTemplateDataEditView.cardTextDataTypes}" />
<p:ajax event="change" update="staticTextPanel"/>
<f:selectItems var="textDataType" itemLabel="#{cardTemplateDataEditView.localisedLabel('cardTextData.type.', textDataType)}" value="#{cardTemplateDataEditView.cardTextDataTypes}"/>
</p:selectOneMenu>
<h:message for="typeTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" />
</h:panelGrid>
<p:panel id="staticTextPanel" collapsed="#{(empty cardTemplateDataEditView.cardTextData) or !cardTemplateDataEditView.cardTextData.typeStatic}" style="border:0px">
<h:panelGrid columns = "3" rendered="#{cardTemplateDataEditView.cardTextData.typeStatic}">
<h:outputText for="staticText" rendered="#{cardTemplateDataEditView.cardTextData.typeStatic}" value="#{i18n['cardTextData.text']}"/>
<h:inputText id="staticText" rendered="#{cardTemplateDataEditView.cardTextData.typeStatic}" value="#{cardTemplateDataEditView.cardTextData.text}"/>
<h:message for="staticText" rendered="#{cardTemplateDataEditView.cardTextData.typeStatic}" />
</h:panelGrid>
</p:panel>
<h:panelGrid columns="3">
<h:outputLabel for="typeObjectData" rendered="#{!empty cardTemplateDataEditView.cardObjectData}" value="#{i18n['cardObjectData.type']}:" />
<p:selectOneMenu id="typeObjectData" rendered="#{!empty cardTemplateDataEditView.cardObjectData}" value="#{cardTemplateDataEditView.cardObjectData.objectDataType}">
<f:selectItems var="objectDataType" itemLabel="#{i18n['cardObjectData.type.#{objectDataType}']}" itemValue="#{cardTemplateDataEditView.cardObjectDataTypes}" />
<f:selectItems var="objectDataType" itemLabel="#{cardTemplateDataEditView.localisedLabel('cardObjectData.type.', objectDataType)}" value="#{cardTemplateDataEditView.cardObjectDataTypes}" />
</p:selectOneMenu>
<h:message for="typeObjectData" rendered="#{!empty cardTemplateDataEditView.cardObjectData}" />
......@@ -75,16 +85,21 @@
<h:message for="fontNameTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" />
<h:outputLabel for="fontStyleTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{i18n['cardTextData.fontstyle']}:" />
<f:selectItems var="fontStyle" itemLabel="#{i18n['cardTextData.fontstyle.#{fontStyle}']}" itemValue="#{cardTemplateDataEditView.fontStyles}" />
<p:selectOneMenu id="fontStyleTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{cardTemplateDataEditView.cardTextData.fontStyle}">
<f:selectItems var="fontStyle" itemLabel="#{cardTemplateDataEditView.localisedLabel('cardTextData.fontstyle.', fontStyle)}" value="#{cardTemplateDataEditView.fontStyles}"/>
</p:selectOneMenu>
<h:message for="fontStyleTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" />
<h:outputLabel for="fontAlignmentTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{i18n['cardTextData.fontalignment']}:" />
<p:selectOneMenu id="fontAlignmentTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{cardTemplateDataEditView.cardTextData.textAlignment}">
<f:selectItems var="fontAlignment" itemLabel="#{i18n['cardTextData.fontalignment.#{fontAlignment}']}" itemValue="#{cardTemplateDataEditView.textAlignments}" />
<h:outputLabel for="textAlignmentTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{i18n['cardTextData.textalignment']}:" />
<p:selectOneMenu id="textAlignmentTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{cardTemplateDataEditView.cardTextData.textAlignment}">
<f:selectItems var="textAlignment" itemLabel="#{cardTemplateDataEditView.localisedLabel('cardTextData.textalignment.', textAlignment)}" value="#{cardTemplateDataEditView.textAlignments}"/>
</p:selectOneMenu>
<h:message for="fontAlignmentTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" />
<h:outputLabel for="fontColorTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{i18n['cardTextData.fontcolor']}:" />
<p:colorPicker id="fontColorTextData" rendered="#{!empty cardTemplateDataEditView.cardTextData}" value="#{cardTemplateDataEditView.cardTextData.colorHexCode}" />
</h:panelGrid>
<h:commandButton rendered="#{!empty cardTemplateDataEditView.cardTextData}" action="#{cardTemplateDataEditView.saveTextData()}" value="#{i18n['cardTextData.save']}" />
......
......@@ -87,7 +87,7 @@
<h:commandButton value="#{i18n['usercart.downloadExport']}">
<p:fileDownload value="#{userCartView.userExport}" />
</h:commandButton>
<h:commandButton action="#{userCartView.showOverview(i18n['rejectcard.mailSubject'], i18n['rejectcard.mailBody'])}" value="#{i18n['usercart.showoverview']}" />
<h:commandButton action="#{userCartView.showOverview()}" value="#{i18n['usercart.showoverview']}" />
<h:commandButton rendered="#{creditTransferView.transferPermissions}" action="#{userCartView.transferCredits}" value="#{i18n['usercart.transferCredits']}" />
......
......@@ -49,13 +49,13 @@
<h:column>
<h:link outcome="/useradmin/editCardTextData" value="#{i18n['cardTextData.create']}">
<f:param name="templateid" value="#{card.id}" />
<f:param name="createobjecttype" value="1" />
<f:param name="createobjecttype" value="#{cardView.textDataType}" />
</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" />
<f:param name="templateid" value="#{card.id}"/>
<f:param name="createobjecttype" value="#{cardView.objectDataType}" />
</h:link>
</h:column>
<h:column>
......
......@@ -6,7 +6,7 @@
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:event type="preRenderView" listener="#{userOverviewView.initView(#{i18n['rejectcard.mailSubject']}, #{i18n['rejectcard.mailBody']})}" />
<f:event type="preRenderView" listener="#{userOverviewView.initView()}" />
</f:metadata>
<ui:define name="content">
......@@ -14,18 +14,32 @@
<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 rendered="#{(!empty cartItem.eventUser.currentImage) and (!empty cartItem.eventUser.currentImage.imageData)}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{cartItem.eventUser.currentImage.id}.img" alt="image" onclick="PF('cropDialog#{table.rowIndex}').show();"/>
</ui:fragment>
<p:dialog id="imageCropperDialog" for="image" widgetVar="cropDialog#{table.rowIndex}" width="300" position="left">
<h:panelGrid>
<p:imageCropper value="#{cartItem.croppedImage}" aspectRatio="0.7317073170731707" image="/dydata/userimage/#{cartItem.eventUser.currentImage.id}.img" />
<h:commandButton action="#{userOverviewView.crop}" value="#{i18n['user.cropImage']}" oncomplete="PF('cropDialog#{table.rowIndex}').hide()"/>
</h:panelGrid>
</p:dialog>
<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>
<p:panel id="userInfo">
<h:panelGrid columns="2" border="0">
<h:outputText value="#{i18n['user.wholeName']}" />
......@@ -46,36 +60,50 @@
<!-- <button onclick="location.replace('#{request.contextPath}/useradmin/edit.jsf?userid=#{user.user.id}')">#{i18n['user.edit']}</button> -->
</h:panelGrid>
</p:panel>
</p:column>
<p:column styleClass="cardstatus-#{cartItem.printedCard == null ? 'nonprintable' : cartItem.printedCard.cardState.toStringLower()}">
<p:commandButton value="OK #{table.rowIndex}" actionListener="#{userOverviewView.acceptCard()}" ajax="true" onerror="location.reload(true);" update="schneider cardinfo">
<!-- <f:ajax execute="uov-items" render="@all"></f:ajax> -->
<p:commandButton value="OK #{table.rowIndex}" actionListener="#{userOverviewView.acceptCard()}" ajax="true" onerror="location.reload(true);" update=":form:cartOverviewTable:userInfo">
<!-- <f:ajax event="click" update="userInfo"></f:ajax>-->
</p:commandButton>
<p:commandButton id="Reject#{table.rowIndex}" value="Reject" onclick="PF('dialog#{table.rowIndex}').show();" type="button" onerror="location.reload(true);"/>
<p:dialog id="rejectDialog" widgetVar="dialog#{table.rowIndex}">
<h:selectManyCheckbox>
<f:selectItem value="#{cardItem.sendRejectionMail}" itemLabel="#{i18n['rejectcard.sendRejectionMail']}"></f:selectItem>
</h:selectManyCheckbox>
<h:panelGrid columns="2" border="0" >
<p:commandButton id="Reject#{table.rowIndex}" value="Reject" onclick="PF('dialog#{table.rowIndex}').show();" type="button" onerror="location.reload(true);" />
<p:dialog id="rejectDialog" widgetVar="dialog#{table.rowIndex}" width="600">
<h:selectBooleanCheckbox id="sendRejectionMail" value="#{cartItem.sendRejectionMail}">
<p:ajax event="change" update="sendMailPanel"/>
<h:outputLabel for="sendRejectionMail" value="#{i18n['rejectcard.sendRejectionMail']}" />
</h:selectBooleanCheckbox>
<h:outputText value="#{i18n['rejectcard.toAddr']}:" />
<h:inputText value="#{cardItem.rejectionMsgToAddr}"/>
<h:panelGrid id="sendMailPanel" columns="1">
<h:outputText value="#{i18n['rejectcard.toName']}:" />
<h:inputText value="#{cardItem.rejectionMsgToName}"/>
<h:panelGroup>
<h:outputText value="#{i18n['rejectcard.toAddr']}:" rendered="#{cartItem.sendRejectionMail}"/>
<h:inputText value="#{cartItem.rejectionMsgToAddr}" rendered="#{cartItem.sendRejectionMail}"/>
</h:panelGroup>
<h:outputText value="#{i18n['rejectcard.subject']}:" />
<h:inputText value="#{cardItem.rejectionMsgSubject}"/>
<h:panelGroup>
<h:outputText value="#{i18n['rejectcard.toName']}:" rendered="#{cartItem.sendRejectionMail}"/>
<h:inputText value="#{cartItem.rejectionMsgToName}" rendered="#{cartItem.sendRejectionMail}"/>
</h:panelGroup>
<h:outputText value="#{i18n['rejectcard.body']}:" />
<h:inputText value="#{cardItem.rejectionMsgBody}" />
<h:panelGroup>
<h:outputText value="#{i18n['rejectcard.subject']}:" rendered="#{cartItem.sendRejectionMail}"/>
<h:inputText value="#{cartItem.rejectionMsgSubject}" rendered="#{cartItem.sendRejectionMail}"/>
</h:panelGroup>
<p:inputTextarea cols="2" value="#{cardItem.rejectionMsg}"/>
<br />
</h:panelGrid>
<p:commandButton oncomplete="PF('dialog#{table.rowIndex}').hide()" actionListener="#{userOverviewView.rejectCard()}" value="Apply" ajax="true" onerror="location.reload(true);"/>
<h:panelGroup>
<h:outputText value="#{i18n['rejectcard.body']}:" rendered="#{cartItem.sendRejectionMail}"/>
<h:outputText value="" rendered="#{cartItem.sendRejectionMail}"/>
</h:panelGroup>
<p:inputTextarea value="#{cartItem.rejectionMsgBody}" rendered="#{cartItem.sendRejectionMail}"/>
<h:panelGroup>
<p:commandButton rendered="#{cartItem.sendRejectionMail}" oncomplete="PF('dialog#{table.rowIndex}').hide()" actionListener="#{userOverviewView.rejectCard()}" value="#{i18n['rejectcard.sendAndReject']}" ajax="true" onerror="location.reload(true);" update=":form:cartOverviewTable:userInfo"/>
<p:commandButton rendered="#{!cartItem.sendRejectionMail}" oncomplete="PF('dialog#{table.rowIndex}').hide()" actionListener="#{userOverviewView.rejectCard()}" value="#{i18n['rejectcard.reject']}" ajax="true" onerror="location.reload(true);" update=":form:cartOverviewTable:userInfo"/>
<p:commandButton onclick="PF('dialog#{table.rowIndex}').hide()" type="button" value="Cancel" onerror="location.reload(true);"/>
</h:panelGroup>
</h:panelGrid>
</p:dialog>
<!--<p:commandButton id="Reject" value="Reject" onclick="#{userOverviewView.rejectCard()}" type="button" onerror="location.reload(true);" update="schneider cardinfo"/>-->
......
......@@ -224,15 +224,16 @@ cardTextData.y = Y coordinate
cardTextData.size = Size of text (px)
cardTextData.zindex = Z index
cardTextData.fontname = Font name
cardTextData.fontcolor = Font color
cardTextData.fontstyle = Font style
cardTextData.fontstyle.PLAIN = Plain
cardTextData.fontstyle.BOLD = Bold
cardTextData.fontstyle.ITALIC = Italic
cardTextData.fontstyle.BOLDITALIC = Bold and Italic
cardTextData.fontalignment = Font alignment
cardTextData.fontalignment.LEFT = Left
cardTextData.fontalignment.CENTER = Center
cardTextData.fontalignment.RIGHT = Right
cardTextData.textalignment = Font alignment
cardTextData.textalignment.LEFT = Left
cardTextData.textalignment.CENTER = Center
cardTextData.textalignment.RIGHT = Right
cardTextData.text = Static text
cardTextData.type = Type
cardTextData.type.UNKNOWN = Unknown
......@@ -244,6 +245,7 @@ cardTextData.type.STATIC = Static
cardTextData.type.AGE = Age
cardTextData.type.ROLE = Role
cart.item = Item
cart.item_quantity = Quantity
cart.item_total = Total
......@@ -792,6 +794,9 @@ poll.save = Send answers
print = Print
printedCard.template = Template
printedCard.cardState = Card state
product.barcode = Barcode
product.billed = Billed
product.boughtTotal = Products billed
......@@ -867,12 +872,14 @@ readerview.cards = Card ( printcount )
registerleaflet.title = Register leaflet
rejectcard.mailSubject = Profile picture rejected
rejectcard.mailBody = {0} -tapahtuman profiiliisi sy\u00E4tetty kuva on hyl\u00E4tty soveltumattomana. Sy\u00E4t\u00E4 uusi kuva v\u00E4litt\u00E4m\u00E4sti. Kuvan saat asetettua profiili-sivulta. Hyv\u00E4ksytt\u00E4v\u00E4ss\u00E4 kuvassa kasvosi n\u00E4kyvät selke\u00E4sti ja tunnistettavasti. \n\n
rejectcard.mailBody = Your profile picture for event {0} has been rejected. Please upload new picture as soon as possible. Picture is valid if your face is shown clearly and can be easily recognized. \n\n
rejectcard.toAddr = Email address
rejectcard.toName = Name
rejectcard.body = Body
rejectcard.subject = Subject
rejectcard.sendRejectionMail = Send mail
rejectcard.sendAndReject = Send and reject
rejectcard.reject = Reject
resetMail.body = You can change a forgotten password by inserting your username or email address to the field below. A link where you can change the password will be sent to the email address associated to that.
resetMail.email = Email address
......
......@@ -231,10 +231,10 @@ cardTextData.fontstyle.PLAIN = Ei tyylittely
cardTextData.fontstyle.BOLD = Bold
cardTextData.fontstyle.ITALIC = Italic
cardTextData.fontstyle.BOLDITALIC = Bold ja Italic
cardTextData.fontalignment = Fontin sijoittelu
cardTextData.fontalignment.LEFT = Vasen
cardTextData.fontalignment.CENTER = Keskell
cardTextData.fontalignment.RIGHT = Oikea
cardTextData.textalignment = Fontin sijoittelu
cardTextData.textalignment.LEFT = Vasen
cardTextData.textalignment.CENTER = Keskell
cardTextData.textalignment.RIGHT = Oikea
cardTextData.text = Kiinte teksti
cardTextData.type = Tyyppi
cardTextData.type.UNKNOWN = Tuntematon
......@@ -245,6 +245,7 @@ cardTextData.type.LASTNAME = Sukunimi
cardTextData.type.STATIC = Staattinen
cardTextData.type.AGE = Ik
cardTextData.type.ROLE = Rooli
cardTextData.fontcolor = Fontin vri
cart.item = Tuote
cart.item_quantity = M\u00E4\u00E4r\u00E4
......@@ -776,6 +777,9 @@ poll.save = L\u00E4het\u00E4 vastauksesi
print = Tulosta
printedCard.template = Kortin template
printedCard.cardState = Kortin tila
product.barcode = Viivakoodi
product.billed = Laskutettu
product.boughtTotal = Tuotteita laskutettu
......@@ -852,13 +856,15 @@ readerview.cards = Kortit ( tulostuslkm )
registerleaflet.title = Rekisteriseloste
rejectcard.mailSubject = Kuva hyltty
rejectcard.mailBody = {0} -tapahtuman profiiliisi sy\u00E4tetty kuva on hyl\u00E4tty soveltumattomana. Sy\u00E4t\u00E4 uusi kuva v\u00E4litt\u00E4m\u00E4sti. Kuvan saat asetettua profiili-sivulta. Hyv\u00E4ksytt\u00E4v\u00E4ss\u00E4 kuvassa kasvosi n\u00E4kyvt selke\u00E4sti ja tunnistettavasti. \n\n
rejectcard.mailSubject = {0} -tapahtuman profiilin kuva hyltty
rejectcard.mailBody = {0} -tapahtuman profiiliisi sy\u00F6tetty kuva on hyl\u00E4tty soveltumattomana. Sy\u00F6t\u00E4 uusi kuva v\u00E4litt\u00F6m\u00E4sti. Kuvan saat asetettua profiili-sivulta. Hyv\u00E4ksytt\u00E4v\u00E4ss\u00E4 kuvassa kasvosi n\u00E4kyvt selke\u00E4sti ja tunnistettavasti. \n\n
rejectcard.toAddr = Shkpostiosoite
rejectcard.toName = Nimi
rejectcard.body = Viestin sislt
rejectcard.subject = Viestin otsikko
rejectcard.sendRejectionMail = Lhet shkpostia
rejectcard.sendAndReject = Lhet ja hylk
rejectcard.reject = Hylk
resetMail.body = Voit vaihtaa unohtuneen salasanan sy\u00F6tt\u00E4m\u00E4ll\u00E4 k\u00E4ytt\u00E4j\u00E4tunnuksesi tai tunnukseen liitetyn s\u00E4hk\u00F6postiosoitteen allaolevaan kentt\u00E4\u00E4n. Tunnukseen liitettyyn s\u00E4hk\u00F6postiosoitteeseen l\u00E4hetet\u00E4\u00E4n kertak\u00E4ytt\u00F6inen osoite jossa voit vaihtaa sy\u00F6tt\u00E4m\u00E4si k\u00E4ytt\u00E4j\u00E4tunnuksen salasanan.
resetMail.email = S\u00E4hk\u00F6postiosoite
......
package fi.codecrew.moya.web.cdiview.card;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.enums.CardObjectDataType;
import fi.codecrew.moya.enums.CardTemplateDataType;
import fi.codecrew.moya.enums.CardTextAlignment;
import fi.codecrew.moya.enums.CardTextDataType;
import fi.codecrew.moya.enums.CardTextStyle;
......@@ -13,35 +21,68 @@ 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.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.user.UserView;
@Named
@ConversationScoped
public class CardTemplateDataEditView extends GenericCDIView {
private static final long serialVersionUID = -9115983838324313414L;
private static final Logger logger = LoggerFactory.getLogger(CardTemplateDataEditView.class);
private Integer templateId = 0;
private Integer cardTextDataId = 0;
private Integer cardObjectDataId = 0;
private Integer createObjectType = 0;
private CardTemplateDataType createObjectType = CardTemplateDataType.UNKNOWN;
private CardTemplate cardTemplate;
private CardTextData cardTextData;
private CardObjectData cardObjectData;
private CardObjectDataType[] cardObjectDataTypes = CardObjectDataType.values();
private CardTextDataType[] cardTextDataTypes = CardTextDataType.values();
private String fontColorHex;
private CardTextStyle[] fontStyles = CardTextStyle.values();
private CardTextAlignment[] fontAlignments = CardTextAlignment.values();
@EJB
private transient CardTemplateBeanLocal cfbean;
public void initView() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
if(cardTemplate == null) {
if(createObjectType != CardTemplateDataType.UNKNOWN && cardObjectDataId == 0 && cardTextDataId == 0) {
if(createObjectType == CardTemplateDataType.TEXT_DATA) {
setCardTextData(new CardTextData());
logger.info("create object is Text Data");
}
else if(createObjectType == CardTemplateDataType.OBJECT_DATA) {
setCardObjectData(new CardObjectData());
logger.info("create object is Object Data");
}
} else if(cardObjectDataId != 0){
setCardObjectData(cfbean.findObjectData(cardObjectDataId));
logger.info("CardObjectData {}", cardObjectData);
} else if(cardTextDataId != 0) {
setCardTextData(cfbean.findTextData(cardTextDataId));
logger.info("CardTextData {}", cardTextData);
}
setCardTemplate(cfbean.find(templateId));
logger.info("CardTemplate {}", cardTemplate);
if(cardTextData != null)
cardTextData.setCardTemplate(cardTemplate);
else if(cardObjectData != null)
cardObjectData.setCardTemplate(cardTemplate);
super.beginConversation();
}
}
}
public void initCardTextData() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
......@@ -103,14 +144,27 @@ public class CardTemplateDataEditView extends GenericCDIView {
public void initCreateObjectType() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
if(createObjectType == 0) {
/*
if(createObjectType != CardTemplateDataType.UNKNOWN) {
if(createObjectType == 1)
setCardTextData(new CardTextData());
else if(createObjectType == 2)
setCardObjectData(new CardObjectData());
super.beginConversation();
}*/
}
}
public String localisedLabel(String text, String type) {
return I18n.get(text + type);
}
public String getFontColorHex() {
return fontColorHex;
}
public void setFontColorHex(String fontColorHex) {
this.fontColorHex = fontColorHex;
}
public String saveTextData() {
......@@ -157,11 +211,11 @@ public class CardTemplateDataEditView extends GenericCDIView {
this.cardObjectDataId = cardObjectDataId;
}
public Integer getCreateObjectType() {
public CardTemplateDataType getCreateObjectType() {
return createObjectType;
}
public void setCreateObjectType(Integer createObjectType) {
public void setCreateObjectType(CardTemplateDataType createObjectType) {
this.createObjectType = createObjectType;
}
......@@ -181,35 +235,20 @@ public class CardTemplateDataEditView extends GenericCDIView {
this.cardTemplate = cardTemplate;
}
public CardObjectDataType[] getCardObjectDataTypes() {
return cardObjectDataTypes;
}
public void setCardObjectDataTypes(CardObjectDataType[] cardObjectDataTypes) {
this.cardObjectDataTypes = cardObjectDataTypes;
}
public CardTextDataType[] getCardTextDataTypes() {
return cardTextDataTypes;
}
public void setCardTextDataTypes(CardTextDataType[] cardTextDataTypes) {
this.cardTextDataTypes = cardTextDataTypes;
}
public CardTextStyle[] getFontStyles() {
return fontStyles;
public List<CardObjectDataType> getCardObjectDataTypes() {
return new ArrayList<CardObjectDataType>(Arrays.asList(CardObjectDataType.values()));
}
public void setFontStyles(CardTextStyle[] fontStyles) {
this.fontStyles = fontStyles;
public List<CardTextDataType> getCardTextDataTypes() {
List<CardTextDataType> types = new ArrayList<CardTextDataType>(Arrays.asList(CardTextDataType.values()));
return types;
}
public CardTextAlignment[] getFontAlignments() {
return fontAlignments;
public List<CardTextStyle> getFontStyles() {
return new ArrayList<CardTextStyle>(Arrays.asList(CardTextStyle.values()));
}
public void setFontAlignments(CardTextAlignment[] fontAlignments) {
this.fontAlignments = fontAlignments;
public List<CardTextAlignment> getTextAlignments() {
return new ArrayList<CardTextAlignment>(Arrays.asList(CardTextAlignment.values()));
}
}
......@@ -38,28 +38,6 @@ public class CardTemplateDataView extends GenericCDIView {
@EJB
private transient CardTemplateBeanLocal cfbean;
public void initCardTextDatas() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
if(cardTextDatas == null) {
setCardTextDatas(cfbean.findCardTextDatas(cardTemplate));
super.beginConversation();
}
}
}
public void initCardObjectDatas() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
if(cardObjectDatas == null) {
setCardObjectDatas(cfbean.findCardObjectDatas(cardTemplate));
super.beginConversation();
}
}
}
public void initCardTemplate() {
if (super.requirePermissions(UserPermission.VIEW_ALL))
{
......
......@@ -15,6 +15,7 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.enums.CardTemplateDataType;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.CardTemplate;
import fi.codecrew.moya.model.EventUser;
......@@ -172,4 +173,11 @@ public class CardView extends GenericCDIView {
this.templateImage = templateImage;
}
public CardTemplateDataType getTextDataType() {
return CardTemplateDataType.TEXT_DATA;
}
public CardTemplateDataType getObjectDataType() {
return CardTemplateDataType.OBJECT_DATA;
}
}
......@@ -154,8 +154,8 @@ public class UserCartView extends GenericCDIView {
return "/useradmin/list";
}
public String showOverview(String mailSubject, String mailBody) {
userOverviewView.initView(mailSubject, mailBody);
public String showOverview() {
userOverviewView.initView();
return "/useradmin/overview";
}
......
package fi.codecrew.moya.web.cdiview.user;
import java.io.IOException;
import java.util.ArrayList;
import javax.ejb.EJB;
......@@ -11,14 +12,14 @@ import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.sun.xml.rpc.streaming.Event;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.model.UserImage;
import fi.codecrew.moya.util.MailMessage;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.helpers.UserOverviewItem;
......@@ -40,18 +41,12 @@ public class UserOverviewView extends GenericCDIView {
private static final Logger logger = LoggerFactory.getLogger(UserOverviewView.class);
public void initView(String rejectionSubject, String rejectionBody) {
public void initView() {
if (userOverviewItems == null) {
ArrayList<UserOverviewItem> ovlist = new ArrayList<UserOverviewItem>();
for (EventUser eu : getUserCartView().getUsercart()) {
PrintedCard pc = cardTemplateBean.checkPrintedCard(eu);
if(rejectionSubject == null)
rejectionSubject = "";
if(rejectionBody == null)
rejectionBody = "";
UserOverviewItem uoi = new UserOverviewItem(eu, pc, rejectionSubject, rejectionBody);
UserOverviewItem uoi = new UserOverviewItem(eu, pc, I18n.get("rejectcard.mailSubject"), I18n.get("rejectcard.mailBody"));
ovlist.add(uoi);
}
userOverviewItems = new ListDataModel<>(ovlist);
......@@ -66,6 +61,7 @@ public class UserOverviewView extends GenericCDIView {
public void rejectCard()
{
logger.info("rejectCard() start");
UserOverviewItem cardItem = null;
try {
cardItem = userOverviewItems.getRowData();
......@@ -80,7 +76,6 @@ public class UserOverviewView extends GenericCDIView {
if(card != null) {
MailMessage mail = null;
if(cardItem.isSendRejectionMail()) {
mail = new MailMessage();
......@@ -88,10 +83,10 @@ public class UserOverviewView extends GenericCDIView {
mail.setToName(cardItem.getRejectionMsgToName());
mail.setTo(card.getUser().getUser());
mail.setSubject(cardItem.getRejectionMsgSubject());
mail.setMessage(cardItem.getRejectionMsgBody() + "\r\n" + cardItem.getRejectionMsg());
mail.setMessage(cardItem.getRejectionMsgBody());
}
card = userBean.rejectPrintedCard(card);
card = userBean.rejectPrintedCard(card, mail);
cardItem.setPrintedCard(card);
logger.info("rejectCard(): Rejected card {}, state {}", card, card.getCardState() );
}
......@@ -111,6 +106,30 @@ public class UserOverviewView extends GenericCDIView {
logger.info("Accepted card: {}", cardItem.getPrintedCard());
}
public String crop()
{
UserOverviewItem cardItem = userOverviewItems.getRowData();
if (cardItem == null || cardItem.getCroppedImage() == null )
return null;
logger.info("Cropped image {}x{}", cardItem.getCroppedImage().getLeft(), cardItem.getCroppedImage().getTop());
logger.info("Cropped data bytesize {}, type {}", cardItem.getCroppedImage().getBytes().length, cardItem.getCroppedImage().getOriginalFilename());
try {
UserImage newImage =
userBean.saveCroppedImage(cardItem.getEventUser().getCurrentImage(),
cardItem.getCroppedImage().getLeft(), cardItem.getCroppedImage().getTop(),
cardItem.getCroppedImage().getWidth(), cardItem.getCroppedImage().getHeight());
cardItem.setEventUser(userBean.getEventUser(newImage.getUser(), false));
} catch (IOException e) {
logger.info("Error converting image", e);
super.addFaceMessage("user.errorConvertingImage");
}
return null;
}
public void setUserOverviewItems(ListDataModel<UserOverviewItem> userOverviewItems) {
this.userOverviewItems = userOverviewItems;
}
......
package fi.codecrew.moya.web.helpers;
import java.io.ByteArrayInputStream;
import javax.faces.event.ActionEvent;
import org.primefaces.model.CroppedImage;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import fi.codecrew.moya.enums.CardState;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;
......@@ -13,7 +19,7 @@ public class UserOverviewItem {
private boolean sendRejectionMail;
private CroppedImage croppedImage;
private String rejectionMsg;
private String rejectionMsgSubject;
......@@ -21,11 +27,12 @@ public class UserOverviewItem {
private String rejectionMsgToAddr;
private String rejectionMsgToName;
public UserOverviewItem(EventUser eu, PrintedCard pc, String mailSubject, String mailBody) {
eventUser = eu;
printedCard = pc;
sendRejectionMail = false;
sendRejectionMail = true;
if(mailSubject != null)
this.rejectionMsgSubject = mailSubject;
......@@ -36,6 +43,9 @@ public class UserOverviewItem {
else
this.rejectionMsgBody = "";
if(this.rejectionMsgSubject.contains("{0}") && eventUser != null && eventUser.getEvent() != null)
this.rejectionMsgSubject = this.rejectionMsgSubject.replace("{0}", eventUser.getEvent().getName());
if(this.rejectionMsgBody.contains("{0}") && eventUser != null && eventUser.getEvent() != null)
this.rejectionMsgBody = this.rejectionMsgBody.replace("{0}", eventUser.getEvent().getName());
......@@ -43,6 +53,24 @@ public class UserOverviewItem {
this.rejectionMsgToName = eventUser.getWholeName();
}
public StreamedContent getStreamedContent() {
if(eventUser.getCurrentImage() != null && eventUser.getCurrentImage().getImageData() != null) {
String mime = eventUser.getCurrentImage().getMimeType();
if(mime == null || mime.equals(""))
mime = "image/jpg";
return new DefaultStreamedContent(new ByteArrayInputStream(eventUser.getCurrentImage().getImageData()), mime);
}
return null;
}
public CroppedImage getCroppedImage() {
return croppedImage;
}
public void setCroppedImage(CroppedImage croppedImage) {
this.croppedImage = croppedImage;
}
public void acceptCard(ActionEvent ae) {
printedCard.setCardState(CardState.VALIDATED);
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!