Commit 91e9c541 by Antti Tonkyra

Merge branch 'master' of dev.insomnia.fi:/data/bortal

2 parents 1e6c8df6 d79a313d
Showing with 787 additions and 420 deletions
...@@ -30,6 +30,8 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -30,6 +30,8 @@ public class ReaderBean implements ReaderBeanLocal {
private CardTemplateBeanLocal cardtemplatebean; private CardTemplateBeanLocal cardtemplatebean;
@EJB @EJB
private ReaderEventFacade readerEventFacade; private ReaderEventFacade readerEventFacade;
@EJB
private EventBeanLocal eventbean;
private static final Logger logger = LoggerFactory.getLogger(ReaderBean.class); private static final Logger logger = LoggerFactory.getLogger(ReaderBean.class);
...@@ -168,4 +170,13 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -168,4 +170,13 @@ public class ReaderBean implements ReaderBeanLocal {
return readerEventFacade.findLastEvents(reader, 20); return readerEventFacade.findLastEvents(reader, 20);
} }
@Override
public ReaderEvent getEvent(Integer eventid) {
ReaderEvent ret = readerEventFacade.find(eventid);
if (!ret.getReader().getEvent().equals(eventbean.getCurrentEvent()))
{
ret = null;
}
return ret;
}
} }
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.annotation.security.DeclareRoles;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.apps.SalespointPermission;
import fi.insomnia.bortal.facade.SalespointFacade;
import fi.insomnia.bortal.model.salespoint.Salespoint;
/**
* Session Bean implementation class SalespointBean
*/
@Stateless
@LocalBean
@DeclareRoles({ SalespointPermission.S_VIEW, SalespointPermission.S_MODIFY })
public class SalespointBean implements SalespointBeanLocal {
private static final Logger logger = LoggerFactory
.getLogger(SalespointBean.class);
@EJB
SalespointFacade salespointFacade;
public SalespointBean() {
}
@Override
public List<Salespoint> findAll() {
List<Salespoint> list = salespointFacade.findAll();
if (list != null)
logger.debug("Found {} salespoints", list.size());
return list;
}
}
package fi.insomnia.bortal.facade;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.model.salespoint.Salespoint;
import fi.insomnia.bortal.model.salespoint.Salespoint_;
/**
* Session Bean implementation class SalespointFacade
*/
@Stateless
@LocalBean
public class SalespointFacade extends IntegerPkGenericFacade<Salespoint> {
@EJB
private EventBeanLocal eventbean;
public SalespointFacade() {
super(Salespoint.class);
}
public List<Salespoint> findAll() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Salespoint> cq = cb.createQuery(Salespoint.class);
Root<Salespoint> root = cq.from(Salespoint.class);
cq.where(cb.equal(root.get(Salespoint_.event),
eventbean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList();
}
}
...@@ -23,4 +23,6 @@ public interface ReaderBeanLocal { ...@@ -23,4 +23,6 @@ public interface ReaderBeanLocal {
List<ReaderEvent> getReaderEvents(Integer readerId); List<ReaderEvent> getReaderEvents(Integer readerId);
ReaderEvent getEvent(Integer eventid);
} }
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.salespoint.Salespoint;
@Local
public interface SalespointBeanLocal {
List<Salespoint> findAll();
}
...@@ -6,6 +6,7 @@ import fi.insomnia.bortal.enums.apps.IAppPermission; ...@@ -6,6 +6,7 @@ import fi.insomnia.bortal.enums.apps.IAppPermission;
import fi.insomnia.bortal.enums.apps.LayoutPermission; import fi.insomnia.bortal.enums.apps.LayoutPermission;
import fi.insomnia.bortal.enums.apps.MapPermission; import fi.insomnia.bortal.enums.apps.MapPermission;
import fi.insomnia.bortal.enums.apps.PollPermission; import fi.insomnia.bortal.enums.apps.PollPermission;
import fi.insomnia.bortal.enums.apps.SalespointPermission;
import fi.insomnia.bortal.enums.apps.ShopPermission; import fi.insomnia.bortal.enums.apps.ShopPermission;
import fi.insomnia.bortal.enums.apps.TerminalPermission; import fi.insomnia.bortal.enums.apps.TerminalPermission;
import fi.insomnia.bortal.enums.apps.UserPermission; import fi.insomnia.bortal.enums.apps.UserPermission;
...@@ -19,6 +20,7 @@ public enum BortalApplication { ...@@ -19,6 +20,7 @@ public enum BortalApplication {
CONTENT("News, pages and other dynamic content", ContentPermission.class), CONTENT("News, pages and other dynamic content", ContentPermission.class),
TERMINAL("Sales and self help terminal roles", TerminalPermission.class), TERMINAL("Sales and self help terminal roles", TerminalPermission.class),
LAYOUT("Layoutstuff", LayoutPermission.class), LAYOUT("Layoutstuff", LayoutPermission.class),
SALESPOINT("Managing salespoints", SalespointPermission.class),
; ;
......
package fi.insomnia.bortal.enums.apps;
import fi.insomnia.bortal.enums.BortalApplication;
public enum SalespointPermission implements IAppPermission {
VIEW("View salespoints"), MODIFY("Modify salespoints");
public static final String S_VIEW = "SALESPOINT/VIEW";
public static final String S_MODIFY = "SALESPOINT/MODIFY";
private final String description;
private final String fullName;
private SalespointPermission(String desc) {
description = desc;
fullName = new StringBuilder().append(getParent().toString())
.append(DELIMITER).append(toString()).toString();
}
@Override
public BortalApplication getParent() {
return BortalApplication.SALESPOINT;
}
@Override
public String getDescription() {
return description;
}
@Override
public String getFullName() {
return fullName;
}
}
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" <display-name>LanBortalWeb</display-name>
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" <session-config>
id="WebApp_ID" version="3.0"> <session-timeout>30</session-timeout>
<display-name>LanBortalWeb</display-name> </session-config>
<session-config> <context-param>
<session-timeout>30</session-timeout> <param-name>javax.faces.PROJECT_STAGE</param-name>
</session-config> <param-value>Production</param-value>
<context-param> </context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name> <context-param>
<!--<param-value>Development</param-value> --> <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>Production</param-value> <param-value>true</param-value>
</context-param> </context-param>
<context-param> <servlet-mapping>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name> <servlet-name>PlaceMap</servlet-name>
<param-value>true</param-value> <url-pattern>/PlaceMap</url-pattern>
</context-param> </servlet-mapping>
<servlet-mapping> <welcome-file-list>
<servlet-name>PlaceMap</servlet-name> <welcome-file>index.html</welcome-file>
<url-pattern>/PlaceMap</url-pattern> <welcome-file>index.jsf</welcome-file>
</servlet-mapping> <welcome-file>index.jsp</welcome-file>
<welcome-file-list> <welcome-file>index.wtf</welcome-file>
<welcome-file>index.html</welcome-file> </welcome-file-list>
<welcome-file>index.jsf</welcome-file> <servlet>
<welcome-file>index.jsp</welcome-file> <servlet-name>Faces Servlet</servlet-name>
<welcome-file>index.wtf</welcome-file> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</welcome-file-list> <load-on-startup>1</load-on-startup>
<servlet> </servlet>
<servlet-name>Faces Servlet</servlet-name> <servlet>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <servlet-name>UploadServlet</servlet-name>
<load-on-startup>1</load-on-startup> <servlet-class>fi.insomnia.bortal.servlet.UploadServlet</servlet-class>
</servlet> </servlet>
<servlet> <servlet-mapping>
<servlet-name>UploadServlet</servlet-name> <servlet-name>UploadServlet</servlet-name>
<servlet-class>fi.insomnia.bortal.servlet.UploadServlet</servlet-class> <url-pattern>/UploadServlet</url-pattern>
</servlet> </servlet-mapping>
<servlet-mapping> <servlet>
<servlet-name>UploadServlet</servlet-name> <servlet-name>UserImageServlet</servlet-name>
<url-pattern>/UploadServlet</url-pattern> <servlet-class>fi.insomnia.bortal.servlet.UserImageServlet</servlet-class>
</servlet-mapping> </servlet>
<servlet> <servlet-mapping>
<servlet-name>UserImageServlet</servlet-name> <servlet-name>UserImageServlet</servlet-name>
<servlet-class>fi.insomnia.bortal.servlet.UserImageServlet</servlet-class> <url-pattern>/Userimage</url-pattern>
</servlet> </servlet-mapping>
<servlet-mapping> <servlet>
<servlet-name>UserImageServlet</servlet-name> <servlet-name>UserCardServlet</servlet-name>
<url-pattern>/Userimage</url-pattern> <servlet-class>fi.insomnia.bortal.servlet.UserCardServlet</servlet-class>
</servlet-mapping> </servlet>
<servlet> <servlet-mapping>
<servlet-name>UserCardServlet</servlet-name> <servlet-name>UserCardServlet</servlet-name>
<servlet-class>fi.insomnia.bortal.servlet.UserCardServlet</servlet-class> <url-pattern>/UserCard</url-pattern>
</servlet> </servlet-mapping>
<servlet-mapping> <servlet>
<servlet-name>UserCardServlet</servlet-name> <servlet-name>CardTemplateServlet</servlet-name>
<url-pattern>/UserCard</url-pattern> <servlet-class>fi.insomnia.bortal.servlet.CardTemplateServlet</servlet-class>
</servlet-mapping> </servlet>
<servlet-mapping>
<servlet> <servlet-name>CardTemplateServlet</servlet-name>
<servlet-name>CardTemplateServlet</servlet-name> <url-pattern>/CardTemplate</url-pattern>
<servlet-class>fi.insomnia.bortal.servlet.CardTemplateServlet</servlet-class> </servlet-mapping>
</servlet> <servlet>
<servlet-mapping> <servlet-name>PlaceMap</servlet-name>
<servlet-name>CardTemplateServlet</servlet-name> <servlet-class>fi.insomnia.bortal.servlet.PlaceMap</servlet-class>
<url-pattern>/CardTemplate</url-pattern> </servlet>
</servlet-mapping> <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
<servlet> <url-pattern>*.wtf</url-pattern>
<servlet-name>PlaceMap</servlet-name> <url-pattern>/faces/*</url-pattern>
<servlet-class>fi.insomnia.bortal.servlet.PlaceMap</servlet-class> </servlet-mapping>
</servlet> <filter>
<servlet-mapping> <display-name>PrimefacesFileupload</display-name>
<servlet-name>Faces Servlet</servlet-name> <filter-name>PrimeFacesFileupload</filter-name>
<url-pattern>*.jsf</url-pattern> <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<url-pattern>*.wtf</url-pattern> </filter>
<url-pattern>/faces/*</url-pattern> <filter-mapping>
</servlet-mapping> <filter-name>PrimeFacesFileupload</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<filter> </filter-mapping>
<display-name>PrimefacesFileupload</display-name> <filter>
<filter-name>PrimeFacesFileupload</filter-name> <display-name>HostnameFilter</display-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> <filter-name>HostnameFilter</filter-name>
</filter> <filter-class>fi.insomnia.bortal.HostnameFilter</filter-class>
<filter-mapping> </filter>
<filter-name>PrimeFacesFileupload</filter-name> <filter-mapping>
<servlet-name>Faces Servlet</servlet-name> <filter-name>HostnameFilter</filter-name>
</filter-mapping> <servlet-name>*</servlet-name>
</filter-mapping>
<filter> <login-config>
<display-name>HostnameFilter</display-name> <auth-method>FORM</auth-method>
<filter-name>HostnameFilter</filter-name> <realm-name>omniarealm</realm-name>
<filter-class>fi.insomnia.bortal.HostnameFilter</filter-class> <form-login-config>
</filter> <form-login-page>/auth/login.jsf</form-login-page>
<filter-mapping> <form-error-page>/auth/loginError.jsf</form-error-page>
<filter-name>HostnameFilter</filter-name> </form-login-config>
<servlet-name>*</servlet-name> </login-config>
</filter-mapping> <security-constraint>
<login-config> <display-name>Forbidden resource</display-name>
<auth-method>FORM</auth-method> <web-resource-collection>
<realm-name>omniarealm</realm-name> <web-resource-name>Forbidden</web-resource-name>
<form-login-config> <url-pattern>*.xhtml</url-pattern>
<form-login-page>/auth/login.jsf</form-login-page> <url-pattern>/layout/*</url-pattern>
<form-error-page>/auth/loginError.jsf</form-error-page> <url-pattern>/resources/tools/*</url-pattern>
</form-login-config> </web-resource-collection>
</login-config> <auth-constraint>
<security-constraint> <description>Thou shall not read the sources or use utils directly</description>
<display-name>Forbidden resource</display-name> </auth-constraint>
<web-resource-collection> <user-data-constraint>
<web-resource-name>Forbidden</web-resource-name> <transport-guarantee>CONFIDENTIAL</transport-guarantee>
<url-pattern>*.xhtml</url-pattern> </user-data-constraint>
<url-pattern>/layout/*</url-pattern> </security-constraint>
<url-pattern>/resources/tools/*</url-pattern> <servlet>
</web-resource-collection> <description></description>
<auth-constraint> <display-name>PrintBill</display-name>
<description>Thou shall not read the sources or use utils directly</description> <servlet-name>PrintBill</servlet-name>
</auth-constraint> <servlet-class>fi.insomnia.bortal.servlet.PrintBill</servlet-class>
<user-data-constraint> </servlet>
<transport-guarantee>CONFIDENTIAL</transport-guarantee> <servlet-mapping>
</user-data-constraint> <servlet-name>PrintBill</servlet-name>
</security-constraint> <url-pattern>/PrintBill</url-pattern>
<servlet> </servlet-mapping>
<description></description> <persistence-unit-ref>
<display-name>PrintBill</display-name> <persistence-unit-ref-name>BortalEMF</persistence-unit-ref-name>
<servlet-name>PrintBill</servlet-name> </persistence-unit-ref>
<servlet-class>fi.insomnia.bortal.servlet.PrintBill</servlet-class> <servlet>
</servlet> <description></description>
<servlet-mapping> <display-name>PlaceGroupPdf</display-name>
<servlet-name>PrintBill</servlet-name> <servlet-name>PlaceGroupPdf</servlet-name>
<url-pattern>/PrintBill</url-pattern> <servlet-class>fi.insomnia.bortal.servlet.PlaceGroupPdf</servlet-class>
</servlet-mapping> </servlet>
<!-- <error-page> <error-code>401</error-code> <location>/permissionDeniedRedirect.jsp</location> <servlet-mapping>
</error-page> <error-page> <error-code>403</error-code> <location>/permissionDeniedRedirect.jsp</location> <servlet-name>PlaceGroupPdf</servlet-name>
</error-page> <error-page> <exception-type>fi.insomnia.bortal.exceptions.PermissionDeniedException</exception-type> <url-pattern>/PlaceGroupPdf</url-pattern>
<location>/permissionDeniedRedirect.jsp</location> </error-page> <error-page> </servlet-mapping>
<exception-type>javax.servlet.ServletException</exception-type> <location>/permissionDeniedRedirect.jsp</location>
</error-page> -->
<persistence-unit-ref>
<persistence-unit-ref-name>BortalEMF</persistence-unit-ref-name>
</persistence-unit-ref>
<servlet>
<description></description>
<display-name>PlaceGroupPdf</display-name>
<servlet-name>PlaceGroupPdf</servlet-name>
<servlet-class>fi.insomnia.bortal.servlet.PlaceGroupPdf</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PlaceGroupPdf</servlet-name>
<url-pattern>/PlaceGroupPdf</url-pattern>
</servlet-mapping>
</web-app> </web-app>
\ No newline at end of file
...@@ -5,13 +5,17 @@ ...@@ -5,13 +5,17 @@
</h:head> </h:head>
<h:body> <h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<f:event type="preRenderView" listener="#{pageOutputView.initView('index')}" />
</f:metadata>
<ui:define name="content"> <ui:define name="content">
<h:outputLabel rendered="#{sessionHandler.isInDevelopmentMode()}"> <h:outputLabel rendered="#{sessionHandler.isInDevelopmentMode()}">
Development-tilassa. Development-tilassa.
Vaihda web.xml-tiedostosta ohjelman tila (javax.faces.PROJECT_STAGE) Productioniksi ennen kuin julkaiset ohjelman tuotantoon. Vaihda web.xml-tiedostosta ohjelman tila (javax.faces.PROJECT_STAGE) Productioniksi ennen kuin julkaiset ohjelman tuotantoon.
</h:outputLabel> </h:outputLabel>
<ui:repeat var="cont1" value="#{pageOutputView.contents}">
<h:outputText value="#{cont1.content}" escape="false" />
</ui:repeat>
</ui:define> </ui:define>
</ui:composition> </ui:composition>
</h:body> </h:body>
......
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:tools="http://java.sun.com/jsf/composite/tools">
<composite:interface>
</composite:interface>
<composite:implementation>
<h:outputText
rendered="#{salespointListView.salespoints.rowCount le 0}"
value="#{i18n['salespoint.noSalespoints']}" />
<h:form rendered="#{salespointListView.salespoints.rowCount gt 0}">
<h:dataTable styleClass="bordertable" id="salespointList"
value="#{salespointListView.salespoints}" var="salespoint">
<h:column>
<f:facet name="header">
<h:outputText value="${i18n['salespoint.name']}" />
</f:facet>
<h:outputText value="#{salespoint.name}" />
</h:column>
<h:column rendered="#{billListView.canEditSalespoint}">
<h:link outcome="/salespoint/edit"
value="#{i18n['salespoint.edit']}">
<f:param name="salespointid" value="#{salespoint.id}" />
</h:link>
</h:column>
</h:dataTable>
</h:form>
</composite:implementation>
</html>
\ No newline at end of file
...@@ -40,8 +40,13 @@ ...@@ -40,8 +40,13 @@
<h:outputText value="#{event.gamePoint}" /> <h:outputText value="#{event.gamePoint}" />
</h:column> </h:column>
<h:column> <h:column>
<h:commandButton rendered="#{empty event.printedCard}" action="#{readerView.selectEvent()}" value="#{i18n['readerevent.associateToUser']}" /> <h:link rendered="#{!empty event.printedCard}" outcome="/shop/shopToUser" value="#{i18n['readerevent.shopToUser']}">
<h:commandButton rendered="#{!empty event.printedCard}" action="#{readerView.selectEvent()}" value="#{i18n['readerevent.shopToUser']}" /> <f:param name="userid" value="#{event.printedCard.user.id}" />
</h:link>
<h:link rendered="#{empty event.printedCard}" outcome="/shop/assocToUser" value="#{i18n['readerevent.associateToUser']}">
<f:param name="eventid" value="#{event.id}" />
</h:link>
</h:column> </h:column>
</h:dataTable> </h:dataTable>
......
...@@ -22,7 +22,6 @@ body,html { ...@@ -22,7 +22,6 @@ body,html {
#logo h1 { #logo h1 {
margin: 5px; margin: 5px;
color: white: color: white:
} }
#logo a { #logo a {
...@@ -196,4 +195,8 @@ a:hover { ...@@ -196,4 +195,8 @@ a:hover {
margin: 0 7px; margin: 0 7px;
color: #fff; color: #fff;
float: left; float: left;
}
td ul {
margin: 0;
} }
\ No newline at end of file
<!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:salespoint="http://java.sun.com/jsf/composite/cditools/salespoint"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<ui:composition
template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{salespointListView.init}" />
</f:metadata>
<ui:define name="content">
<salespoint:list />
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
...@@ -6,19 +6,19 @@ ...@@ -6,19 +6,19 @@
<h:body> <h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata> <f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" /> <f:viewParam name="eventid" value="#{readerView.eventid}" />
<f:event type="preRenderView" listener="#{productShopView.initView}" /> <f:event type="preRenderView" listener="#{readerView.initUserassocView}" />
</f:metadata> </f:metadata>
<ui:define name="content"> <ui:define name="content">
<h:outputText rendered="#{!empty readerView.rfidevent.event}" value="#{i18n['rfidevent.empty']}" /> <h:outputText rendered="#{empty readerView.event}" value="#{i18n['rfidevent.empty']}" />
<h:panelGrid columns="2" rendered="#{empty readerView.rfidevent.event}"> <h:panelGrid columns="2" rendered="#{!empty readerView.event}">
<h:outputLabel value="#{i18n['rfidevent.reader']}:" /> <h:outputLabel value="#{i18n['rfidevent.reader']}:" />
<h:outputText value="#{readerView.rfidevent.reader}" /> <h:outputText value="#{readerView.event.reader.description}" />
<h:outputLabel value="#{i18n['rfidevent.tag']}:" /> <h:outputLabel value="#{i18n['rfidevent.tag']}:" />
<h:outputText value="#{readerView.rfidevent.tag}" /> <h:outputText value="#{readerView.event.value}" />
<h:outputLabel value="#{i18n['rfidevent.insertplacecode']}" /> <h:outputLabel value="#{i18n['rfidevent.insertplacecode']}" />
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata> <f:metadata>
<f:viewParam name="userid" value="#{userView.userid}" /> <f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{productShopView.initView}" /> <f:event type="preRenderView" listener="#{productShopView.initBillView}" />
</f:metadata> </f:metadata>
<ui:define name="title"> <ui:define name="title">
<h1>#{i18n['page.product.createBill.header']}</h1> <h1>#{i18n['page.product.createBill.header']}</h1>
......
<!DOCTYPE html <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "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" <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:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:products="http://java.sun.com/jsf/composite/cditools/products" xmlns:c="http://java.sun.com/jsp/jstl/core">
xmlns:products="http://java.sun.com/jsf/composite/cditools/products" xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<h:body> <h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata> <f:metadata>
<f:event type="preRenderView" listener="#{productShopView.initView}" /> <f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{userView.initView}" />
<f:event type="preRenderView" listener="#{productShopView.initShopView}" />
</f:metadata> </f:metadata>
<ui:define name="content"> <ui:define name="content">
<h:panelGrid columns="2"> <h:panelGrid columns="2">
<h:outputLabel value="#{i18n['shop.user']}" /> <h:outputLabel value="#{i18n['shop.user']}" />
<h:outputText value="#{productShopView.user.wholeName} #{productShopView.user.nick}" /> <h:outputText value="#{productShopView.user.wholeName} #{productShopView.user.nick}" />
...@@ -28,9 +28,7 @@ ...@@ -28,9 +28,7 @@
<h:outputText value="#{i18n['product.shopInstant']}" /> <h:outputText value="#{i18n['product.shopInstant']}" />
<h:selectBooleanCheckbox value="#{productShopView.payInstant}" /> <h:selectBooleanCheckbox value="#{productShopView.payInstant}" />
<products:shop commitaction="#{productShopView.commitShoppingCart()}" items="#{productShopView.shoppingcart}" <products:shop commitaction="#{productShopView.commitShoppingCart()}" items="#{productShopView.shoppingcart}" commitValue="#{i18n['productshop.commit']}" />
commitValue="#{i18n['productshop.commit']}"
/>
</h:form> </h:form>
</ui:define> </ui:define>
......
...@@ -19,43 +19,43 @@ ...@@ -19,43 +19,43 @@
<div> <div>
<h:form> <h:form>
<h:panelGrid columns="3"> <h:panelGrid columns="3">
<h:outputLabel value="Name" for="name"/> <h:outputLabel value="#{i18n['voting.create.name']}:" for="name"/>
<h:inputText value="#{votingCreateView.name}" id="name" /> <h:inputText value="#{votingCreateView.name}" id="name" />
<h:message for="name" /> <h:message for="name" />
<h:outputLabel value="Kuvaus:" for="desc"/> <h:outputLabel value="#{i18n['voting.create.description']}:" for="desc"/>
<h:inputText value="#{votingCreateView.description}" id="desc" /> <h:inputText value="#{votingCreateView.description}" id="desc" />
<h:message for="desc" /> <h:message for="desc" />
<h:outputLabel value="Max osallistujat:" for="maxPar" /> <h:outputLabel value="#{i18n['voting.create.maxParticipants']}:" for="maxPar" />
<h:inputText value="#{votingCreateView.maxParticipants}" id="maxPar" /> <h:inputText value="#{votingCreateView.maxParticipants}" id="maxPar" />
<h:message for="maxPar" /> <h:message for="maxPar" />
<h:outputLabel value="Compo start" for="cStart" /> <h:outputLabel value="#{i18n['voting.create.compoStart']}:" for="cStart" />
<p:calendar validator="#{votingDateValidator.saveCStart}" value="#{votingCreateView.compoStart}" pattern="dd/MM/yyyy HH:mm" id="cStart" /> <p:calendar validator="#{votingDateValidator.saveCStart}" value="#{votingCreateView.compoStart}" pattern="dd/MM/yyyy HH:mm" id="cStart" />
<h:message for="cStart" /> <h:message for="cStart" />
<h:outputLabel value="Compo end" for="cEnd"/> <h:outputLabel value="#{i18n['voting.create.compoEnd']}:" for="cEnd"/>
<p:calendar validator="#{votingDateValidator.validateCompo}" value="#{votingCreateView.compoEnd}" pattern="dd/MM/yyyy HH:mm" id="cEnd" /> <p:calendar validator="#{votingDateValidator.validateCompo}" value="#{votingCreateView.compoEnd}" pattern="dd/MM/yyyy HH:mm" id="cEnd" />
<h:message for="cEnd" /> <h:message for="cEnd" />
<h:outputLabel value="Vote start" for="vStart" /> <h:outputLabel value="#{i18n['voting.create.voteStart']}:" for="vStart" />
<p:calendar validator="#{votingDateValidator.saveVStart}" value="#{votingCreateView.voteStart}" pattern="dd/MM/yyyy HH:mm" id="vStart" /> <p:calendar validator="#{votingDateValidator.saveVStart}" value="#{votingCreateView.voteStart}" pattern="dd/MM/yyyy HH:mm" id="vStart" />
<h:message for="vStart" /> <h:message for="vStart" />
<h:outputLabel value="Vote end" for="vEnd" /> <h:outputLabel value="#{i18n['voting.create.voteEnd']}:" for="vEnd" />
<p:calendar validator="#{votingDateValidator.validateVote}" value="#{votingCreateView.voteEnd}" pattern="dd/MM/yyyy HH:mm" id="vEnd" /> <p:calendar validator="#{votingDateValidator.validateVote}" value="#{votingCreateView.voteEnd}" pattern="dd/MM/yyyy HH:mm" id="vEnd" />
<h:message for="vEnd" /> <h:message for="vEnd" />
<h:outputLabel value="Submit start" for="sStart" /> <h:outputLabel value="#{i18n['voting.create.submitStart']}:" for="sStart" />
<p:calendar validator="#{votingDateValidator.saveSStart}" value="#{votingCreateView.submitStart}" pattern="dd/MM/yyyy HH:mm" id="sStart" /> <p:calendar validator="#{votingDateValidator.saveSStart}" value="#{votingCreateView.submitStart}" pattern="dd/MM/yyyy HH:mm" id="sStart" />
<h:message for="sStart" /> <h:message for="sStart" />
<h:outputLabel value="Submit end" for="sEnd" /> <h:outputLabel value="#{i18n['voting.create.submitEnd']}:" for="sEnd" />
<p:calendar validator="#{votingDateValidator.validateSubmit}" value="#{votingCreateView.submitEnd}" pattern="dd/MM/yyyy HH:mm" id="sEnd" /> <p:calendar validator="#{votingDateValidator.validateSubmit}" value="#{votingCreateView.submitEnd}" pattern="dd/MM/yyyy HH:mm" id="sEnd" />
<h:message for="sEnd" /> <h:message for="sEnd" />
<h:commandButton value="Luo" /> <h:commandButton value="#{i18n['voting.create.createButton']}" />
</h:panelGrid> </h:panelGrid>
</h:form> </h:form>
......
...@@ -2,3 +2,5 @@ user.nickSizeMessage=Nick has to be at least {min} characters long. ...@@ -2,3 +2,5 @@ user.nickSizeMessage=Nick has to be at least {min} characters long.
user.emailregex=Field must contain an email address. user.emailregex=Field must contain an email address.
javax.validation.constraints.NotNull.message=Field can not be empty javax.validation.constraints.NotNull.message=Field can not be empty
voting.create.participantsError=Value must be 1 or over.
voting.create.nameError=Name must be longer than 3 chars.
...@@ -2,3 +2,5 @@ user.nickSizeMessage=Nimimerkin pit olla vhintn {min} merkki pitk. ...@@ -2,3 +2,5 @@ user.nickSizeMessage=Nimimerkin pit olla vhintn {min} merkki pitk.
user.emailregex=Kentss pit olla shkpostiosoite. user.emailregex=Kentss pit olla shkpostiosoite.
javax.validation.constraints.NotNull.message=Kentt ei saa olla tyhj javax.validation.constraints.NotNull.message=Kentt ei saa olla tyhj
actionlog.message.tooshort=Kahva ei kelpaa! (Viestisi on liian lyhyt :) actionlog.message.tooshort=Kahva ei kelpaa! (Viestisi on liian lyhyt :)
voting.create.participantsError=Osallistujia pit olla yksi tai enemmn.
voting.create.nameError=Nimen pit olla yli 3 merkki pitk.
...@@ -525,3 +525,16 @@ userview.userExists = Username already exists! please select another. ...@@ -525,3 +525,16 @@ userview.userExists = Username already exists! please select another.
viewexpired.body = Please login again. viewexpired.body = Please login again.
viewexpired.title = Login expired. Please login again. viewexpired.title = Login expired. Please login again.
voting.create.compoEnd = End time
voting.create.compoStart = Start time
voting.create.createButton = Create
voting.create.dateValidatorEndDate = End time before start time.
voting.create.description = Description
voting.create.header = Create compo
voting.create.maxParticipants = Max participants
voting.create.name = Name
voting.create.submitEnd = Submit close
voting.create.submitStart = Submit start
voting.create.voteEnd = Voting close
voting.create.voteStart = Voting start
accountEvent.commit = Tallenna accountEvent.commit = Tallenna
accountEvent.delivered=Toimitettu accountEvent.delivered = Toimitettu
accountEvent.edit=Muokkaa accountEvent.edit = Muokkaa
accountEvent.eventTime=Aika accountEvent.eventTime = Aika
accountEvent.productname=Tuote accountEvent.productname = Tuote
accountEvent.quantity=Lkm accountEvent.quantity = Lkm
accountEvent.seller = Myyj\u00E4 accountEvent.seller = Myyj\u00E4
accountEvent.total = Yhteens\u00E4 accountEvent.total = Yhteens\u00E4
accountEvent.unitPrice = Yksikk\u00F6hinta accountEvent.unitPrice = Yksikk\u00F6hinta
...@@ -30,61 +30,61 @@ actionlog.user = Tekij\u00E4 ...@@ -30,61 +30,61 @@ actionlog.user = Tekij\u00E4
applicationPermission.description = kuvaus applicationPermission.description = kuvaus
applicationPermission.name = Oikeusryhm\u00E4 applicationPermission.name = Oikeusryhm\u00E4
bill.addr1=Osoite 1 bill.addr1 = Osoite 1
bill.addr2=Osoite 2 bill.addr2 = Osoite 2
bill.addr3=Osoite 3 bill.addr3 = Osoite 3
bill.addr4=Osoite 4 bill.addr4 = Osoite 4
bill.addr5=Osoite 5 bill.addr5 = Osoite 5
bill.billNumber=Laskun numero bill.billNumber = Laskun numero
bill.deliveryTerms=Toimitusehdot bill.deliveryTerms = Toimitusehdot
bill.edit=Muokkaa bill.edit = Muokkaa
bill.isPaid=Maksettu bill.isPaid = Maksettu
bill.markPaid=Maksettu bill.markPaid = Maksettu
bill.markedPaid = Lasku merkitty maksetuksi. bill.markedPaid = Lasku merkitty maksetuksi.
bill.notes=Huomioita bill.notes = Huomioita
bill.noticetime=Huomautusaika bill.noticetime = Huomautusaika
bill.ourReference = Myyj\u00E4n viite bill.ourReference = Myyj\u00E4n viite
bill.paidDate = Maksup\u00E4iv\u00E4 bill.paidDate = Maksup\u00E4iv\u00E4
bill.payer=Maksaja bill.payer = Maksaja
bill.paymentTime=Maksuehdot bill.paymentTime = Maksuehdot
bill.printBill=Tulosta lasku bill.printBill = Tulosta lasku
bill.referenceNumberBase=Viitenumeropohja bill.referenceNumberBase = Viitenumeropohja
bill.referencenumber=Viitenumero bill.referencenumber = Viitenumero
bill.sentDate = P\u00E4iv\u00E4ys bill.sentDate = P\u00E4iv\u00E4ys
bill.theirReference=Asiakkaan viite bill.theirReference = Asiakkaan viite
bill.totalPrice=Laskun summa bill.totalPrice = Laskun summa
billine.name=Tuote billine.name = Tuote
billine.quantity = Lukum\u00E4\u00E4r\u00E4 billine.quantity = Lukum\u00E4\u00E4r\u00E4
billine.referencedProduct=Tuoteviittaus billine.referencedProduct = Tuoteviittaus
billine.save=Tallenna billine.save = Tallenna
billine.unitName = Yksikk\u00F6 billine.unitName = Yksikk\u00F6
billine.unitPrice = Yksikk\u00F6hinta billine.unitPrice = Yksikk\u00F6hinta
billine.vat=ALV billine.vat = ALV
bills.noBills=Ei laskuja bills.noBills = Ei laskuja
cardTemplate.edit = Muokkaa cardTemplate.edit = Muokkaa
cardTemplate.name=Korttipohja cardTemplate.name = Korttipohja
cardTemplate.power=Teho cardTemplate.power = Teho
cardTemplate.roles=Yhdistetyt roolit cardTemplate.roles = Yhdistetyt roolit
discount.active=Aktiivinen discount.active = Aktiivinen
discount.amountMax = Enimm\u00E4ism\u00E4\u00E4r\u00E4 discount.amountMax = Enimm\u00E4ism\u00E4\u00E4r\u00E4
discount.amountMin = V\u00E4himm\u00E4ism\u00E4\u00E4r\u00E4 discount.amountMin = V\u00E4himm\u00E4ism\u00E4\u00E4r\u00E4
discount.code=Alennuskoodi discount.code = Alennuskoodi
discount.create=Luo uusi discount.create = Luo uusi
discount.details=Tiedot discount.details = Tiedot
discount.edit=Muokkaa discount.edit = Muokkaa
discount.maxNum = Alennusten enimm\u00E4islkm discount.maxNum = Alennusten enimm\u00E4islkm
discount.perUser = Alennuksia per k\u00E4ytt\u00E4j\u00E4 discount.perUser = Alennuksia per k\u00E4ytt\u00E4j\u00E4
discount.percentage=Alennusprosentti discount.percentage = Alennusprosentti
discount.products = Tuotteet discount.products = Tuotteet
discount.role=Roolialennus discount.role = Roolialennus
discount.save=Tallenna discount.save = Tallenna
discount.shortdesc=Kuvaus discount.shortdesc = Kuvaus
editplace.header=Muokkaa paikkaa editplace.header = Muokkaa paikkaa
editplacegroup.header = Paikkaryhm\u00E4n tiedot editplacegroup.header = Paikkaryhm\u00E4n tiedot
...@@ -107,22 +107,22 @@ eventorg.billAddress2 = Laskutusosoite 2 ...@@ -107,22 +107,22 @@ eventorg.billAddress2 = Laskutusosoite 2
eventorg.billAddress3 = Laskutusosoite 3 eventorg.billAddress3 = Laskutusosoite 3
eventorg.billAddress4 = Laskutusosoite 4 eventorg.billAddress4 = Laskutusosoite 4
eventorg.bundleCountry = Kieli-bundle eventorg.bundleCountry = Kieli-bundle
eventorg.createEvent=Luo tapahtuma eventorg.createEvent = Luo tapahtuma
eventorg.createevent = Luo uusi tapahtuma eventorg.createevent = Luo uusi tapahtuma
eventorg.events=Organisaation tapahtumat eventorg.events = Organisaation tapahtumat
eventorg.organisation = Organisaation nimi eventorg.organisation = Organisaation nimi
eventorg.save = Tallenna eventorg.save = Tallenna
eventorgView.eventname=Tapahtuman nimi eventorgView.eventname = Tapahtuman nimi
eventorganiser.name = Tapahtumaj\u00E4rjest\u00E4j\u00E4 eventorganiser.name = Tapahtumaj\u00E4rjest\u00E4j\u00E4
game.gamepoints=Insomnia Game pisteet: game.gamepoints = Insomnia Game pisteet:
global.cancel=Peruuta global.cancel = Peruuta
global.notAuthorizedExecute = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia suorittaa t\u00E4t\u00E4 toimenpidett\u00E4! global.notAuthorizedExecute = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia suorittaa t\u00E4t\u00E4 toimenpidett\u00E4!
global.notauthorized = Sinulla ei ole riitt\u00E4vi\u00E4 oikeuksia t\u00E4lle sivulle. global.notauthorized = Sinulla ei ole riitt\u00E4vi\u00E4 oikeuksia t\u00E4lle sivulle.
global.save=Tallenna global.save = Tallenna
httpsession.id = ID httpsession.id = ID
httpsession.invalidate = Mit\uFFFDt\uFFFDi httpsession.invalidate = Mit\uFFFDt\uFFFDi
...@@ -133,8 +133,8 @@ httpsession.maxInactiveInterval = Aikakatkaisu (s) ...@@ -133,8 +133,8 @@ httpsession.maxInactiveInterval = Aikakatkaisu (s)
httpsession.sessionHasExisted = Ollut elossa (s) httpsession.sessionHasExisted = Ollut elossa (s)
httpsession.user = Tunnus httpsession.user = Tunnus
imagefile.description=Kuvaus imagefile.description = Kuvaus
imagefile.file=Kuvatiedosto imagefile.file = Kuvatiedosto
index.title = Etusivu index.title = Etusivu
...@@ -142,47 +142,47 @@ invite.notFound = Kutsu virheellinen tai jo k\u00E4ytetty. ...@@ -142,47 +142,47 @@ invite.notFound = Kutsu virheellinen tai jo k\u00E4ytetty.
invite.successfull = Kutsu l\u00E4hetetty invite.successfull = Kutsu l\u00E4hetetty
invite.userCreateSuccessfull = K\u00E4ytt\u00E4j\u00E4tunnus luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n j\u00E4rjeselm\u00E4\u00E4n. invite.userCreateSuccessfull = K\u00E4ytt\u00E4j\u00E4tunnus luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n j\u00E4rjeselm\u00E4\u00E4n.
javax.validation.constraints.AssertFalse.message=must be false javax.validation.constraints.AssertFalse.message = must be false
javax.validation.constraints.AssertTrue.message=must be true javax.validation.constraints.AssertTrue.message = must be true
javax.validation.constraints.DecimalMax.message=must be less than or equal to {value} javax.validation.constraints.DecimalMax.message = must be less than or equal to {value}
javax.validation.constraints.DecimalMin.message=must be greater than or equal to {value} javax.validation.constraints.DecimalMin.message = must be greater than or equal to {value}
javax.validation.constraints.Digits.message=numeric value out of bounds (<{integer} digits>.<{fraction} digits> expected) javax.validation.constraints.Digits.message = numeric value out of bounds (<{integer} digits>.<{fraction} digits> expected)
javax.validation.constraints.Future.message=must be in the future javax.validation.constraints.Future.message = must be in the future
javax.validation.constraints.Max.message=must be less than or equal to {value} javax.validation.constraints.Max.message = must be less than or equal to {value}
javax.validation.constraints.Min.message=must be greater than or equal to {value} javax.validation.constraints.Min.message = must be greater than or equal to {value}
javax.validation.constraints.NotNull.message=may not be null javax.validation.constraints.NotNull.message = may not be null
javax.validation.constraints.Null.message=must be null javax.validation.constraints.Null.message = must be null
javax.validation.constraints.Past.message=must be in the past javax.validation.constraints.Past.message = must be in the past
javax.validation.constraints.Pattern.message=must match "{regexp}" javax.validation.constraints.Pattern.message = must match "{regexp}"
javax.validation.constraints.Size.message=size must be between {min} and {max} javax.validation.constraints.Size.message = size must be between {min} and {max}
login.login = Kirjaudu sis\u00E4\u00E4n login.login = Kirjaudu sis\u00E4\u00E4n
login.logout=Kirjaudu ulos login.logout = Kirjaudu ulos
login.logoutmessage = Olet kirjautunut ulos j\u00E4rjestelm\u00E4st\u00E4. login.logoutmessage = Olet kirjautunut ulos j\u00E4rjestelm\u00E4st\u00E4.
login.password=Salasana login.password = Salasana
login.submit = Kirjaudu sis\u00E4\u00E4n login.submit = Kirjaudu sis\u00E4\u00E4n
login.username = K\u00E4ytt\u00E4j\u00E4tunnus login.username = K\u00E4ytt\u00E4j\u00E4tunnus
loginerror.header = Kirjautuminen ep\u00E4onnistui loginerror.header = Kirjautuminen ep\u00E4onnistui
loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut oikein. loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut oikein.
loginerror.resetpassword=Salasana unohtunut? loginerror.resetpassword = Salasana unohtunut?
map.edit = Muokkaa map.edit = Muokkaa
map.name = Nimi map.name = Nimi
mapManage.lockedPlaces=Lukittu kartasta {0} paikkaa. mapManage.lockedPlaces = Lukittu kartasta {0} paikkaa.
mapManage.releasedPlaces=Vapautettu kartasta {0} paikkaa mapManage.releasedPlaces = Vapautettu kartasta {0} paikkaa
mapView.buyPlaces=Lukitse valitut paikat mapView.buyPlaces = Lukitse valitut paikat
mapView.errorWhenReleasingPlace=Paikkaa vapauttassa tapahtui virhe. mapView.errorWhenReleasingPlace = Paikkaa vapauttassa tapahtui virhe.
mapView.errorWhenReservingPlace=Paikkaa varatessa tapahtui virhe. mapView.errorWhenReservingPlace = Paikkaa varatessa tapahtui virhe.
mapView.errorWhileBuyingPlaces = Virhe paikkojen ostossa. Ole hyv\u00E4 ja yrit\u00E4 uudelleen. Jos virhe toistuu ota yhteytt\u00E4 j\u00E4rjest\u00E4jiin. mapView.errorWhileBuyingPlaces = Virhe paikkojen ostossa. Ole hyv\u00E4 ja yrit\u00E4 uudelleen. Jos virhe toistuu ota yhteytt\u00E4 j\u00E4rjest\u00E4jiin.
mapView.notEnoughCreditsToReserve = Sinulla ei ole riitt\u00E4v\u00E4sti suoritettuja konepaikkamaksuja t\u00E4m\u00E4n paikan varaamiseen. mapView.notEnoughCreditsToReserve = Sinulla ei ole riitt\u00E4v\u00E4sti suoritettuja konepaikkamaksuja t\u00E4m\u00E4n paikan varaamiseen.
menu.index=Etusivu menu.index = Etusivu
menu.place.placemap=Paikkakartta menu.place.placemap = Paikkakartta
menu.poll.index = Kyselyt menu.poll.index = Kyselyt
menu.shop.createBill=Kauppa menu.shop.createBill = Kauppa
menu.user.edit = Omat tiedot menu.user.edit = Omat tiedot
news.abstract = Lyhennelm\u00E4 news.abstract = Lyhennelm\u00E4
...@@ -206,23 +206,23 @@ org.hibernate.validator.constraints.Range.message = must be between {min} and ...@@ -206,23 +206,23 @@ org.hibernate.validator.constraints.Range.message = must be between {min} and
page.account.list.header = Tilitapahtumat page.account.list.header = Tilitapahtumat
page.auth.loginerror.header = kirjautuminen ep\u00E4onnistui page.auth.loginerror.header = kirjautuminen ep\u00E4onnistui
page.auth.logout.header=Uloskirjautuminen page.auth.logout.header = Uloskirjautuminen
page.auth.logoutsuccess.header = Logout page.auth.logoutsuccess.header = Logout
page.auth.resetPassword.header = Nollaa salasana page.auth.resetPassword.header = Nollaa salasana
page.bill.billSummary.header=Laskujen yhteenveto page.bill.billSummary.header = Laskujen yhteenveto
page.bill.edit.header = Laskun tiedot page.bill.edit.header = Laskun tiedot
page.bill.list.header = Laskut page.bill.list.header = Laskut
page.place.insertToken.header = Sy\u00F6t\u00E4 paikkakoodi page.place.insertToken.header = Sy\u00F6t\u00E4 paikkakoodi
page.place.mygroups.header = Paikkaryhm\u00E4t page.place.mygroups.header = Paikkaryhm\u00E4t
page.place.placemap.header = Paikkakartta page.place.placemap.header = Paikkakartta
page.product.createBill.header=Osta tuotteita page.product.createBill.header = Osta tuotteita
page.user.create.header = Luo uusi k\u00E4ytt\u00E4j\u00E4 page.user.create.header = Luo uusi k\u00E4ytt\u00E4j\u00E4
pagination.firstpage = Ensimm\u00E4inen pagination.firstpage = Ensimm\u00E4inen
pagination.lastpage = Viimeinen pagination.lastpage = Viimeinen
pagination.nextpage = Seuraava pagination.nextpage = Seuraava
pagination.pages=Sivuja pagination.pages = Sivuja
pagination.previouspage=Edellinen pagination.previouspage = Edellinen
pagination.results = Tuloksia pagination.results = Tuloksia
passwordChanged.body = Voit nyt kirjautua k\u00E4ytt\u00E4j\u00E4tunnuksella ja uudella salasanalla sis\u00E4\u00E4n j\u00E4rjestelm\u00E4\u00E4n. passwordChanged.body = Voit nyt kirjautua k\u00E4ytt\u00E4j\u00E4tunnuksella ja uudella salasanalla sis\u00E4\u00E4n j\u00E4rjestelm\u00E4\u00E4n.
...@@ -239,108 +239,108 @@ permissiondenied.alreadyLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksi ...@@ -239,108 +239,108 @@ permissiondenied.alreadyLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksi
permissiondenied.header = P\u00E4\u00E4sy kielletty permissiondenied.header = P\u00E4\u00E4sy kielletty
permissiondenied.notLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia t\u00E4lle sivulle. permissiondenied.notLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksia t\u00E4lle sivulle.
place.code=Paikkakoodi place.code = Paikkakoodi
place.commit=Tallenna place.commit = Tallenna
place.description=Kuvaus place.description = Kuvaus
place.details=Tiedot place.details = Tiedot
place.edit=Muokkaa place.edit = Muokkaa
place.groupremove = Poista paikka paikkaryhm\u00E4st\u00E4 place.groupremove = Poista paikka paikkaryhm\u00E4st\u00E4
place.height=Korkeus place.height = Korkeus
place.mapX=X place.mapX = X
place.mapY=Y place.mapY = Y
place.membership = Yhdistetty k\u00E4ytt\u00E4j\u00E4 place.membership = Yhdistetty k\u00E4ytt\u00E4j\u00E4
place.name=Nimi place.name = Nimi
place.noReserver = Ei liitetty k\u00E4ytt\u00E4j\u00E4\u00E4n place.noReserver = Ei liitetty k\u00E4ytt\u00E4j\u00E4\u00E4n
place.product=Tuote place.product = Tuote
place.releasetime=Vapautusaika place.releasetime = Vapautusaika
place.width=Leveys place.width = Leveys
placeSelect.legend.blue=Oma valittu paikka placeSelect.legend.blue = Oma valittu paikka
placeSelect.legend.green=Oma ostettu paikka placeSelect.legend.green = Oma ostettu paikka
placeSelect.legend.grey=Vapautetaan tarvittaessa placeSelect.legend.grey = Vapautetaan tarvittaessa
placeSelect.legend.red=Varattu paikka placeSelect.legend.red = Varattu paikka
placeSelect.legend.white=Vapaa paikka placeSelect.legend.white = Vapaa paikka
placeSelect.placeName=Paikka placeSelect.placeName = Paikka
placeSelect.placePrice=Paikan hinta placeSelect.placePrice = Paikan hinta
placeSelect.placeProductName=Paikan tyyppi placeSelect.placeProductName = Paikan tyyppi
placeSelect.placesleft = Paikkoja j\u00E4ljell\u00E4 placeSelect.placesleft = Paikkoja j\u00E4ljell\u00E4
placeSelect.reservationPrice=Tilauksen hinta placeSelect.reservationPrice = Tilauksen hinta
placeSelect.reservedPlaces=Valitut paikat placeSelect.reservedPlaces = Valitut paikat
placeSelect.totalPlaces = Paikkoja yhteens\u00E4 placeSelect.totalPlaces = Paikkoja yhteens\u00E4
placegroup.created=Luotu placegroup.created = Luotu
placegroup.creator=Varaaja placegroup.creator = Varaaja
placegroup.details=Tiedot placegroup.details = Tiedot
placegroup.edit = N\u00E4yt\u00E4 placegroup.edit = N\u00E4yt\u00E4
placegroup.edited=Muokattu placegroup.edited = Muokattu
placegroup.name=Nimi placegroup.name = Nimi
placegroup.places=Paikat placegroup.places = Paikat
placegroup.printPdf=Tulosta paikkakoodit placegroup.printPdf = Tulosta paikkakoodit
placegroupview.groupCreator=Varaaja placegroupview.groupCreator = Varaaja
placegroupview.header=Omat paikat placegroupview.header = Omat paikat
placegroupview.noMemberships=Ei omia paikkoja placegroupview.noMemberships = Ei omia paikkoja
placegroupview.placeReleaseFailed = Paikan vapauttaminen ep\u00E4onnistui! placegroupview.placeReleaseFailed = Paikan vapauttaminen ep\u00E4onnistui!
placegroupview.placeReleased=Paikka {0} vapautettu placegroupview.placeReleased = Paikka {0} vapautettu
placegroupview.releasePlace=Vapauta placegroupview.releasePlace = Vapauta
placegroupview.reservationName=Paikka placegroupview.reservationName = Paikka
placegroupview.token = Paikkakoodi / k\u00E4ytt\u00E4j\u00E4 placegroupview.token = Paikkakoodi / k\u00E4ytt\u00E4j\u00E4
placetoken.commit = Liit\u00E4 placetoken.commit = Liit\u00E4
placetoken.pageHeader = Lis\u00E4\u00E4 konepaikkakoodi placetoken.pageHeader = Lis\u00E4\u00E4 konepaikkakoodi
placetoken.placelist=Omat paikat placetoken.placelist = Omat paikat
placetoken.token = Paikkakoodi placetoken.token = Paikkakoodi
placetoken.tokenNotFound = Paikkakoodia ei l\u00F6ytynyt! Tarkista koodi. placetoken.tokenNotFound = Paikkakoodia ei l\u00F6ytynyt! Tarkista koodi.
placetoken.topText = Voit yhdist\u00E4\u00E4 paikan omaan k\u00E4ytt\u00E4j\u00E4tunnukseesi sy\u00F6tt\u00E4m\u00E4ll\u00E4 paikkakoodin allaolevaan kentt\u00E4\u00E4n. placetoken.topText = Voit yhdist\u00E4\u00E4 paikan omaan k\u00E4ytt\u00E4j\u00E4tunnukseesi sy\u00F6tt\u00E4m\u00E4ll\u00E4 paikkakoodin allaolevaan kentt\u00E4\u00E4n.
poll.answer=Vastaa kyselyyn poll.answer = Vastaa kyselyyn
poll.begin = Avaa kysely poll.begin = Avaa kysely
poll.description = Kuvaus poll.description = Kuvaus
poll.end = Sulje kysely poll.end = Sulje kysely
poll.name = Kyselyn nimi poll.name = Kyselyn nimi
poll.save = L\u00E4het\u00E4 vastauksesi poll.save = L\u00E4het\u00E4 vastauksesi
product.barcode=Viivakoodi product.barcode = Viivakoodi
product.billed = Laskutettu product.billed = Laskutettu
product.boughtTotal=Tuotteita laskutettu product.boughtTotal = Tuotteita laskutettu
product.cart.count=Ostoskoriin product.cart.count = Ostoskoriin
product.cashed = Ostettu k\u00E4teisell\u00E4 product.cashed = Ostettu k\u00E4teisell\u00E4
product.color = V\u00E4ri k\u00E4ytt\u00F6liittym\u00E4ss\u00E4 product.color = V\u00E4ri k\u00E4ytt\u00F6liittym\u00E4ss\u00E4
product.create=Luo tuote product.create = Luo tuote
product.createDiscount = Lis\u00E4\u00E4 m\u00E4\u00E4r\u00E4alennus product.createDiscount = Lis\u00E4\u00E4 m\u00E4\u00E4r\u00E4alennus
product.edit=Muokkaa product.edit = Muokkaa
product.name=Tuotteen nimi product.name = Tuotteen nimi
product.paid=Maksettu product.paid = Maksettu
product.prepaid=Prepaid product.prepaid = Prepaid
product.prepaidInstant=Luodaan kun prepaid maksetaan product.prepaidInstant = Luodaan kun prepaid maksetaan
product.price=Tuotteen hinta product.price = Tuotteen hinta
product.save=Tallenna product.save = Tallenna
product.shopInstant = Luo k\u00E4teismaksu tuotteille product.shopInstant = Luo k\u00E4teismaksu tuotteille
product.sort = J\u00E4rjestys luku product.sort = J\u00E4rjestys luku
product.totalPrice = Summa product.totalPrice = Summa
product.unitName = Tuoteyksikk\u00F6 product.unitName = Tuoteyksikk\u00F6
product.vat=ALV product.vat = ALV
products.save=Tallenna products.save = Tallenna
productshop.billCreated = Lasku luotu productshop.billCreated = Lasku luotu
productshop.commit=Osta productshop.commit = Osta
productshop.noItemsInCart=Ostoskorissa ei ole tuotteita productshop.noItemsInCart = Ostoskorissa ei ole tuotteita
productshop.total = Yhteens\u00E4 productshop.total = Yhteens\u00E4
reader.assocToCard = Yhdist\u00E4 korttiin reader.assocToCard = Yhdist\u00E4 korttiin
reader.name=Lukijan nimi reader.name = Lukijan nimi
reader.tag=Tag reader.tag = Tag
reader.user = K\u00E4ytt\u00E4j\u00E4 reader.user = K\u00E4ytt\u00E4j\u00E4
readerevent.associateToUser = Yhdist\u00E4 k\u00E4ytt\u00E4j\u00E4\u00E4n readerevent.associateToUser = Yhdist\u00E4 k\u00E4ytt\u00E4j\u00E4\u00E4n
readerevent.seenSince = N\u00E4hty viimeksi readerevent.seenSince = N\u00E4hty viimeksi
readerevent.shopToUser = Osta k\u00E4ytt\u00E4j\u00E4lle readerevent.shopToUser = Osta k\u00E4ytt\u00E4j\u00E4lle
readerview.cards=Kortit ( tulostuslkm ) readerview.cards = Kortit ( tulostuslkm )
resetMail.body = Voit vaihtaa unohtuneen salasanan sy\u00F6tt\u00E4m\u00E4ll\u00E4 k\u00E4ytt\u00E4j\u00E4tunnuksesi 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.body = Voit vaihtaa unohtuneen salasanan sy\u00F6tt\u00E4m\u00E4ll\u00E4 k\u00E4ytt\u00E4j\u00E4tunnuksesi 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.header=Unohtuneen salasanan vaihto resetMail.header = Unohtuneen salasanan vaihto
resetMail.send = L\u00E4het\u00E4 s\u00E4hk\u00F6posti resetMail.send = L\u00E4het\u00E4 s\u00E4hk\u00F6posti
resetMail.username = K\u00E4ytt\u00E4j\u00E4tunnus resetMail.username = K\u00E4ytt\u00E4j\u00E4tunnus
...@@ -348,45 +348,45 @@ resetmailSent.body = Antamasi k\u00E4ytt\u00E4j\u00E4tunnuksen s\u00E4hk\u00F6 ...@@ -348,45 +348,45 @@ resetmailSent.body = Antamasi k\u00E4ytt\u00E4j\u00E4tunnuksen s\u00E4hk\u00F6
resetmailSent.header = S\u00E4hk\u00F6posti l\u00E4hetetty resetmailSent.header = S\u00E4hk\u00F6posti l\u00E4hetetty
role.cardtemplate = Korttipohja role.cardtemplate = Korttipohja
role.create=Luo rooli role.create = Luo rooli
role.description=Kuvaus role.description = Kuvaus
role.edit=Muokkaa role.edit = Muokkaa
role.edit.save = Tallenna role.edit.save = Tallenna
role.name=Nimi role.name = Nimi
role.parents=Periytyy role.parents = Periytyy
role.savePermissions=Tallenna oikeudet role.savePermissions = Tallenna oikeudet
sendPicture.header = L\u00E4het\u00E4 kuva sendPicture.header = L\u00E4het\u00E4 kuva
shop.accountBalance=Tilin saldo shop.accountBalance = Tilin saldo
shop.user = Myyd\u00E4\u00E4n shop.user = Myyd\u00E4\u00E4n
sidebar.bill.list=Omat laskut sidebar.bill.list = Omat laskut
sidebar.bill.listAll=Kaikki laskut sidebar.bill.listAll = Kaikki laskut
sidebar.bill.summary=Laskujen yhteenveto sidebar.bill.summary = Laskujen yhteenveto
sidebar.bills=Laskut sidebar.bills = Laskut
sidebar.cardTemplate.create=Uusi korttipohja sidebar.cardTemplate.create = Uusi korttipohja
sidebar.cardTemplate.list = N\u00E4yt\u00E4 korttipohjat sidebar.cardTemplate.list = N\u00E4yt\u00E4 korttipohjat
sidebar.createuser = Rekister\u00F6idy uudeksi k\u00E4ytt\u00E4j\u00E4ksi sidebar.createuser = Rekister\u00F6idy uudeksi k\u00E4ytt\u00E4j\u00E4ksi
sidebar.eventorg.list=Omat organisaatiot sidebar.eventorg.list = Omat organisaatiot
sidebar.map.list=Kartat sidebar.map.list = Kartat
sidebar.map.placemap=Paikkakartta sidebar.map.placemap = Paikkakartta
sidebar.maps=Kartat sidebar.maps = Kartat
sidebar.other=Muuta sidebar.other = Muuta
sidebar.product.create=Uusi tuote sidebar.product.create = Uusi tuote
sidebar.product.createBill=Luo lasku sidebar.product.createBill = Luo lasku
sidebar.product.list=Tuotteet sidebar.product.list = Tuotteet
sidebar.products=Tuotteet sidebar.products = Tuotteet
sidebar.role.create=Uusi rooli sidebar.role.create = Uusi rooli
sidebar.role.list=Roolit sidebar.role.list = Roolit
sidebar.roles=Roolit sidebar.roles = Roolit
sidebar.shop.readerEvents=Lukijan tapahtumat sidebar.shop.readerEvents = Lukijan tapahtumat
sidebar.shop.readerlist = N\u00E4yt\u00E4 lukijat sidebar.shop.readerlist = N\u00E4yt\u00E4 lukijat
sidebar.user.create = Uusi k\u00E4ytt\u00E4j\u00E4 sidebar.user.create = Uusi k\u00E4ytt\u00E4j\u00E4
sidebar.user.list = K\u00E4ytt\u00E4j\u00E4t sidebar.user.list = K\u00E4ytt\u00E4j\u00E4t
sidebar.users = K\u00E4ytt\u00E4j\u00E4t sidebar.users = K\u00E4ytt\u00E4j\u00E4t
sidebar.utils.flushCache=Flush Cache sidebar.utils.flushCache = Flush Cache
sidebar.utils.testdata=Testdata sidebar.utils.testdata = Testdata
sitepage.edit = Muokkaa sitepage.edit = Muokkaa
sitepage.name = Sivun nimi sitepage.name = Sivun nimi
...@@ -423,7 +423,7 @@ submenu.user.listCardTemplates = Korttiryhm\u00E4t ...@@ -423,7 +423,7 @@ submenu.user.listCardTemplates = Korttiryhm\u00E4t
submenu.user.manageuserlinks = Hallitse k\u00E4ytt\u00E4ji\u00E4 submenu.user.manageuserlinks = Hallitse k\u00E4ytt\u00E4ji\u00E4
submenu.user.rolelinks = Hallitse rooleja submenu.user.rolelinks = Hallitse rooleja
submenu.user.sendPicture = L\u00E4het\u00E4 kuva submenu.user.sendPicture = L\u00E4het\u00E4 kuva
submenu.user.userlinks=Muokkaa tietoja submenu.user.userlinks = Muokkaa tietoja
submenu.useradmin.create = Luo uusi k\u00E4ytt\u00E4j\u00E4 submenu.useradmin.create = Luo uusi k\u00E4ytt\u00E4j\u00E4
submenu.useradmin.createCardTemplate = Luo uusi korttipohja submenu.useradmin.createCardTemplate = Luo uusi korttipohja
submenu.useradmin.list = Listaa k\u00E4ytt\u00E4j\u00E4t submenu.useradmin.list = Listaa k\u00E4ytt\u00E4j\u00E4t
...@@ -436,74 +436,74 @@ template.loggedInAs = Kirjautunut tunnuksella: ...@@ -436,74 +436,74 @@ template.loggedInAs = Kirjautunut tunnuksella:
topnavi.billing = Laskutus topnavi.billing = Laskutus
topnavi.contents = Sivuston sis\u00E4lt\u00F6 topnavi.contents = Sivuston sis\u00E4lt\u00F6
topnavi.frontpage=Etusivu topnavi.frontpage = Etusivu
topnavi.maps = Kartat topnavi.maps = Kartat
topnavi.placemap=Paikkakartta topnavi.placemap = Paikkakartta
topnavi.poll=Kyselyt topnavi.poll = Kyselyt
topnavi.products = Tuotteet topnavi.products = Tuotteet
topnavi.shop = Kauppa topnavi.shop = Kauppa
topnavi.user = Omat tiedot topnavi.user = Omat tiedot
topnavi.usermgmt = K\u00E4ytt\u00E4j\u00E4t topnavi.usermgmt = K\u00E4ytt\u00E4j\u00E4t
user.accountBalance=Tilin saldo user.accountBalance = Tilin saldo
user.accountEventHeader=Tilitapahtumat user.accountEventHeader = Tilitapahtumat
user.accountevents = Tilitapahtumat user.accountevents = Tilitapahtumat
user.address=Osoite user.address = Osoite
user.bank=Pankki user.bank = Pankki
user.bankaccount=Pankkitili user.bankaccount = Pankkitili
user.changePassword = Vaihda salasana user.changePassword = Vaihda salasana
user.changepassword.forUser = K\u00E4ytt\u00E4j\u00E4lle user.changepassword.forUser = K\u00E4ytt\u00E4j\u00E4lle
user.changepassword.title = Vaihda salasana user.changepassword.title = Vaihda salasana
user.create = Luo k\u00E4ytt\u00E4j\u00E4 user.create = Luo k\u00E4ytt\u00E4j\u00E4
user.createdmessage = K\u00E4ytt\u00E4j\u00E4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n. user.createdmessage = K\u00E4ytt\u00E4j\u00E4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n.
user.defaultImage=Oletukuva user.defaultImage = Oletukuva
user.edit=Muokkaa user.edit = Muokkaa
user.edit.title = Omat tiedot user.edit.title = Omat tiedot
user.email = S\u00E4hk\u00F6posti user.email = S\u00E4hk\u00F6posti
user.firstNames=Etunimi user.firstNames = Etunimi
user.hasImage=Kuva user.hasImage = Kuva
user.imageUploaded = Kuva l\u00E4hetetty. user.imageUploaded = Kuva l\u00E4hetetty.
user.imagelist=Tallennetut kuvat user.imagelist = Tallennetut kuvat
user.imagesubmit = L\u00E4het\u00E4 kuva user.imagesubmit = L\u00E4het\u00E4 kuva
user.invite = Kutsu user.invite = Kutsu
user.invite.header = Luo k\u00E4ytt\u00E4j\u00E4 kutsusta user.invite.header = Luo k\u00E4ytt\u00E4j\u00E4 kutsusta
user.invitemail = S\u00E4hk\u00F6postiosoite user.invitemail = S\u00E4hk\u00F6postiosoite
user.lastName=Sukunimi user.lastName = Sukunimi
user.login = K\u00E4ytt\u00E4j\u00E4tunnus user.login = K\u00E4ytt\u00E4j\u00E4tunnus
user.nick=Nick user.nick = Nick
user.noAccountevents=Ei tilitapahtumia user.noAccountevents = Ei tilitapahtumia
user.noCurrentImage=Ei kuvaa user.noCurrentImage = Ei kuvaa
user.noImage=EI kuvaa user.noImage = EI kuvaa
user.page.invite = Kutsu yst\u00E4vi\u00E4 user.page.invite = Kutsu yst\u00E4vi\u00E4
user.password=Salasana user.password = Salasana
user.passwordcheck=Salasana ( uudelleen ) user.passwordcheck = Salasana ( uudelleen )
user.passwordlengthMessage=Salasana liian lyhyt user.passwordlengthMessage = Salasana liian lyhyt
user.phone=Puhelin user.phone = Puhelin
user.placegroups = Omat paikkaryhm\u00E4t user.placegroups = Omat paikkaryhm\u00E4t
user.realname=Nimi user.realname = Nimi
user.roles=Roolit user.roles = Roolit
user.rolesave=Tallenna roolit user.rolesave = Tallenna roolit
user.save=Tallenna user.save = Tallenna
user.sendPicture = Kuvan l\u00E4hetys user.sendPicture = Kuvan l\u00E4hetys
user.sex = Sukupuoli user.sex = Sukupuoli
user.sex.FEMALE=Nainen user.sex.FEMALE = Nainen
user.sex.MALE=Mies user.sex.MALE = Mies
user.sex.UNDEFINED = M\u00E4\u00E4rittelem\u00E4tt\u00E4 user.sex.UNDEFINED = M\u00E4\u00E4rittelem\u00E4tt\u00E4
user.shop=Osta user.shop = Osta
user.successfullySaved=Tiedot tallennettu onnistuneesti user.successfullySaved = Tiedot tallennettu onnistuneesti
user.superadmin=Superadmin user.superadmin = Superadmin
user.thisIsCurrentImage=Nykyinen kuva user.thisIsCurrentImage = Nykyinen kuva
user.town=Kaupunki user.town = Kaupunki
user.uploadimage = L\u00E4het\u00E4 kuva user.uploadimage = L\u00E4het\u00E4 kuva
user.username = K\u00E4ytt\u00E4j\u00E4tunnus user.username = K\u00E4ytt\u00E4j\u00E4tunnus
user.validate.notUniqueUsername = K\u00E4ytt\u00E4j\u00E4tunnus on jo olemassa. Ole hyv\u00E4 ja valitse toinen tunnus user.validate.notUniqueUsername = K\u00E4ytt\u00E4j\u00E4tunnus on jo olemassa. Ole hyv\u00E4 ja valitse toinen tunnus
user.wholeName=Nimi user.wholeName = Nimi
user.zipCode=Postinumero user.zipCode = Postinumero
userimage.webcam=Ota kuva webkameralla userimage.webcam = Ota kuva webkameralla
userlist.header = Etsi k\u00E4ytt\u00E4ji\u00E4 userlist.header = Etsi k\u00E4ytt\u00E4ji\u00E4
userlist.search=Etsi userlist.search = Etsi
usertitle.managingUser = Hallitaan k\u00E4ytt\u00E4j\u00E4\u00E4 usertitle.managingUser = Hallitaan k\u00E4ytt\u00E4j\u00E4\u00E4
...@@ -515,3 +515,16 @@ userview.userExists = K\u00E4ytt\u00E4j\u00E4tunnus on jo olemassa. Ole ...@@ -515,3 +515,16 @@ userview.userExists = K\u00E4ytt\u00E4j\u00E4tunnus on jo olemassa. Ole
viewexpired.body = Ole hyv\u00E4 ja kirjaudu sis\u00E4\u00E4n uudelleen. viewexpired.body = Ole hyv\u00E4 ja kirjaudu sis\u00E4\u00E4n uudelleen.
viewexpired.title = N\u00E4kym\u00E4 on vanhentunut viewexpired.title = N\u00E4kym\u00E4 on vanhentunut
voting.create.compoEnd = Lopetusaika
voting.create.compoStart = Aloitusaika
voting.create.createButton = Luo
voting.create.dateValidatorEndDate = Loppumisaika ennen alkua.
voting.create.description = Kuvaus
voting.create.header = Compon luonti
voting.create.maxParticipants = Max osallistujat
voting.create.name = Nimi
voting.create.submitEnd = Submit kiinni
voting.create.submitStart = Submit auki
voting.create.voteEnd = \u00C4\u00E4nestys kiinni
voting.create.voteStart = \u00C4\u00E4nestys auki
...@@ -90,6 +90,7 @@ public abstract class GenericCDIView implements Serializable { ...@@ -90,6 +90,7 @@ public abstract class GenericCDIView implements Serializable {
} }
protected void addFaceMessage(String string, Object... params) { protected void addFaceMessage(String string, Object... params) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get(string, params))); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get(string, params)));
} }
......
...@@ -19,6 +19,7 @@ public class ActionLogCreateView extends GenericCDIView { ...@@ -19,6 +19,7 @@ public class ActionLogCreateView extends GenericCDIView {
@EJB @EJB
private ActionLogBeanLocal actionLogBean; private ActionLogBeanLocal actionLogBean;
@Size(min=4,message="{actionlog.message.tooshort}") @Size(min=4,message="{actionlog.message.tooshort}")
private String message; private String message;
private Role role; private Role role;
......
...@@ -30,6 +30,12 @@ public class PageOutputView extends GenericCDIView { ...@@ -30,6 +30,12 @@ public class PageOutputView extends GenericCDIView {
initView(); initView();
} }
public void initView(String name)
{
this.name = name;
initView();
}
public void initView() { public void initView() {
if (name == null || name.isEmpty()) { if (name == null || name.isEmpty()) {
setContents(pagebean.findContentsForUser(id)); setContents(pagebean.findContentsForUser(id));
...@@ -47,14 +53,6 @@ public class PageOutputView extends GenericCDIView { ...@@ -47,14 +53,6 @@ public class PageOutputView extends GenericCDIView {
return id; return id;
} }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setId(Integer id) { public void setId(Integer id) {
this.id = id; this.id = id;
} }
......
...@@ -50,20 +50,24 @@ public class ProductShopView extends GenericCDIView { ...@@ -50,20 +50,24 @@ public class ProductShopView extends GenericCDIView {
@Inject @Inject
private BillListView billListView; private BillListView billListView;
public void initView() { public void initBillView()
boolean ok = true; {
if (!permbean.isCurrentUser(user)) { if (requirePermissions(ShopPermission.LIST_USERPRODUCTS)) {
ok = requirePermissions(ShopPermission.SHOP_TO_OTHERS); shoppingcart = new ListDataModel<ProductShopItem>(ProductShopItem.productList(productBean.listUserShoppableProducts()));
logger.debug("Initialized billing shoppingcart to {}", shoppingcart);
this.beginConversation();
} }
if (ok && shoppingcart == null) {
if (permbean.hasPermission(ShopPermission.LIST_ALL_PRODUCTS)) { }
shoppingcart = new ListDataModel<ProductShopItem>(ProductShopItem.productList(productBean.getProducts()));
} else if (requirePermissions(ShopPermission.LIST_USERPRODUCTS)) { public void initShopView() {
shoppingcart = new ListDataModel<ProductShopItem>(ProductShopItem.productList(productBean.listUserShoppableProducts()));
} if (requirePermissions(ShopPermission.SHOP_TO_OTHERS)) {
logger.info("Initialized shoppingcart to {}", shoppingcart); shoppingcart = new ListDataModel<ProductShopItem>(ProductShopItem.productList(productBean.listUserShoppableProducts()));
logger.debug("Initialized shoppingcart to {}", shoppingcart);
this.beginConversation(); this.beginConversation();
} }
} }
public String add(Integer count) public String add(Integer count)
......
...@@ -4,13 +4,16 @@ import java.util.List; ...@@ -4,13 +4,16 @@ import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import fi.insomnia.bortal.beans.ReaderBeanLocal; import fi.insomnia.bortal.beans.ReaderBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.apps.ShopPermission; import fi.insomnia.bortal.enums.apps.ShopPermission;
import fi.insomnia.bortal.model.Reader; import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.model.ReaderEvent; import fi.insomnia.bortal.model.ReaderEvent;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.web.cdiview.GenericCDIView; import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@Named @Named
...@@ -19,29 +22,51 @@ public class ReaderView extends GenericCDIView { ...@@ -19,29 +22,51 @@ public class ReaderView extends GenericCDIView {
private static final long serialVersionUID = 802344850073689859L; private static final long serialVersionUID = 802344850073689859L;
private Integer eventid;
private String placecode;
private String usersearch;
private ListDataModel<User> userlist;
@Inject @Inject
private ReaderNameContainer namecontainer; private ReaderNameContainer namecontainer;
@EJB @EJB
private ReaderBeanLocal readerbean; private ReaderBeanLocal readerbean;
private List<Reader> readers; private ReaderEvent event;
public void initReaderList() { @EJB
super.requirePermissions(ShopPermission.SHOP_TO_OTHERS); private UserBeanLocal userbean;
public void initUserassocView() {
if (super.requirePermissions(UserPermission.CREATE_NEW)) {
event = readerbean.getEvent(eventid);
super.beginConversation();
}
} }
public List<ReaderEvent> getReaderEvents() public String searchforuser()
{ {
return readerbean.getReaderEvents(namecontainer.getReaderId()); if (usersearch == null || usersearch.length() < 2) {
super.addFaceMessage("user.tooShortSearch");
} else {
userlist = new ListDataModel<User>(userbean.getUsers(0, 0, null, usersearch).getResults());
}
return null;
} }
public List<Reader> getReaders() public void initReaderList() {
{ if (super.requirePermissions(ShopPermission.SHOP_TO_OTHERS)) {
if (readers == null) {
readers = readerbean.getReaders();
} }
return readers; }
public List<ReaderEvent> getReaderEvents()
{
return readerbean.getReaderEvents(namecontainer.getReaderId());
} }
public ReaderNameContainer getNamecontainer() { public ReaderNameContainer getNamecontainer() {
...@@ -52,4 +77,44 @@ public class ReaderView extends GenericCDIView { ...@@ -52,4 +77,44 @@ public class ReaderView extends GenericCDIView {
this.namecontainer = namecontainer; this.namecontainer = namecontainer;
} }
public Integer getEventid() {
return eventid;
}
public void setEventid(Integer eventid) {
this.eventid = eventid;
}
public ReaderEvent getEvent() {
return event;
}
public void setEvent(ReaderEvent event) {
this.event = event;
}
public String getPlacecode() {
return placecode;
}
public void setPlacecode(String placecode) {
this.placecode = placecode;
}
public String getUsersearch() {
return usersearch;
}
public void setUsersearch(String usersearch) {
this.usersearch = usersearch;
}
public ListDataModel<User> getUserlist() {
return userlist;
}
public void setUserlist(ListDataModel<User> userlist) {
this.userlist = userlist;
}
} }
package fi.insomnia.bortal.web.cdiview.shop;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Named;
import fi.insomnia.bortal.beans.SalespointBeanLocal;
import fi.insomnia.bortal.enums.apps.SalespointPermission;
import fi.insomnia.bortal.model.salespoint.Salespoint;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
/**
* Session Bean implementation class SalespointListView
*/
@Named
@ConversationScoped
public class SalespointListView extends GenericCDIView {
@EJB
private SalespointBeanLocal salespointBean;
private static final long serialVersionUID = -8990414681240360892L;
private ListDataModel<Salespoint> salespoints;
private boolean modifySalespoint;
public SalespointListView() {
}
public void init() {
if (super.requirePermissions(SalespointPermission.VIEW)) {
beginConversation();
salespoints = new ListDataModel<Salespoint>(
salespointBean.findAll());
modifySalespoint = permbean
.hasPermission(SalespointPermission.MODIFY);
}
}
public ListDataModel<Salespoint> getSalespoints() {
return salespoints;
}
public void setSalespoints(ListDataModel<Salespoint> salespoints) {
this.salespoints = salespoints;
}
public boolean canEditSalespoint() {
return modifySalespoint;
}
}
...@@ -7,6 +7,9 @@ import javax.faces.bean.ManagedBean; ...@@ -7,6 +7,9 @@ import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped; import javax.faces.bean.RequestScoped;
import javax.inject.Named; import javax.inject.Named;
import javax.validation.constraints.Min; import javax.validation.constraints.Min;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Length;
import fi.insomnia.bortal.beans.VotingBeanLocal; import fi.insomnia.bortal.beans.VotingBeanLocal;
import fi.insomnia.bortal.web.cdiview.GenericCDIView; import fi.insomnia.bortal.web.cdiview.GenericCDIView;
...@@ -24,10 +27,10 @@ public class VotingCreateView extends GenericCDIView { ...@@ -24,10 +27,10 @@ public class VotingCreateView extends GenericCDIView {
@EJB @EJB
private VotingBeanLocal votbean; private VotingBeanLocal votbean;
@Min(value=4,message="Nimen pitää olla pidempi kuin 4 merkkiä.") @Size(min=4, message="{voting.create.nameError}")
private String name; private String name;
private String description; private String description;
@Min(value=1, message="Min osallistujia 1.") @Min(value=1, message="{voting.create.participantsError}")
private Integer maxParticipants; private Integer maxParticipants;
private Date compoStart; private Date compoStart;
......
...@@ -10,11 +10,14 @@ import javax.faces.context.FacesContext; ...@@ -10,11 +10,14 @@ import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException; import javax.faces.validator.ValidatorException;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import javax.servlet.jsp.tagext.ValidationMessage;
import org.eclipse.persistence.exceptions.ValidationException; import org.eclipse.persistence.exceptions.ValidationException;
import org.hibernate.validator.util.LoggerFactory; import org.hibernate.validator.util.LoggerFactory;
import org.slf4j.Logger; import org.slf4j.Logger;
import fi.insomnia.bortal.utilities.I18n;
@Named @Named
@RequestScoped @RequestScoped
...@@ -34,7 +37,8 @@ public class VotingDateValidator implements Serializable { ...@@ -34,7 +37,8 @@ public class VotingDateValidator implements Serializable {
//UIComponent foo = ui.findComponent("cStart"); //UIComponent foo = ui.findComponent("cStart");
//logger.info("uielement {} ", foo); //logger.info("uielement {} ", foo);
if(endDate.before(cStart)) { if(endDate.before(cStart)) {
message(new FacesMessage("Loppumispvm ennen alkua. KORJAA SE."));
message(new FacesMessage(I18n.get("voting.create.dateValidatorEndDate")));
} }
} }
...@@ -47,7 +51,7 @@ public class VotingDateValidator implements Serializable { ...@@ -47,7 +51,7 @@ public class VotingDateValidator implements Serializable {
public void validateVote(FacesContext context, UIComponent ui, Object object) { public void validateVote(FacesContext context, UIComponent ui, Object object) {
Date endDate = (Date)object; Date endDate = (Date)object;
if(endDate.before(vStart)) { if(endDate.before(vStart)) {
message(new FacesMessage("Loppumispvm ennen alkua. NOT VALID.")); message(new FacesMessage(I18n.get("voting.create.dateValidatorEndDate")));
} }
} }
...@@ -58,7 +62,7 @@ public class VotingDateValidator implements Serializable { ...@@ -58,7 +62,7 @@ public class VotingDateValidator implements Serializable {
public void validateSubmit(FacesContext context, UIComponent ui, Object object) { public void validateSubmit(FacesContext context, UIComponent ui, Object object) {
Date endDate = (Date)object; Date endDate = (Date)object;
if(endDate.before(sStart)) { if(endDate.before(sStart)) {
message(new FacesMessage("Loppumispvm ennen aloitusta. IS AN ERROR.")); message(new FacesMessage(I18n.get("voting.create.dateValidatorEndDate")));
} }
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!