Commit 1aa69f6c by Tuukka Kivilahti

moar of info

1 parent 17b2ebee
......@@ -32,6 +32,7 @@ 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.GroupMembership;
import fi.codecrew.moya.model.LanEvent;
import fi.codecrew.moya.model.LanEventProperty;
import fi.codecrew.moya.model.LanEventPropertyKey;
......@@ -85,6 +86,8 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
@EJB
private CardObjectDataFacade codFacade;
// @Override
// @RolesAllowed("USER_MANAGEMENT/WRITE")
// public List<CardTemplate> findAll() {
......@@ -265,7 +268,7 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
@RolesAllowed(UserPermission.S_WRITE_ROLES)
@Override
public CardTextData save(CardTextData textData) {
if(textData.getId() != null && textData.getId() != 0)
if (textData.getId() != null && textData.getId() != 0)
return ctdFacade.merge(textData);
else
return ctdFacade.create(textData);
......@@ -274,7 +277,7 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
@RolesAllowed(UserPermission.S_WRITE_ROLES)
@Override
public CardObjectData save(CardObjectData objectData) {
if(objectData.getId() != null && objectData.getId() != 0 )
if (objectData.getId() != null && objectData.getId() != 0)
return codFacade.merge(objectData);
else
return codFacade.create(objectData);
......@@ -350,4 +353,25 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
return card;
}
@Override
public EventUser giveCard(EventUser user, boolean markUserPlacesDelivered) {
PrintedCard card = checkPrintedCard(user);
if (card.getCardState() != CardState.DELIVERED) {
card.setCardState(CardState.DELIVERED);
card = printedcardfacade.merge(card);
}
if (markUserPlacesDelivered) {
for (GroupMembership membership : gmFacade.findMemberships(user)) {
membership.setEnteredEvent(Calendar.getInstance());
membership = gmFacade.merge(membership);
}
}
return eventUserFacade.reload(user);
}
}
......@@ -267,7 +267,13 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
@Override
@RolesAllowed({ SpecialPermission.S_USER, MapPermission.S_MANAGE_MAPS })
public void releaseAndGenerateToken(GroupMembership gmem) {
if(gmem.getEnteredEvent() != null && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
throw new EJBAccessException("Token already entered to event, Not enough rights to release token.");
}
gmem = gmemfacade.reload(gmem);
if (!(permbean.getCurrentUser().getId().equals(gmem.getPlaceGroup().getCreator().getId()) || permbean.hasPermission(MapPermission.MANAGE_OTHERS))) {
loggerbean.logMessage(SecurityLogType.permissionDenied, permbean.getCurrentUser(), "User tried to release and generate group membership: " + gmem);
throw new EJBAccessException("Not enough rights to release token");
......
......@@ -173,7 +173,7 @@ public class ReaderBean implements ReaderBeanLocal {
@Override
public ReaderEvent assocCodeToCard(ReaderEvent readerEvent, PrintedCard card) {
CardCode code = new CardCode(card, readerEvent.getReader().getType(), readerEvent.getValue());
CardCode code = new CardCode(card, readerEvent.getReader().getType(), readerEvent.getValue(), eventbean.getCurrentEvent());
code = cardCodeFacade.create(code);
card = cardfacade.reload(card);
......
......@@ -46,6 +46,7 @@ import fi.codecrew.moya.facade.FeedbackFacade;
import fi.codecrew.moya.facade.GameIDFacade;
import fi.codecrew.moya.facade.GroupMembershipFacade;
import fi.codecrew.moya.facade.PlaceGroupFacade;
import fi.codecrew.moya.facade.PrintedCardFacade;
import fi.codecrew.moya.facade.ProductFacade;
import fi.codecrew.moya.facade.RoleFacade;
import fi.codecrew.moya.facade.UserApprovalFacade;
......@@ -125,6 +126,10 @@ public class UserBean implements UserBeanLocal {
@EJB
private UserImageFacade imagefacade;
// changed bean to this bcause of loop
@EJB
private PrintedCardFacade printedcardfacade;
@EJB
private LoggingBeanLocal loggerbean;
......@@ -150,8 +155,7 @@ public class UserBean implements UserBeanLocal {
private EventFacade eventfacade;
@EJB
private ProductFacade productFacade;
@EJB
private CardTemplateBeanLocal cardTemplateBean;
@Override
@RolesAllowed(UserPermission.S_VIEW_ALL)
......@@ -477,7 +481,7 @@ public class UserBean implements UserBeanLocal {
if(card != null) {
card.setCardState(CardState.REJECTED);
card = cardTemplateBean.saveCard(card);
card = printedcardfacade.merge(card);
logger.info("rejectPrintedCard(): Rejected card {}, state {}", card, card.getCardState() );
User user = null;
......
......@@ -61,4 +61,6 @@ public interface CardTemplateBeanLocal extends EntityFinderBean<CardTemplate> {
PrintedCard setCardState(Integer cardId, CardState printed) throws Exception;
EventUser giveCard(EventUser user, boolean markUserPlacesDelivered);
}
......@@ -25,10 +25,11 @@ public class CardCode extends GenericEntity {
@JoinColumn(name = "printed_cards_id")
private PrintedCard printedCard;
public CardCode(PrintedCard card, ReaderType type, String code) {
public CardCode(PrintedCard card, ReaderType type, String code, LanEvent event) {
this.printedCard = card;
this.type = type;
this.code = code;
this.event = event;
}
public CardCode() {
......
......@@ -4,6 +4,7 @@
*/
package fi.codecrew.moya.model;
import java.beans.Transient;
import java.util.Calendar;
import javax.persistence.CascadeType;
......
......@@ -9,7 +9,8 @@ public enum CardState {
REJECTED,
VALIDATED,
PRINTING_IN_PROGRESS,
PRINTED;
PRINTED,
DELIVERED;
public String toStringLower() {
return this.toString().toLowerCase();
......
......@@ -4,7 +4,7 @@
<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:shop="http://java.sun.com/jsf/composite/cditools/shop" xmlns:reader="http://java.sun.com/jsf/composite/cditools/reader"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:user="http://java.sun.com/jsf/composite/cditools/user" xmlns:infoview="http://java.sun.com/jsf/composite/cditools/infoview">
<h:body>
<ui:composition template="/resources/templates/#{sessionHandler.fullscreen}/template.xhtml">
<ui:composition template="/resources/templates/#{sessionHandler.infoscreen}/template.xhtml">
<f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" />
......@@ -12,7 +12,7 @@
</f:metadata>
<ui:define name="content">
<!--
<!--
<h1>#{i18n['incomingflow.search']}</h1>
<h:form>
<h:panelGrid columns="2" >
......@@ -31,6 +31,10 @@
yhtäsuurimerkit -->
<reader:backendReader selectvalue="#{i18n['barcodeReader.readBarcode']}" selectaction="#{incomingView.polledRead}" />
<h:form>
<p:autoComplete id="acsb" value="#{infoView.multiSearchUser}" completeMethod="#{infoView.matchMulti}" converter="#{eventUserConverter}" var="usrx" itemLabel="#{usrx.shortUserDescriptor}" itemValue="#{usrx}">
......@@ -38,8 +42,21 @@
</p:autoComplete>
</h:form>
<h:form>
<p:poll update="attachBarcode" interval="2" ignoreAutoUpdate="true" />
<h:panelGroup id="attachBarcode">
<h:panelGroup rendered="#{incomingView.showAttachDialog}">
<h1>#{i18n['incomingView.attachDialogTitle']}</h1>
<p:commandButton value="#{i18n['incomingView.attach']}" action="#{incomingView.attachCodeToCard}" update="@all" />
<p:commandButton value="#{i18n['incomingView.cancel']}" action="#{incomingView.hideAttachDialog}" update="@all" />
</h:panelGroup>
</h:panelGroup>
</h:form>
<!-- infoviilausta, kauppa infoon -->
<!-- infoviilausta, kauppa infoon -->
<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
<h1>#{i18n['incomingflow.userdetails']}</h1>
......@@ -47,20 +64,20 @@
<h:panelGrid id="cropper" columns="3">
<h:panelGroup>
<user:edit id="usereditor" commitaction="#{incomingView.saveUser()}" commitvalue="#{i18n['user.save']}" camAlwaysOn="true" />
<user:edit id="usereditor" commitaction="#{incomingView.saveUser()}" commitvalue="#{i18n['user.save']}" camAlwaysOn="true" photocamupdate="@all" />
</h:panelGroup>
<h:panelGroup>
<h:form id="imgCropperForm" rendered="#{!empty userView.user.currentImage}">
<h:form id="imgCropperForm" rendered="#{!empty userView.selectedUser.currentImage}">
<p:commandButton value="#{i18n['user.imageCropRefresh']}" ajax="false" update="imgCropperForm" />
<h:outputLabel value="#{i18n['user.cropUserImage']}:" />
<p:imageCropper id="imgCropper" value="#{userView.croppedImage}" aspectRatio="0.7317073170731707" image="/dydata/userimage/#{userView.user.currentImage.id}.img" />
<p:imageCropper id="imgCropper" value="#{userView.croppedImage}" aspectRatio="0.7317073170731707" image="/dydata/userimage/#{userView.selectedUser.currentImage.id}.img" />
<br />
<h:commandButton action="#{userView.crop}" value="#{i18n['user.cropImage']}" />
</h:form>
</h:panelGroup>
<h:panelGroup>
<h:form>
<p:graphicImage url="/dydata/usercard/#{userView.user.user.id}.png" width="300" />
<p:graphicImage url="/dydata/usercard/#{userView.selectedUser.user.id}.png" width="300" />
<br />
<h:commandButton action="#{incomingView.printCard}" value="#{i18n['print']}" /> (status: #{incomingView.printedStatus})
</h:form>
......
......@@ -13,7 +13,7 @@
xmlns:tools="http://java.sun.com/jsf/composite/cditools">
<h:body>
<ui:composition
template="/resources/templates/#{sessionHandler.fullscreen}/template.xhtml">
template="/resources/templates/#{sessionHandler.infoscreen}/template.xhtml">
<f:metadata>
<f:event type="preRenderView" listener="#{incomingView.initView}" />
......
......@@ -7,7 +7,7 @@
xmlns:shop="http://java.sun.com/jsf/composite/cditools/shop"
>
<h:body>
<ui:composition template="/resources/templates/#{sessionHandler.fullscreen}/template.xhtml">
<ui:composition template="/resources/templates/#{sessionHandler.infoscreen}/template.xhtml">
<f:metadata>
<f:viewParam name="userid" value="#{flowShopView.userId}" />
......
......@@ -49,7 +49,7 @@
</p:column>
<p:column>
<h:commandButton rendered="#{placeGroupView.canModifyCurrent and placeGroupView.currentMemberUserNotNull}" action="#{placeGroupView.releasePlace()}" value="#{i18n['placegroupview.releasePlace']}" />
<h:commandButton rendered="#{placeGroupView.canModifyCurrent and placeGroupView.currentMemberUserNotNull and placeGroupView.currentReleaseAllowed}" action="#{placeGroupView.releasePlace()}" value="#{i18n['placegroupview.releasePlace']}" />
</p:column>
</p:dataTable>
......
......@@ -25,7 +25,7 @@ xmlns:reader="http://java.sun.com/jsf/composite/cditools/reader"
<h:form id="autopoller">
<h:panelGroup id="reader_autopoll">
<p:poll rendered="#{readerView.pollingMode}" interval="1" listener="#{cc.attrs.selectaction}" onerror="location.reload();" />
<p:poll rendered="#{readerView.pollingMode}" interval="2" listener="#{cc.attrs.selectaction}" onerror="location.reload();" />
</h:panelGroup>
......
......@@ -25,7 +25,7 @@
<h:panelGrid columns="2">
<h:panelGroup>
<ui:fragment rendered="#{not empty userView.user.id}">
<ui:fragment rendered="#{not empty userView.selectedUser.id}">
<p:overlayPanel id="chartPanel" for="webcamButton" hideEffect="fade">
......@@ -33,9 +33,9 @@
<p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" onerror="location.reload(true);" />
</p:overlayPanel>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<ui:fragment rendered="#{!empty userView.user.currentImage}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img" alt="image" />
<h:outputText rendered="#{empty userView.selectedUser.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<ui:fragment rendered="#{!empty userView.selectedUser.currentImage}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{userView.selectedUser.currentImage.id}.img" alt="image" />
</ui:fragment>
<br />
<p:commandButton id="webcamButton" value="#{i18n['userimage.webcam']}" onerror="location.reload(true);" type="button" />
......
......@@ -21,16 +21,16 @@
<h:form id="userform" enctype="multipart/form-data">
<h:panelGroup>
<ui:fragment rendered="#{not empty userView.user.id}">
<ui:fragment rendered="#{not empty userView.selectedUser.id}">
<p:dialog id="chartPanel" for="webcamButton" modal="true" dynamic="true" widgetVar="webcamDialog">
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" onerror="location.reload(true);"/>
</p:dialog>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<ui:fragment rendered="#{!empty userView.user.currentImage}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img" alt="image" />
<h:outputText rendered="#{empty userView.selectedUser.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<ui:fragment rendered="#{!empty userView.selectedUser.currentImage}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{userView.selectedUser.currentImage.id}.img" alt="image" />
</ui:fragment>
<br />
<p:commandButton onerror="location.reload(true);" rendered="#{!cc.attrs.camAlwaysOn}" id="webcamButton" value="#{i18n['userimage.webcam']}" onclick="PF('webcamDialog').show()" type="button" />
......@@ -38,9 +38,8 @@
<br />
<br />
<ui:fragment rendered="#{cc.attrs.camAlwaysOn}">
photoupdate: #{cc.attrs.photocamupdate}
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="#{cc.attrs.photocamupdate}" />
<p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" onerror="location.reload(true);" />
<p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" onerror="location.reload(true);" update="#{cc.attrs.photocamupdate}" />
</ui:fragment>
<!-- -->
&nbsp;
......
......@@ -57,7 +57,14 @@
<div class="container top">
<ui:insert name="topbar" />
<p:messages showDetail="false" autoUpdate="true" />
<h:form id="dialogs">
<p:confirmDialog id="confirmDialog" global="true" showEffect="fade" hideEffect="explode">
<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
<p:growl id="growl" showDetail="true" sticky="true" autoUpdate="true" />
</h:form>
</div>
<div class="clearfix"></div>
......
......@@ -160,7 +160,13 @@ global.save = Save
httpsession.creationTime = Created
incomingflow.alreadyShowingUser.message = Piipattu k\u00E4ytt\u00E4j\u00E4 on jo n\u00E4kyviss\u00E4
incomingflow.alreadyShowingUser.title = Valmiiksi valittu
incomingflow.codeattached.message = Piipattu koodi liitetty n\u00E4ytett\u00E4v\u00E4\u00E4n korttiin
incomingflow.codeattached.title = Koodi liittetty
incomingflow.giveplace = Merkitse annetuksi
incomingflow.invalidbarcode.message = Viivakoodilla ei l\u00F6ytynyt mit\u00E4\u00E4n
incomingflow.invalidbarcode.title = virheellinen koodi
lanEventPrivateProperty.defaultValue = Default value
lanEventPrivateProperty.editProperty = Edit property
......
......@@ -462,9 +462,15 @@ imagefile.file = Imagefile
importuser.file = File
importuser.template = Template
incomingflow.alreadyShowingUser.message = We are already showing selected user
incomingflow.alreadyShowingUser.title = Already selected
incomingflow.barcode = Barcode
incomingflow.changereader = Change Reader
incomingflow.codeattached.message = Code attached to current user's card
incomingflow.codeattached.title = Code attached
incomingflow.giveplace = Mark given
incomingflow.invalidbarcode.message = Nothing found with barcode, you can now add it to the user
incomingflow.invalidbarcode.title = Invalid code
incomingflow.multisearch = Multisearch
incomingflow.search = Search
incomingflow.ungiveplace = Mark not given
......
......@@ -193,6 +193,19 @@ bortalApplication.user.WRITE_ROLES = Saa muokata rooleja
card.massprint.title = Tulosta kaikki
cardObjectData.create = Liit\u00E4 kuvia
cardObjectData.edit = Muokkaa
cardObjectData.save = Tallenna
cardObjectData.size = Leveys (px)
cardObjectData.type = Tyyppi
cardObjectData.type.CARDS_BARCODE = Kortin viivakoodi
cardObjectData.type.UNKNOWN = Tuntematon
cardObjectData.type.USERS_BARCODE = K\u00E4ytt\u00E4j\u00E4n viivakoodi
cardObjectData.type.USERS_PICTURE = K\u00E4ytt\u00E4j\u00E4n kuva
cardObjectData.x = X koordinaatti
cardObjectData.y = Y koordinaatti
cardObjectData.zindex = Z index
cardTemplate.create = Luo
cardTemplate.edit = Muokkaa
cardTemplate.id = Id
......@@ -203,51 +216,37 @@ cardTemplate.roles = Yhdistetyt roolit
cardTemplate.save = Tallenna
cardTemplate.sendImage = Lataa kuva
cardTemplateData.list = Ohjeissislln listaus
cardTemplateData.list = Ohjeissis\u00E4ll\u00F6n listaus
cardObjectData.create = Liit kuvia
cardObjectData.save = Tallenna
cardObjectData.edit = Muokkaa
cardObjectData.x = X koordinaatti
cardObjectData.y = Y koordinaatti
cardObjectData.size = Leveys (px)
cardObjectData.zindex = Z index
cardObjectData.type = Tyyppi
cardObjectData.type.UNKNOWN = Tuntematon
cardObjectData.type.USERS_PICTURE = Kyttjn kuva
cardObjectData.type.USERS_BARCODE = Kyttjn viivakoodi
cardObjectData.type.CARDS_BARCODE = Kortin viivakoodi
cardTextData.create = Liit teksti
cardTextData.save = Tallenna
cardTextData.create = Liit\u00E4 teksti\u00E4
cardTextData.edit = Muokkaa
cardTextData.x = X koordinaatti
cardTextData.y = Y koordinaatti
cardTextData.size = Tekstin koko (px)
cardTextData.zindex = Z index
cardTextData.fontcolor = Fontin v\u00E4ri
cardTextData.fontname = Fontin nimi
cardTextData.fontcolor = Fontin vri
cardTextData.fontstyle = Fontin tyyli
cardTextData.fontstyle.PLAIN = Ei tyylittely
cardTextData.fontstyle.BOLD = Bold
cardTextData.fontstyle.ITALIC = Italic
cardTextData.fontstyle.BOLDITALIC = Bold ja Italic
cardTextData.fontstyle.ITALIC = Italic
cardTextData.fontstyle.PLAIN = Ei tyylittely\u00E4
cardTextData.save = Tallenna
cardTextData.size = Tekstin koko (px)
cardTextData.text = Kiinte\u00E4 teksti
cardTextData.textalignment = Fontin sijoittelu
cardTextData.textalignment.CENTER = Keskell\u00E4
cardTextData.textalignment.LEFT = Vasen
cardTextData.textalignment.CENTER = Keskell
cardTextData.textalignment.RIGHT = Oikea
cardTextData.text = Kiinte teksti
cardTextData.type = Tyyppi
cardTextData.type.UNKNOWN = Tuntematon
cardTextData.type.NICK = Nimimerkki
cardTextData.type.WHOLENAME = Kokonimi
cardTextData.type.AGE = Ik\u00E4
cardTextData.type.AUTHCODE = MoyaAuth koodi
cardTextData.type.FIRSTNAME = Etunimi
cardTextData.type.LASTNAME = Sukunimi
cardTextData.type.STATIC = Staattinen
cardTextData.type.AGE = Ik
cardTextData.type.NICK = Nimimerkki
cardTextData.type.ROLE = Rooli
cardTextData.type.AUTHCODE = MoyaAuth koodi
cardTextData.type.STATIC = Staattinen
cardTextData.type.UNKNOWN = Tuntematon
cardTextData.type.WHOLENAME = Kokonimi
cardTextData.x = X koordinaatti
cardTextData.y = Y koordinaatti
cardTextData.zindex = Z index
cart.item = Tuote
cart.item_quantity = M\u00E4\u00E4r\u00E4
......@@ -471,9 +470,15 @@ imagefile.file = Kuvatiedosto
importuser.file = Tiedosto
importuser.template = Malli
incomingflow.alreadyShowingUser.message = Piipattu k\u00E4ytt\u00E4j\u00E4 on jo n\u00E4kyviss\u00E4
incomingflow.alreadyShowingUser.title = Valmiiksi valittu
incomingflow.barcode = Viivakoodi
incomingflow.changereader = Vaihda lukijaa
incomingflow.codeattached.message = Piipattu koodi liitetty aktiiviseen k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingflow.codeattached.title = Koodi liitetty
incomingflow.giveplace = Merkitse annetuksi
incomingflow.invalidbarcode.message = Piipatulla koodilla ei l\u00F6ytynyt mit\u00E4\u00E4n, voit lis\u00E4t\u00E4 koodin k\u00E4ytt\u00E4j\u00E4\u00E4n
incomingflow.invalidbarcode.title = Virheellinen koodi
incomingflow.multisearch = Monihaku
incomingflow.search = Etsi
incomingflow.ungiveplace = Ei olekkaan annettu
......@@ -779,11 +784,11 @@ poll.save = L\u00E4het\u00E4 vastauksesi
print = Tulosta
printedCard.template = Kortin template
printedCard.cardState = Kortin tila
printedCard.cardState.PENDING_VALIDATION = Odottaa hyvksynt
printedCard.cardState.VALIDATED = Hyvksytty
printedCard.cardState.REJECTED = Hyltty
printedCard.cardState.PENDING_VALIDATION = Odottaa hyv\u00E4ksynt\u00E4\u00E4
printedCard.cardState.REJECTED = Hyl\u00E4tty
printedCard.cardState.VALIDATED = Hyv\u00E4ksytty
printedCard.template = Kortin template
product.barcode = Viivakoodi
product.billed = Laskutettu
......@@ -861,15 +866,15 @@ readerview.cards = Kortit ( tulostuslkm )
registerleaflet.title = Rekisteriseloste
rejectcard.mailSubject = {0} -tapahtuman profiilin kuva hyltty
rejectcard.mailBody = {0} -tapahtuman profiiliisi sytetty kuva on hyltty soveltumattomana. Syt uusi kuva vlittmsti. Kuvan saat asetettua profiili-sivulta. Hyvksyttvss kuvassa kasvosi tulee nky selkesti ja kokonaan. Tarkista uuden kuvan lhettmisen jlkeen, ett se on rajautunut oikein ja on oikeassa asennossa.
rejectcard.toAddr = Shkpostiosoite
rejectcard.toName = Nimi
rejectcard.body = Viestin sislt
rejectcard.body = Viestin sis\u00E4lt\u00F6
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 tulee n\u00E4ky\u00E4 selke\u00E4sti ja kokonaan. Tarkista uuden kuvan l\u00E4hett\u00E4misen j\u00E4lkeen, ett\u00E4 se on rajautunut oikein ja on oikeassa asennossa.
rejectcard.mailSubject = {0} -tapahtuman profiilin kuva hyl\u00E4tty
rejectcard.reject = Hylk\u00E4\u00E4
rejectcard.sendAndReject = L\u00E4het\u00E4 ja hylk\u00E4\u00E4
rejectcard.sendRejectionMail = L\u00E4het\u00E4 s\u00E4hk\u00F6postia
rejectcard.subject = Viestin otsikko
rejectcard.sendRejectionMail = Lhet shkpostia
rejectcard.sendAndReject = Lhet ja hylk
rejectcard.reject = Hylk
rejectcard.toAddr = S\u00E4hk\u00F6postiosoite
rejectcard.toName = Nimi
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
......@@ -1316,8 +1321,6 @@ user.wholeName = Nimi
user.wholename = Koko nimi
user.zipCode = Postinumero
userImport.commit = Hyv\u00E4ksy
userView.image = Kuva
......
......@@ -69,6 +69,15 @@ public class PlacegroupView extends GenericCDIView {
return false;
}
public boolean isCurrentReleaseAllowed() {
GroupMembership row = memberlist.getRowData();
if(row.getEnteredEvent() != null && !permbean.hasPermission(MapPermission.MANAGE_OTHERS))
return false;
return true;
}
public ListDataModel<GroupMembership> getGroupMemberships() {
memberlist = new ListDataModel<GroupMembership>(
placegroupBean.getMembershipsAndCreations(user));
......@@ -78,14 +87,13 @@ public class PlacegroupView extends GenericCDIView {
public String releasePlace() {
GroupMembership row = memberlist.getRowData();
if (row != null) {
if (permbean.isCurrentUser(row.getPlaceGroup().getCreator())
|| permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
if (permbean.isCurrentUser(row.getPlaceGroup().getCreator()) || permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
placegroupBean.releaseAndGenerateToken(row);
this.addFaceMessage("placegroupview.placeReleased", row
.getPlaceReservation().getName());
this.addFaceMessage("placegroupview.placeReleased", row.getPlaceReservation().getName());
} else {
this.addFaceMessage("placegroupview.placeReleaseFailed", row
.getPlaceReservation().getName());
this.addFaceMessage("placegroupview.placeReleaseFailed", row.getPlaceReservation().getName());
}
}
......
......@@ -2,6 +2,8 @@ package fi.codecrew.moya.web.flow;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.ListDataModel;
import javax.inject.Inject;
import javax.inject.Named;
......@@ -22,6 +24,7 @@ import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.GroupMembership;
import fi.codecrew.moya.model.PrintedCard;
import fi.codecrew.moya.model.ReaderEvent;
import fi.codecrew.moya.utilities.I18n;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.cdiview.reader.ReaderNameContainer;
import fi.codecrew.moya.web.cdiview.reader.ReaderView;
......@@ -33,12 +36,13 @@ public class IncomingView extends GenericCDIView {
private static final long serialVersionUID = 802344850073689859L;
private static final Logger logger = LoggerFactory.getLogger(IncomingView.class);
/*
@Inject
@SelectedUser
private transient EventUser user;
*/
private static final Logger logger = LoggerFactory
.getLogger(IncomingView.class);
/*
* @Inject
*
* @SelectedUser private transient EventUser user;
*/
@Inject
private UserView userview;
......@@ -67,42 +71,40 @@ public class IncomingView extends GenericCDIView {
private UserBeanLocal userbean;
@EJB
private transient PlaceGroupBeanLocal placegroupBean;
//private String searchBarcode = "";
private PlaceGroupBeanLocal placegroupBean;
// private String searchBarcode = "";
private ListDataModel<GroupMembership> memberlist = null;
public void initView() {
super.beginConversation();
}
/*
public String getSearchBarcode() {
return searchBarcode;
}
public void setSearchBarcode(String searchBarcode) {
this.searchBarcode = searchBarcode;
}
public List<String> matchBarcode(String matchWhat) {
List<GroupMembership> gms = placeBean.matchGroupMembershipsByInviteToken(matchWhat);
ArrayList<String> arl = new ArrayList<>();
for (GroupMembership gm : gms) {
arl.add(gm.getInviteToken());
}
private ReaderEvent eventToAttach = null;
private boolean showAttachDialog = false;
return arl;
}
private boolean autoGivePlaces = true;
*/
/*
* public String getSearchBarcode() { return searchBarcode; }
*
* public void setSearchBarcode(String searchBarcode) { this.searchBarcode =
* searchBarcode; }
*
* public List<String> matchBarcode(String matchWhat) {
* List<GroupMembership> gms =
* placeBean.matchGroupMembershipsByInviteToken(matchWhat);
* ArrayList<String> arl = new ArrayList<>(); for (GroupMembership gm : gms)
* { arl.add(gm.getInviteToken()); }
*
* return arl; }
*/
public void changeUser(SelectEvent event) {
if (infoView.getMultiSearchUser() != null) {
super.navihandler.redirectNavigation("incoming.jsf?userid=" + infoView.getMultiSearchUser().getUser().getId());
super.navihandler.redirectNavigation("incoming.jsf?userid="
+ infoView.getMultiSearchUser().getUser().getId());
infoView.setMultiSearchUser(null);
}
}
......@@ -111,13 +113,15 @@ public class IncomingView extends GenericCDIView {
public void initPrintCardView() {
memberlist = null;
if (!permbean.hasPermission(UserPermission.MODIFY) || namecontainer.getReaderId() == null || namecontainer.getReaderId() <= 0) {
if (!permbean.hasPermission(UserPermission.MODIFY)
|| namecontainer.getReaderId() == null
|| namecontainer.getReaderId() <= 0) {
super.navihandler.redirectNavigation("index.jsf");
}
if (!initialized) {
logger.debug("INITIALIZING!!!!");
//initializePoller();
// initializePoller();
initialized = true;
super.beginConversation();
}
......@@ -135,12 +139,13 @@ public class IncomingView extends GenericCDIView {
public void polledRead() {
ReaderEvent event = readerView.getReaderEvent();
if(event == null)
if (event == null)
return;
FacesContext context = FacesContext.getCurrentInstance();
logger.debug(":got.code:");
EventUser user = event.getUser();
......@@ -150,43 +155,63 @@ public class IncomingView extends GenericCDIView {
userview.setUser(user);
// userview.prepareCardDownload();
// PURKKAAA, sori tästä, koitan refaktoroida kauniiksi ku kerkiän -TKwtf
// PURKKAAA, sori tästä, koitan refaktoroida kauniiksi ku
// kerkiän -TKwtf
super.navihandler.redirectNavigation("incoming.jsf?userid=" + user.getUser().getId());
} else {
context.addMessage(null, new FacesMessage(I18n.get("incomingflow.alreadyShowingUser.title"), I18n.get("incomingflow.alreadyShowingUser.message")));
}
} else {
// still there, it must be "clean" barcode
if (userview.getUser() != null) {
userview.attachCodeToCard(event);
if (userview.getSelectedUser() != null) {
eventToAttach = event;
showAttachDialog = true;
context.addMessage(null, new FacesMessage(I18n.get("incomingflow.invalidbarcode.title"), I18n.get("incomingflow.invalidbarcode.message")));
}
}
}
/*
public String selectUser() {
ReaderEvent event = readerView.getReaderEvent();
public void attachCodeToCard() {
if (eventToAttach == null) {
throw new RuntimeException("mitä kettua?");
}
if(event == null)
return null;
cardBean.giveCard(userview.getCurrentUser(), autoGivePlaces);
userview.attachCodeToCard(eventToAttach);
eventToAttach = null;
showAttachDialog = false;
EventUser user = event.getUser();
memberlist = null;
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("incomingflow.codeattached.title"), I18n.get("incomingflow.codeattached.message")));
}
if (user == null) {
logger.debug("got no user from barcode");
return null;
public boolean isShowAttachDialog() {
return showAttachDialog;
}
logger.debug("got user from barcode");
public void hideAttachDialog() {
showAttachDialog = false;
}
userview.setUser(user);
//userview.prepareCardDownload();
return "incoming";
} */
/*
* public String selectUser() {
*
* ReaderEvent event = readerView.getReaderEvent();
*
* if(event == null) return null;
*
* EventUser user = event.getUser(); memberlist = null;
*
* if (user == null) { logger.debug("got no user from barcode"); return
* null; }
*
* logger.debug("got user from barcode");
*
* userview.setUser(user); //userview.prepareCardDownload(); return
* "incoming"; }
*/
public CardState getPrintedStatus() {
PrintedCard card = cardBean.checkPrintedCard(userview.getUser());
......@@ -204,7 +229,6 @@ public class IncomingView extends GenericCDIView {
return null;
}
public ListDataModel<GroupMembership> getGroupMemberships() {
memberlist = new ListDataModel<GroupMembership>(
placegroupBean.getMembershipsAndCreations(userview.getUser()));
......@@ -229,9 +253,4 @@ public class IncomingView extends GenericCDIView {
return null;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!