Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Antti Väyrynen
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 7d3c93fe
authored
Oct 06, 2012
by
Juho Juopperi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of codecrew.fi:bortal
2 parents
c586a8ac
71e44b57
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
419 additions
and
409 deletions
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/FoodWaveBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/PermissionBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/ProductPBean.java
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/FoodWaveTemplateFacade.java
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/FoodWaveBeanLocal.java
code/LanBortalDatabase/src/fi/insomnia/bortal/model/ProductFlag.java
code/LanBortalUtilities/src/fi/insomnia/bortal/enums/apps/ShopPermission.java
code/LanBortalWeb/WebContent/WEB-INF/web.xml
code/LanBortalWeb/WebContent/foodadmin/edit.xhtml
code/LanBortalWeb/WebContent/foodadmin/list.xhtml
code/LanBortalWeb/WebContent/layout/insomnia2/template.xhtml
code/LanBortalWeb/WebContent/layout/template1/template.xhtml
code/LanBortalWeb/WebContent/place/edit.xhtml
code/LanBortalWeb/WebContent/resources/cditools/user/list.xhtml
code/LanBortalWeb/WebContent/resources/style/insomnia2/css/general.css
code/LanBortalWeb/WebContent/resources/style/template1/css/general.css
code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_en.properties
code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_fi.properties
code/LanBortalWeb/src/fi/insomnia/bortal/web/cdiview/shop/FoodShopView.java
code/LanBortalWeb/src/fi/insomnia/bortal/web/cdiview/shop/FoodWaveView.java
glassfishin_asennus.txt
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/FoodWaveBean.java
View file @
7d3c93f
package
fi
.
insomnia
.
bortal
.
beans
;
import
java.util.List
;
import
javax.annotation.security.DeclareRoles
;
import
javax.annotation.security.RolesAllowed
;
import
javax.ejb.EJB
;
import
javax.ejb.Stateless
;
import
fi.insomnia.bortal.enums.apps.ShopPermission
;
import
fi.insomnia.bortal.facade.FoodWaveTemplateFacade
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
...
...
@@ -12,29 +15,23 @@ import fi.insomnia.bortal.model.FoodWaveTemplate;
* Session Bean implementation class FoodWaveBean
*/
@Stateless
@DeclareRoles
(
"SHOP/WRITE"
)
@DeclareRoles
(
ShopPermission
.
S_MANAGE_PRODUCTS
)
public
class
FoodWaveBean
implements
FoodWaveBeanLocal
{
@EJB
private
FoodWaveTemplateFacade
fwtFacade
;
/**
* Default constructor.
*/
public
FoodWaveBean
()
{
// TODO Auto-generated constructor stub
}
@Override
@RolesAllowed
(
"SHOP/WRITE"
)
public
void
createTemplate
(
FoodWaveTemplate
waveTemplate
)
{
fwtFacade
.
create
(
waveTemplate
);
@RolesAllowed
(
ShopPermission
.
S_MANAGE_PRODUCTS
)
public
List
<
FoodWaveTemplate
>
getTemplates
(
)
{
return
fwtFacade
.
findAllTemplates
(
);
}
@Override
@RolesAllowed
(
"SHOP/WRITE"
)
public
FoodWaveTemplate
saveTemplate
(
FoodWaveTemplate
waveTemplate
)
{
return
fwtFacade
.
merge
(
waveTemplate
);
@RolesAllowed
(
ShopPermission
.
S_MANAGE_PRODUCTS
)
public
FoodWaveTemplate
saveOrCreateTemplate
(
FoodWaveTemplate
template
)
{
// TODO Auto-generated method stub
return
null
;
}
}
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/PermissionBean.java
View file @
7d3c93f
...
...
@@ -5,6 +5,7 @@ import java.security.Principal;
import
javax.annotation.Resource
;
import
javax.annotation.security.DeclareRoles
;
import
javax.ejb.EJB
;
import
javax.ejb.LocalBean
;
import
javax.ejb.SessionContext
;
import
javax.ejb.Stateless
;
import
javax.resource.spi.IllegalStateException
;
...
...
@@ -56,6 +57,7 @@ import fi.insomnia.bortal.model.User;
ShopPermission
.
S_SHOP_TO_OTHERS
,
ShopPermission
.
S_MANAGE_PRODUCTS
,
ShopPermission
.
S_SHOP_PRODUCTS
,
ShopPermission
.
S_SHOP_FOODWAVE
,
BillPermission
.
S_CREATE_BILL
,
BillPermission
.
S_READ_ALL
,
...
...
@@ -88,6 +90,7 @@ import fi.insomnia.bortal.model.User;
EventPermission
.
S_MANAGE_PROPERTIES
,
})
@LocalBean
public
class
PermissionBean
implements
PermissionBeanLocal
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PermissionBean
.
class
);
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/beans/ProductPBean.java
View file @
7d3c93f
...
...
@@ -25,6 +25,7 @@ public class ProductPBean {
@EJB
private
PermissionBean
permbean
;
@EJB
private
AccountEventFacade
accounteventfacade
;
/**
...
...
code/LanBortalBeans/ejbModule/fi/insomnia/bortal/facade/FoodWaveTemplateFacade.java
View file @
7d3c93f
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.EventBean
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
import
fi.insomnia.bortal.model.FoodWaveTemplate_
;
@Stateless
@LocalBean
public
class
FoodWaveTemplateFacade
extends
IntegerPkGenericFacade
<
FoodWaveTemplate
>
{
@EJB
private
EventBean
eventbean
;
public
FoodWaveTemplateFacade
()
{
super
(
FoodWaveTemplate
.
class
);
}
public
List
<
FoodWaveTemplate
>
findAllTemplates
()
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
FoodWaveTemplate
>
cq
=
cb
.
createQuery
(
FoodWaveTemplate
.
class
);
Root
<
FoodWaveTemplate
>
root
=
cq
.
from
(
FoodWaveTemplate
.
class
);
cb
.
equal
(
root
.
get
(
FoodWaveTemplate_
.
event
),
eventbean
.
getCurrentEvent
());
return
getEm
().
createQuery
(
cq
).
getResultList
();
}
}
code/LanBortalBeansClient/ejbModule/fi/insomnia/bortal/beans/FoodWaveBeanLocal.java
View file @
7d3c93f
package
fi
.
insomnia
.
bortal
.
beans
;
import
java.util.List
;
import
javax.ejb.Local
;
import
fi.insomnia.bortal.model.FoodWave
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
@Local
public
interface
FoodWaveBeanLocal
{
void
createTemplate
(
FoodWaveTemplate
waveTemplate
);
List
<
FoodWaveTemplate
>
getTemplates
();
FoodWaveTemplate
saveOrCreateTemplate
(
FoodWaveTemplate
template
);
List
<
FoodWave
>
findShoppableFoodwaves
();
FoodWaveTemplate
saveTemplate
(
FoodWaveTemplate
waveTemplate
);
FoodWave
findFoodwave
(
Integer
foodwaveId
);
}
code/LanBortalDatabase/src/fi/insomnia/bortal/model/ProductFlag.java
View file @
7d3c93f
...
...
@@ -2,7 +2,7 @@ package fi.insomnia.bortal.model;
public
enum
ProductFlag
{
FOODWAVE_ITEM
,
// FOODWAVE_ITEM, Äy... Ei kai tämän täällä tarvitse olla....
PREPAID_CREDIT
,
CREATE_NEW_PLACE_WHEN_BOUGHT
,
RESERVE_PLACE_WHEN_BOUGHT
,
...
...
code/LanBortalUtilities/src/fi/insomnia/bortal/enums/apps/ShopPermission.java
View file @
7d3c93f
...
...
@@ -9,6 +9,7 @@ public enum ShopPermission implements IAppPermission {
SHOP_TO_OTHERS
,
// ("Shop to other users"),
SHOP_PRODUCTS
,
// ("Shop products to self"),
MANAGE_PRODUCTS
,
// ("Create and modify products"),
SHOP_FOODWAVE
,
// Shop for food
;
...
...
@@ -17,6 +18,7 @@ public enum ShopPermission implements IAppPermission {
public
static
final
String
S_SHOP_TO_OTHERS
=
"SHOP/SHOP_TO_OTHERS"
;
public
static
final
String
S_SHOP_PRODUCTS
=
"SHOP/SHOP_PRODUCTS"
;
public
static
final
String
S_MANAGE_PRODUCTS
=
"SHOP/MANAGE_PRODUCTS"
;
public
static
final
String
S_SHOP_FOODWAVE
=
"SHOP/SHOP_FOODWAVE"
;
private
final
String
fullName
;
private
final
String
key
;
...
...
code/LanBortalWeb/WebContent/WEB-INF/web.xml
View file @
7d3c93f
<?xml version="1.0" encoding="UTF-8"?>
<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"
>
<display-name>
LanBortalWeb
</display-name>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<context-param>
<param-name>
javax.faces.PROJECT_STAGE
</param-name>
<param-value>
Production
</param-value>
</context-param>
<context-param>
<param-name>
javax.faces.FACELETS_SKIP_COMMENTS
</param-name>
<param-value>
true
</param-value>
</context-param>
<servlet-mapping>
<servlet-name>
PlaceMap
</servlet-name>
<url-pattern>
/PlaceMap
</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>
index.html
</welcome-file>
<welcome-file>
index.jsf
</welcome-file>
<welcome-file>
index.jsp
</welcome-file>
<welcome-file>
index.wtf
</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>
Faces Servlet
</servlet-name>
<servlet-class>
javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>
1
</load-on-startup>
</servlet>
<servlet>
<servlet-name>
UploadServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.UploadServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
UploadServlet
</servlet-name>
<url-pattern>
/UploadServlet
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
UserImageServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.UserImageServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
UserImageServlet
</servlet-name>
<url-pattern>
/Userimage
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
UserCardServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.UserCardServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
UserCardServlet
</servlet-name>
<url-pattern>
/UserCard
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
CardTemplateServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.CardTemplateServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
CardTemplateServlet
</servlet-name>
<url-pattern>
/CardTemplate
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
PlaceMap
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.PlaceMap
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
Faces Servlet
</servlet-name>
<url-pattern>
*.jsf
</url-pattern>
<url-pattern>
*.wtf
</url-pattern>
<url-pattern>
/faces/*
</url-pattern>
</servlet-mapping>
<filter>
<display-name>
PrimefacesFileupload
</display-name>
<filter-name>
PrimeFacesFileupload
</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>
PrimeFacesFileupload
</filter-name>
<servlet-name>
Faces Servlet
</servlet-name>
</filter-mapping>
<filter>
<display-name>
HostnameFilter
</display-name>
<filter-name>
HostnameFilter
</filter-name>
<filter-class>
fi.insomnia.bortal.HostnameFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>
HostnameFilter
</filter-name>
<servlet-name>
*
</servlet-name>
</filter-mapping>
<login-config>
<auth-method>
FORM
</auth-method>
<realm-name>
omniarealm
</realm-name>
<form-login-config>
<form-login-page>
/auth/login.jsf
</form-login-page>
<form-error-page>
/auth/loginError.jsf
</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<display-name>
Forbidden resource
</display-name>
<web-resource-collection>
<web-resource-name>
Forbidden
</web-resource-name>
<url-pattern>
*.xhtml
</url-pattern>
<url-pattern>
/layout/*
</url-pattern>
<url-pattern>
/resources/tools/*
</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>
Thou shall not read the sources or use utils directly
</description>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>
CONFIDENTIAL
</transport-guarantee>
</user-data-constraint>
</security-constraint>
<servlet>
<description></description>
<display-name>
PrintBill
</display-name>
<servlet-name>
PrintBill
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.PrintBill
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
PrintBill
</servlet-name>
<url-pattern>
/PrintBill
</url-pattern>
</servlet-mapping>
<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>
<context-param>
<param-name>
primefaces.THEME
</param-name>
<param-value>
bortal
</param-value>
</context-param>
<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"
>
<display-name>
LanBortalWeb
</display-name>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<context-param>
<param-name>
javax.faces.PROJECT_STAGE
</param-name>
<!-- <param-value>Production</param-value> -->
<param-value>
Development
</param-value>
</context-param>
<context-param>
<param-name>
javax.faces.FACELETS_SKIP_COMMENTS
</param-name>
<param-value>
true
</param-value>
</context-param>
<servlet-mapping>
<servlet-name>
PlaceMap
</servlet-name>
<url-pattern>
/PlaceMap
</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>
index.html
</welcome-file>
<welcome-file>
index.jsf
</welcome-file>
<welcome-file>
index.jsp
</welcome-file>
<welcome-file>
index.wtf
</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>
Faces Servlet
</servlet-name>
<servlet-class>
javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>
1
</load-on-startup>
</servlet>
<servlet>
<servlet-name>
UploadServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.UploadServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
UploadServlet
</servlet-name>
<url-pattern>
/UploadServlet
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
UserImageServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.UserImageServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
UserImageServlet
</servlet-name>
<url-pattern>
/Userimage
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
UserCardServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.UserCardServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
UserCardServlet
</servlet-name>
<url-pattern>
/UserCard
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
CardTemplateServlet
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.CardTemplateServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
CardTemplateServlet
</servlet-name>
<url-pattern>
/CardTemplate
</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>
PlaceMap
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.PlaceMap
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
Faces Servlet
</servlet-name>
<url-pattern>
*.jsf
</url-pattern>
<url-pattern>
*.wtf
</url-pattern>
<url-pattern>
/faces/*
</url-pattern>
</servlet-mapping>
<filter>
<display-name>
PrimefacesFileupload
</display-name>
<filter-name>
PrimeFacesFileupload
</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>
PrimeFacesFileupload
</filter-name>
<servlet-name>
Faces Servlet
</servlet-name>
</filter-mapping>
<filter>
<display-name>
HostnameFilter
</display-name>
<filter-name>
HostnameFilter
</filter-name>
<filter-class>
fi.insomnia.bortal.HostnameFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>
HostnameFilter
</filter-name>
<servlet-name>
*
</servlet-name>
</filter-mapping>
<login-config>
<auth-method>
FORM
</auth-method>
<realm-name>
omniarealm
</realm-name>
<form-login-config>
<form-login-page>
/auth/login.jsf
</form-login-page>
<form-error-page>
/auth/loginError.jsf
</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<display-name>
Forbidden resource
</display-name>
<web-resource-collection>
<web-resource-name>
Forbidden
</web-resource-name>
<url-pattern>
*.xhtml
</url-pattern>
<url-pattern>
/layout/*
</url-pattern>
<url-pattern>
/resources/tools/*
</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>
Thou shall not read the sources or use utils directly
</description>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>
CONFIDENTIAL
</transport-guarantee>
</user-data-constraint>
</security-constraint>
<servlet>
<description></description>
<display-name>
PrintBill
</display-name>
<servlet-name>
PrintBill
</servlet-name>
<servlet-class>
fi.insomnia.bortal.servlet.PrintBill
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
PrintBill
</servlet-name>
<url-pattern>
/PrintBill
</url-pattern>
</servlet-mapping>
<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>
<context-param>
<param-name>
primefaces.THEME
</param-name>
<param-value>
bortal
</param-value>
</context-param>
</web-app>
\ No newline at end of file
code/LanBortalWeb/WebContent/foodadmin/edit.xhtml
0 → 100644
View file @
7d3c93f
<!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:f=
"http://java.sun.com/jsf/core"
xmlns:products=
"http://java.sun.com/jsf/composite/cditools/products"
xmlns:users=
"http://java.sun.com/jsf/composite/cditools/user"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
>
<h:body>
<ui:composition
template=
"/layout/#{sessionHandler.layout}/template.xhtml"
>
<f:metadata>
<f:event
type=
"preRenderView"
listener=
"#{foodWaveView.initTemplateList()}"
/>
</f:metadata>
<ui:define
name=
"title"
>
<h1>
#{i18n['foodwave.template.list.title']}
</h1>
</ui:define>
<ui:define
name=
"content"
>
<h:dataTable
var=
"templ"
value=
"#{foodWaveView.templates}"
>
<h:column>
<h:outputText
value=
"#{templ.name}"
/>
</h:column>
<h:column>
<h:link
outcome=
"/foodadmin/editTemplate"
>
<f:param
value=
"#{templ.id}"
/>
</h:link>
</h:column>
</h:dataTable>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/foodadmin/list.xhtml
0 → 100644
View file @
7d3c93f
<!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:f=
"http://java.sun.com/jsf/core"
xmlns:products=
"http://java.sun.com/jsf/composite/cditools/products"
xmlns:users=
"http://java.sun.com/jsf/composite/cditools/user"
xmlns:c=
"http://java.sun.com/jsp/jstl/core"
>
<h:body>
<ui:composition
template=
"/layout/#{sessionHandler.layout}/template.xhtml"
>
<f:metadata>
<f:event
type=
"preRenderView"
listener=
"#{foodWaveView.initTemplateList()}"
/>
</f:metadata>
<ui:define
name=
"title"
>
<h1>
#{i18n['foodwave.template.list.title']}
</h1>
</ui:define>
<ui:define
name=
"content"
>
<h:dataTable
var=
"templ"
value=
"#{foodWaveView.templates}"
>
<h:column>
<h:outputText
value=
"#{templ.name}"
/>
</h:column>
<h:column>
<h:link
outcome=
"/foodadmin/editTemplate"
>
<f:param
value=
"#{templ.id}"
/>
</h:link>
</h:column>
</h:dataTable>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
code/LanBortalWeb/WebContent/layout/insomnia2/template.xhtml
View file @
7d3c93f
...
...
@@ -12,6 +12,8 @@
<meta
http-equiv=
"Content-Language"
content=
"fi"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"#{request.contextPath}/resources/style/insomnia2/css/tyyli.css"
/>
<!-- general style for nonlayout elements -->
<link
rel=
"stylesheet"
type=
"text/css"
href=
"#{request.contextPath}/resources/style/insomnia2/css/general.css"
/>
<ui:insert
name=
"headerdata"
/>
<h:outputScript
name=
"prime_calendar.js"
library=
"script"
/>
</h:head>
...
...
code/LanBortalWeb/WebContent/layout/template1/template.xhtml
View file @
7d3c93f
...
...
@@ -14,6 +14,7 @@
<meta
http-equiv=
"Content-Language"
content=
"fi"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"#{request.contextPath}/resources/style/template1/css/style.css"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"#{request.contextPath}/resources/style/template1/css/general.css"
/>
<ui:insert
name=
"headerdata"
/>
</h:head>
...
...
code/LanBortalWeb/WebContent/place/edit.xhtml
View file @
7d3c93f
...
...
@@ -15,8 +15,6 @@
<ui:define
name=
"content"
>
<h1>
#{i18n['editplace.header']}
</h1>
<h1>
edit:
</h1>
<h:form
id=
"placeEdit"
>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
value=
"#{i18n['place.name']}:"
/>
...
...
@@ -127,7 +125,7 @@
<h:outputLabel
value=
"#{i18n['placegroup.creator']}"
/>
<h:link
outcome=
"/useradmin/edit"
value=
"#{placeView.place.group.creator.wholeName}"
>
<f:param
name=
"userid"
value=
"#{placeView.place.group.creator.id}"
/>
<f:param
name=
"userid"
value=
"#{placeView.place.group.creator.
user.
id}"
/>
</h:link>
</h:panelGrid>
...
...
code/LanBortalWeb/WebContent/resources/cditools/user/list.xhtml
View file @
7d3c93f
...
...
@@ -7,35 +7,33 @@
</composite:interface>
<composite:implementation>
<h:outputScript
library=
"primefaces"
name=
"jquery/jquery.js"
target=
"head"
/>
<h:dataTable
styleClass=
"bordertable"
id=
"user"
value=
"#{userSearchView.results}"
var=
"user"
>
<h:column>
<f:facet
name=
"header"
>
<h:link
value=
"ID"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"id"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<h:outputText
value=
"#{user.id}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.login']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"login"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<h:outputText
value=
"#{user.login}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.nick']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"nick"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<h:outputText
value=
"#{user.nick}"
/>
<h:outputText
styleClass=
"hoverable"
value=
"#{(empty user.nick)?'----':user.nick}"
/>
<div
class=
"userdata_popup"
>
<h:panelGrid
columns=
"2"
>
<img
style=
"width:100px;"
src=
"#{request.contextPath}/dydata/userimage/#{user.currentImage.id}.img"
alt=
"image"
/>
<h:panelGroup>
<h:outputText
value=
"#{user.nick}"
/>
<br
/>
<h:outputText
value=
"#{user.firstnames} #{user.lastname}"
/>
<br
/>
<hr
/>
<h:outputText
value=
"#{user.address}"
/>
<br
/>
<h:outputText
value=
"#{user.zip} #{user.postalTown}"
/>
<br
/>
<br
/>
<h:outputText
value=
"#{user.phone}"
/>
<br
/>
<h:outputText
value=
"#{user.email}"
/>
<br
/>
</h:panelGroup>
</h:panelGrid>
</div>
</h:column>
<h:column>
<f:facet
name=
"header"
>
...
...
@@ -56,42 +54,26 @@
</f:facet>
<h:outputText
value=
"#{user.lastname}"
/>
</h:column>
<h:column>
<f:facet
name=
"header"
>
<h:link
value=
"#{i18n['user.email']}"
includeViewParams=
"true"
>
<f:param
name=
"sort"
value=
"email"
/>
<f:param
name=
"page"
value=
"0"
/>
</h:link>
</f:facet>
<h:outputText
value=
"#{user.email}"
/>
</h:column>
<!-- <h:column>
<f:facet name="header">
<h:outputText value="#{i18n['user.accountBalance']}" />
</f:facet>
<h:outputText value="#{user.accountBalance}">
<f:convertNumber />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['user.image']}" />
</f:facet>
<h:commandLink action="#{userView.showImage()}"
value="#{(empty user.currentImage)?i18n['user.noImage']:i18n['user.hasImage']}"
/>
</h:column>
-->
<h:column>
<h:link
outcome=
"/useradmin/edit"
value=
"#{i18n['user.edit']}"
>
<f:param
name=
"userid"
value=
"#{user.id}"
/>
</h:link>
<button
onClick=
"location.replace('#{request.contextPath}/useradmin/edit.jsf?user.id=#{user.id}')"
>
#{i18n['user.edit']}
</button>
</h:column>
<!-- <h:column>
<h:commandButton action="#{userView.shop()}" value="#{i18n['user.shop']}" />
</h:column> -->
</h:dataTable>
<script>
jQuery
(
function
()
{
jQuery
(
".hoverable"
).
hover
(
function
()
{
jQuery
(
this
).
next
().
fadeIn
();
},
function
()
{
jQuery
(
this
).
next
().
fadeOut
();
});
});
</script>
</composite:implementation>
</html>
code/LanBortalWeb/WebContent/resources/style/insomnia2/css/general.css
0 → 100644
View file @
7d3c93f
/* General css, use for non-layout purposes for general elements */
/* userlistview popup */
.userdata_popup
{
position
:
absolute
;
border
:
1px
solid
black
;
backgrond
:
white
;
border-radius
:
3px
;
display
:
none
;
}
/* general class for hoverable usage */
.hoverable
{
}
\ No newline at end of file
code/LanBortalWeb/WebContent/resources/style/template1/css/general.css
0 → 100644
View file @
7d3c93f
/* General css, use for non-layout purposes for general elements */
/* userlistview popup */
.userdata_popup
{
position
:
absolute
;
border
:
1px
solid
black
;
background
:
white
;
border-radius
:
3px
;
display
:
none
;
width
:
300px
;
height
:
150px
;
}
/* general class for hoverable usage */
.hoverable
{
}
\ No newline at end of file
code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_en.properties
View file @
7d3c93f
...
...
@@ -330,6 +330,7 @@ permissiondenied.alreadyLoggedIn = You don't have enough rights
permissiondenied.header
=
Access denied
permissiondenied.notLoggedIn
=
You don't have enough rights to enter this site.
place.buyable
=
Buyable
place.code
=
Placecode
place.commit
=
Save
place.description
=
Description
...
...
@@ -363,6 +364,7 @@ placegroup.details = Details
placegroup.edit
=
Show
placegroup.edited
=
Edited
placegroup.name
=
Name
placegroup.placename
=
Place
placegroup.places
=
Places
placegroup.printPdf
=
Print placecodes
...
...
code/LanBortalWeb/src/fi/insomnia/bortal/resources/i18n_fi.properties
View file @
7d3c93f
...
...
@@ -317,6 +317,7 @@ permissiondenied.alreadyLoggedIn = Sinulla ei ole riitt\u00E4v\u00E4sti oikeuksi
permissiondenied.header
=
P
\u
00E4
\u
00E4sy kielletty
permissiondenied.notLoggedIn
=
Sinulla ei ole riitt
\u
00E4v
\u
00E4sti oikeuksia t
\u
00E4lle sivulle.
place.buyable
=
Ostettavissa
place.code
=
Paikkakoodi
place.commit
=
Tallenna
place.description
=
Kuvaus
...
...
@@ -352,6 +353,7 @@ placegroup.details = Tiedot
placegroup.edit
=
N
\u
00E4yt
\u
00E4
placegroup.edited
=
Muokattu
placegroup.name
=
Nimi
placegroup.placename
=
Paikka
placegroup.places
=
Paikat
placegroup.printPdf
=
Tulosta paikkakoodit
...
...
code/LanBortalWeb/src/fi/insomnia/bortal/web/cdiview/shop/FoodShopView.java
View file @
7d3c93f
package
fi
.
insomnia
.
bortal
.
web
.
cdiview
.
shop
;
import
java.math.BigDecimal
;
import
java.util.Iterator
;
import
java.util.List
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.faces.model.ListDataModel
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.insomnia.bortal.beans.BillBeanLocal
;
import
fi.insomnia.bortal.beans.EventBeanLocal
;
import
fi.insomnia.bortal.beans.ProductBeanLocal
;
import
fi.insomnia.bortal.beans.FoodWaveBeanLocal
;
import
fi.insomnia.bortal.enums.apps.ShopPermission
;
import
fi.insomnia.bortal.model.Bill
;
import
fi.insomnia.bortal.model.EventUser
;
import
fi.insomnia.bortal.model.Product
;
import
fi.insomnia.bortal.model.ProductFlag
;
import
fi.insomnia.bortal.model.FoodWave
;
import
fi.insomnia.bortal.web.annotations.SelectedUser
;
import
fi.insomnia.bortal.web.cdiview.GenericCDIView
;
import
fi.insomnia.bortal.web.helpers.ProductShopItem
;
@Named
@ConversationScoped
public
class
FoodShopView
extends
GenericCDIView
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FoodShopView
.
class
);
/**
*
*/
private
static
final
long
serialVersionUID
=
1288114954999406683L
;
@EJB
private
transient
ProductBeanLocal
productBean
;
@EJB
private
transient
BillBeanLocal
billbean
;
@EJB
private
transient
EventBeanLocal
eventbean
;
private
static
final
long
serialVersionUID
=
1288114954999406683L
;
@Inject
@SelectedUser
private
EventUser
user
;
private
boolean
payInstant
;
private
BigDecimal
cash
=
BigDecimal
.
ZERO
;
private
transient
ListDataModel
<
ProductShopItem
>
shoppingcart
;
@Inject
private
BillListView
billListView
;
@Inject
private
BillReviewView
billReviewView
;
public
void
initBillView
()
{
if
(
requirePermissions
(
ShopPermission
.
LIST_USERPRODUCTS
)
&&
shoppingcart
==
null
)
{
shoppingcart
=
new
ListDataModel
<
ProductShopItem
>(
ProductShopItem
.
productList
(
productBean
.
listUserShoppableProducts
()));
logger
.
debug
(
"Initialized billing shoppingcart to {}"
,
shoppingcart
);
this
.
beginConversation
();
}
}
public
void
initShopView
()
{
if
(
requirePermissions
(
ShopPermission
.
SHOP_TO_OTHERS
)
&&
shoppingcart
==
null
)
{
shoppingcart
=
new
ListDataModel
<
ProductShopItem
>(
ProductShopItem
.
productGTList
(
productBean
.
findProductsByFlag
(
ProductFlag
.
FOODWAVE_ITEM
)));
logger
.
debug
(
"Initialized shoppingcart to {}"
,
shoppingcart
);
this
.
beginConversation
();
}
}
public
String
add
(
Integer
count
)
{
ProductShopItem
item
=
shoppingcart
.
getRowData
();
item
.
setCount
(
item
.
getCount
().
add
(
BigDecimal
.
valueOf
(
count
)));
return
null
;
}
public
String
addOne
()
{
return
add
(
1
);
}
public
String
addMinusOne
()
{
return
add
(-
1
);
}
public
String
addTen
()
{
return
add
(
10
);
}
@EJB
private
FoodWaveBeanLocal
foodwavebean
;
public
String
addMinusTen
()
{
return
add
(-
10
);
}
public
BigDecimal
getAccountBalance
()
{
BigDecimal
ret
=
user
.
getAccountBalance
();
ret
=
ret
.
add
(
getCash
());
ret
=
ret
.
subtract
(
getTotalPrice
());
logger
.
info
(
"User accountbalance {}, cash{}, total {}. retBalance {}"
,
new
Object
[]
{
user
.
getAccountBalance
(),
getCash
(),
getTotalPrice
(),
ret
});
return
ret
;
}
private
List
<
FoodWave
>
foodwaves
;
private
Integer
foodwaveId
;
private
FoodWave
foodwave
;
public
BigDecimal
getTotalPrice
()
public
void
initFoodwaves
()
{
BigDecimal
ret
=
BigDecimal
.
ZERO
;
for
(
ProductShopItem
cart
:
shoppingcart
)
if
(
super
.
requirePermissions
(
ShopPermission
.
SHOP_FOODWAVE
))
{
ret
=
ret
.
add
(
cart
.
getPrice
());
}
return
ret
;
}
public
String
commitBillCart
()
{
logger
.
debug
(
"Committing billCart"
);
if
(!
productsInCart
())
{
super
.
addFaceMessage
(
"productshop.noItemsInCart"
);
return
null
;
}
Bill
bill
=
new
Bill
(
eventbean
.
getCurrentEvent
(),
user
);
bill
.
setOurReference
(
eventbean
.
getCurrentEvent
().
getName
());
for
(
ProductShopItem
shopitem
:
shoppingcart
)
{
if
(
shopitem
.
getCount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
bill
.
addProduct
(
shopitem
.
getProduct
(),
shopitem
.
getCount
());
}
foodwaves
=
foodwavebean
.
findShoppableFoodwaves
();
}
billbean
.
createBill
(
bill
);
addFaceMessage
(
"productshop.billCreated"
);
cash
=
BigDecimal
.
ZERO
;
shoppingcart
=
null
;
billReviewView
.
setBill
(
bill
);
return
"showCreatedBill"
;
}
public
String
commitShoppingCart
()
public
void
initFoodwave
()
{
EventUser
retuser
=
null
;
for
(
ProductShopItem
shopitem
:
shoppingcart
)
{
if
(
shopitem
.
getCount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
retuser
=
productBean
.
createAccountEvent
(
shopitem
.
getProduct
(),
shopitem
.
getCount
(),
user
).
getUser
();
}
}
if
(
cash
!=
null
&&
cash
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
Product
credProd
=
productBean
.
findCreditProduct
();
retuser
=
productBean
.
createAccountEvent
(
credProd
,
cash
,
user
).
getUser
();
}
if
(
user
!=
null
)
{
user
=
retuser
;
}
shoppingcart
=
null
;
cash
=
BigDecimal
.
ZERO
;
return
null
;
}
public
void
setUser
(
EventUser
user
)
{
this
.
user
=
user
;
}
public
EventUser
getUser
()
{
return
user
;
}
public
void
setShoppingcart
(
ListDataModel
<
ProductShopItem
>
shoppingcart
)
{
this
.
shoppingcart
=
shoppingcart
;
}
public
ListDataModel
<
ProductShopItem
>
getShoppingcart
()
{
return
shoppingcart
;
}
private
boolean
productsInCart
()
{
Iterator
<
ProductShopItem
>
nullcheckIter
=
shoppingcart
.
iterator
();
while
(
nullcheckIter
.
hasNext
())
{
if
(
nullcheckIter
.
next
().
getCount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
return
true
;
}
}
return
false
;
}
public
void
setPayInstant
(
boolean
payInstant
)
{
if
(
payInstant
)
if
(
super
.
requirePermissions
(
ShopPermission
.
SHOP_FOODWAVE
)
&&
foodwave
==
null
)
{
getCash
();
foodwave
=
foodwavebean
.
findFoodwave
(
foodwaveId
);
super
.
beginConversation
();
}
this
.
payInstant
=
payInstant
;
}
public
boolean
isPayInstant
()
{
return
payInstant
;
}
public
BillListView
getBillListView
()
{
return
billListView
;
}
public
void
setBillListView
(
BillListView
billListView
)
{
this
.
billListView
=
billListView
;
}
public
BigDecimal
getCash
()
{
if
(
payInstant
)
{
cash
=
getTotalPrice
();
logger
.
info
(
"Getting instantcash as {}"
,
cash
);
}
if
(
cash
==
null
)
{
cash
=
BigDecimal
.
ZERO
;
}
return
cash
;
}
public
void
setCash
(
BigDecimal
cash
)
{
this
.
cash
=
cash
;
}
}
code/LanBortalWeb/src/fi/insomnia/bortal/web/cdiview/shop/FoodWaveView.java
0 → 100644
View file @
7d3c93f
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.FoodWaveBeanLocal
;
import
fi.insomnia.bortal.enums.apps.ShopPermission
;
import
fi.insomnia.bortal.model.FoodWaveTemplate
;
import
fi.insomnia.bortal.web.cdiview.GenericCDIView
;
@Named
@ConversationScoped
public
class
FoodWaveView
extends
GenericCDIView
{
private
static
final
long
serialVersionUID
=
7281708393927365603L
;
@EJB
private
FoodWaveBeanLocal
foodwaveBean
;
private
ListDataModel
<
FoodWaveTemplate
>
templates
;
private
FoodWaveTemplate
template
;
public
void
initTemplateList
()
{
if
(
super
.
requirePermissions
(
ShopPermission
.
MANAGE_PRODUCTS
))
{
templates
=
new
ListDataModel
<
FoodWaveTemplate
>(
foodwaveBean
.
getTemplates
());
super
.
beginConversation
();
}
}
public
void
initCreateTemplate
()
{
if
(
super
.
requirePermissions
(
ShopPermission
.
MANAGE_PRODUCTS
)
&&
getTemplate
()
==
null
)
{
setTemplate
(
new
FoodWaveTemplate
());
super
.
beginConversation
();
}
}
public
String
editTemplate
()
{
setTemplate
(
templates
.
getRowData
());
return
"/foodadmin/editTemplate"
;
}
public
String
saveTemplate
()
{
setTemplate
(
foodwaveBean
.
saveOrCreateTemplate
(
getTemplate
()));
return
null
;
}
public
FoodWaveTemplate
getTemplate
()
{
return
template
;
}
public
void
setTemplate
(
FoodWaveTemplate
template
)
{
this
.
template
=
template
;
}
}
glassfishin_asennus.txt
View file @
7d3c93f
...
...
@@ -53,7 +53,7 @@ Huom! Lue komennot läpi ja muokkaa muuttujat sopiviksi!
12. Glassfish Default Principal to Role Mapping
403 asioista, ellei tätä ole ruksittu:
HUOM! 403 asioista, ellei tätä ole ruksittu:
Configurations -> server-config -> Security -> Default Principal To Role Mapping -> Enabled
13. Käynnistä glassfish uudelleen että kaikki asetukset tulevat voimaan...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment