Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Linnea Samila
/
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 f54af4f9
authored
Jan 27, 2015
by
Tuomas Riihimäki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Complete viplist
1 parent
ba482559
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
633 additions
and
144 deletions
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/VipBeanLocal.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/MenuBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/VipBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/VipProductDeliveryFacade.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/VipProductFacade.java
code/moya-database/src/main/java/fi/codecrew/moya/model/Vip.java
code/moya-database/src/main/java/fi/codecrew/moya/model/VipProduct.java
code/moya-web/WebContent/WEB-INF/faces-config.xml
code/moya-web/WebContent/vip/create.xhtml
code/moya-web/WebContent/vip/deliver.xhtml
code/moya-web/WebContent/vip/edit.xhtml
code/moya-web/WebContent/vip/viplist.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/GenericCDIView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/vip/VipDeliverView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/vip/VipListView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/vip/VipView.java
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/VipBeanLocal.java
View file @
f54af4f
package
fi
.
codecrew
.
moya
.
beans
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
javax.ejb.Local
;
import
fi.codecrew.moya.model.Vip
;
import
fi.codecrew.moya.model.VipProduct
;
import
fi.codecrew.moya.model.VipProductDelivery
;
import
fi.codecrew.moya.utilities.SearchQuery
;
import
fi.codecrew.moya.utilities.SearchResult
;
...
...
@@ -19,4 +22,14 @@ public interface VipBeanLocal {
Vip
find
(
Integer
id
);
Vip
createProduct
(
VipProduct
l
);
Vip
save
(
Vip
vip
);
Vip
saveProduct
(
VipProduct
rowData
);
Vip
deleteProduct
(
VipProduct
l
);
VipProductDelivery
createDelivery
(
VipProduct
prod
,
BigDecimal
quantity
,
String
notes
);
}
code/moya-beans/ejbModule/fi/codecrew/moya/beans/MenuBean.java
View file @
f54af4f
...
...
@@ -43,6 +43,7 @@ import fi.codecrew.moya.enums.apps.SpecialPermission;
import
fi.codecrew.moya.enums.apps.TerminalPermission
;
import
fi.codecrew.moya.enums.apps.TournamentPermission
;
import
fi.codecrew.moya.enums.apps.UserPermission
;
import
fi.codecrew.moya.enums.apps.VipPermission
;
import
fi.codecrew.moya.facade.MenuNavigationFacade
;
import
fi.codecrew.moya.facade.MenuitemFacade
;
import
fi.codecrew.moya.model.LanEvent
;
...
...
@@ -109,7 +110,7 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation
usermenu
=
new
MenuNavigation
(
ev
,
"topmenu.user"
,
5
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/frontpage"
),
UserPermission
.
ANYUSER
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/frontpage"
),
UserPermission
.
ANYUSER
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/checkout/return"
),
null
).
setVisible
(
false
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/checkout/delayed"
),
null
).
setVisible
(
false
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/checkout/reject"
),
null
).
setVisible
(
false
);
...
...
@@ -124,7 +125,6 @@ public class MenuBean implements MenuBeanLocal {
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/auth/resetmailSent"
),
null
).
setVisible
(
false
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/auth/passwordChanged"
),
null
).
setVisible
(
false
);
usermenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/auth/notauthorized"
),
null
).
setVisible
(
false
);
MenuNavigation
userEvent
=
usermenu
.
addPage
(
null
,
null
);
userEvent
.
setKey
(
"topnavi.userevent"
);
...
...
@@ -133,23 +133,24 @@ public class MenuBean implements MenuBeanLocal {
userEvent
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/user/invite"
),
UserPermission
.
INVITE_USERS
);
userEvent
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/feedback/index"
),
UserPermission
.
VITUTTAAKO
);
MenuNavigation
helpmenu
=
usermenu
.
addPage
(
null
,
null
);
helpmenu
.
setKey
(
"topnavi.help"
);
helpmenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/help"
),
UserPermission
.
HELPPAGE
);
MenuNavigation
userkauppa
=
usermenu
.
addPage
(
null
,
null
);
userkauppa
.
setKey
(
"topnavi.usershop"
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/shop/createBill"
),
BillPermission
.
CREATE_BILL
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/neomap/reserve"
),
MapPermission
.
BUY_PLACES
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/neomap/notenoughslots"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);;
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/neomap/notenoughslots"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);
;
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/foodwave/list"
),
ShopPermission
.
SHOP_FOODWAVE
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/foodwave/listProducts"
),
ShopPermission
.
SHOP_FOODWAVE
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/foodwave/ThanksForOrderingFromCounter"
),
ShopPermission
.
SHOP_FOODWAVE
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/svm/success"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);
// landingpages are always "anyuser"
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/svm/notification"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/svm/pending"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/svm/notification"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/svm/pending"
),
UserPermission
.
ANYUSER
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/bill/list"
),
BillPermission
.
VIEW_OWN
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/bill/edit"
),
BillPermission
.
VIEW_OWN
).
setVisible
(
false
);
userkauppa
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/bill/showBill"
),
BillPermission
.
VIEW_OWN
).
setVisible
(
false
);
...
...
@@ -193,7 +194,7 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation
createuser
=
usermenu
.
addPage
(
null
,
null
);
createuser
.
setKey
(
"topnavi.createuser"
);
createuser
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/user/create"
),
UserPermission
.
CREATE_NEW
).
setVisible
(
false
);
MenuNavigation
userlectures
=
usermenu
.
addPage
(
null
,
null
);
userlectures
.
setKey
(
"topnavi.userlectures"
);
userlectures
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/lectures/viewLectures"
),
LecturePermission
.
VIEW
);
...
...
@@ -242,10 +243,19 @@ public class MenuBean implements MenuBeanLocal {
adminEventCards
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/shop/shopToUser"
),
null
).
setVisible
(
false
);
adminEventCards
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/shop/assocToUser"
),
null
).
setVisible
(
false
);
MenuNavigation
vips
=
adminuser
.
addPage
(
null
,
null
);
vips
.
setKey
(
"subnavi.vips"
);
vips
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/vip/viplist"
),
VipPermission
.
VIEW
);
vips
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/vip/create"
),
VipPermission
.
VIEW
).
setVisible
(
false
);
vips
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/vip/edit"
),
VipPermission
.
VIEW
).
setVisible
(
false
);
MenuNavigation
adminAssociation
=
adminmenu
.
addPage
(
null
,
null
);
adminAssociation
.
setKey
(
"topnavi.adminassoc"
);
adminAssociation
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/networkassociation/index"
),
NetworkAssociationPermission
.
CAN_ADMINISTER_ASSOCIATIONS
);
// shop
MenuNavigation
adminshop
=
adminmenu
.
addPage
(
null
,
null
);
adminshop
.
setKey
(
"topnavi.adminshop"
);
...
...
@@ -317,10 +327,8 @@ public class MenuBean implements MenuBeanLocal {
adminevent
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/eventorg/editEvent"
),
EventPermission
.
MANAGE_PROPERTIES
);
adminevent
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/eventorg/edit"
),
EventPermission
.
MANAGE_PROPERTIES
).
setVisible
(
false
);
adminevent
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/reports/basicStatistics"
),
EventPermission
.
VIEW_STATISTICS
);
MenuNavigation
tournamentsadm
=
adminmenu
.
addPage
(
null
,
null
);
tournamentsadm
.
setKey
(
"tournaments.menutitle"
);
...
...
@@ -332,20 +340,17 @@ public class MenuBean implements MenuBeanLocal {
tournamentsadm
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/tournaments/admin/delete"
),
TournamentPermission
.
MANAGE_ALL
).
setVisible
(
false
);
tournamentsadm
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/tournaments/admin/editrules"
),
TournamentPermission
.
MANAGE_ALL
).
setVisible
(
false
);
MenuNavigation
adminlectures
=
adminmenu
.
addPage
(
null
,
null
);
adminlectures
.
setKey
(
"topnavi.adminlectures"
);
adminlectures
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/lectureadmin/manageLectureGroups"
),
LecturePermission
.
MANAGE
);
adminlectures
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/lectureadmin/lectureParticipants"
),
LecturePermission
.
MANAGE
);
adminlectures
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/lectureadmin/manageLectures"
),
LecturePermission
.
MANAGE
).
setVisible
(
false
);
adminlectures
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/lectureadmin/manageParticipants"
),
LecturePermission
.
MANAGE
).
setVisible
(
false
);
MenuNavigation
infoviews
=
adminmenu
.
addPage
(
null
,
null
);
infoviews
.
setKey
(
"topnavi.infoviews"
);
infoviews
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/admin/adduser/index"
),
TerminalPermission
.
INFO
);
MenuNavigation
infonavi
=
infoviews
.
addPage
(
null
,
null
);
infonavi
.
setKey
(
"subnavi.info"
);
infonavi
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/info/index"
),
TerminalPermission
.
INFO
);
...
...
@@ -514,7 +519,7 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation
foodwaveTopmenu
=
usernavi
.
addPage
(
null
,
null
);
foodwaveTopmenu
.
setKey
(
"topnavi.foodwave"
);
foodwaveTopmenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/foodwave/list"
),
ShopPermission
.
SHOP_FOODWAVE
);
// foodwaveTopmenu.addPage(menuitemfacade.findOrCreate("/foodwave/listTemplates"),
// ShopPermission.SHOP_FOODWAVE);
foodwaveTopmenu
.
addPage
(
menuitemfacade
.
findOrCreate
(
"/foodwave/listProducts"
),
ShopPermission
.
SHOP_FOODWAVE
).
setVisible
(
false
);
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/VipBean.java
View file @
f54af4f
...
...
@@ -2,9 +2,14 @@ package fi.codecrew.moya.beans;
import
fi.codecrew.moya.enums.apps.VipPermission
;
import
fi.codecrew.moya.facade.VipFacade
;
import
fi.codecrew.moya.facade.VipProductDeliveryFacade
;
import
fi.codecrew.moya.facade.VipProductFacade
;
import
fi.codecrew.moya.model.Vip
;
import
fi.codecrew.moya.model.VipProduct
;
import
fi.codecrew.moya.model.VipProductDelivery
;
import
fi.codecrew.moya.utilities.SearchQuery
;
import
fi.codecrew.moya.utilities.SearchResult
;
import
fi.codecrew.moya.utilities.jpa.GenericFacade
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -15,6 +20,7 @@ import javax.ejb.EJB;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -39,6 +45,10 @@ public class VipBean implements VipBeanLocal {
@EJB
private
EventBeanLocal
eventbean
;
@EJB
private
VipProductFacade
vipProductFacade
;
@EJB
private
VipProductDeliveryFacade
vpdFacade
;
@Override
@RolesAllowed
({
VipPermission
.
S_VIEW
})
...
...
@@ -62,4 +72,66 @@ public class VipBean implements VipBeanLocal {
public
Vip
find
(
Integer
id
)
{
return
vipFacade
.
find
(
id
);
}
// @Override
// public SearchResult<Vip> search(SearchQuery sq) {
// // TODO Auto-generated method stub
// return null;
// }
@Override
public
Vip
createProduct
(
VipProduct
l
)
{
Vip
vip
=
vipFacade
.
reload
(
l
.
getVip
());
l
.
setVip
(
vip
);
if
(!
vip
.
getProducts
().
contains
(
l
))
vip
.
getProducts
().
add
(
0
,
l
);
vipProductFacade
.
create
(
l
);
return
vip
;
}
@Override
public
SearchResult
<
Vip
>
search
(
SearchQuery
sq
)
{
// TODO Auto-generated method stub
return
null
;
}
@Override
public
Vip
save
(
Vip
vip
)
{
return
vipFacade
.
merge
(
vip
);
}
@Override
public
Vip
saveProduct
(
VipProduct
prod
)
{
VipProduct
ret
=
vipProductFacade
.
merge
(
prod
);
return
ret
.
getVip
();
}
@Override
public
Vip
deleteProduct
(
VipProduct
l
)
{
l
=
vipProductFacade
.
reload
(
l
);
Vip
vip
=
l
.
getVip
();
vip
.
getProducts
().
remove
(
l
);
vipProductFacade
.
remove
(
l
);
return
vip
;
}
@Override
public
VipProductDelivery
createDelivery
(
VipProduct
prod
,
BigDecimal
quantity
,
String
notes
)
{
prod
=
vipProductFacade
.
reload
(
prod
);
VipProductDelivery
vpd
=
new
VipProductDelivery
();
vpd
.
setVipProduct
(
prod
);
vpd
.
setDeliverer
(
permbean
.
getCurrentUser
());
vpd
.
setNotes
(
notes
);
vpd
.
setDeliveryTime
(
new
Date
());
vpd
.
setQuantity
(
quantity
);
vpdFacade
.
create
(
vpd
);
prod
.
getDeliveries
().
add
(
vpd
);
return
vpd
;
}
}
code/moya-beans/ejbModule/fi/codecrew/moya/facade/VipProductDeliveryFacade.java
0 → 100644
View file @
f54af4f
package
fi
.
codecrew
.
moya
.
facade
;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
import
fi.codecrew.moya.model.VipProduct
;
import
fi.codecrew.moya.model.VipProductDelivery
;
@Stateless
@LocalBean
public
class
VipProductDeliveryFacade
extends
IntegerPkGenericFacade
<
VipProductDelivery
>
{
public
VipProductDeliveryFacade
()
{
super
(
VipProductDelivery
.
class
);
}
}
code/moya-beans/ejbModule/fi/codecrew/moya/facade/VipProductFacade.java
0 → 100644
View file @
f54af4f
package
fi
.
codecrew
.
moya
.
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.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.model.LanEvent
;
import
fi.codecrew.moya.model.Vip
;
import
fi.codecrew.moya.model.VipProduct
;
import
fi.codecrew.moya.model.Vip_
;
@Stateless
@LocalBean
public
class
VipProductFacade
extends
IntegerPkGenericFacade
<
VipProduct
>
{
public
VipProductFacade
()
{
super
(
VipProduct
.
class
);
}
}
code/moya-database/src/main/java/fi/codecrew/moya/model/Vip.java
View file @
f54af4f
...
...
@@ -82,6 +82,16 @@ public class Vip extends GenericEntity {
return
ret
;
}
public
String
getSearchableProductnames
()
{
StringBuilder
sb
=
new
StringBuilder
();
for
(
VipProduct
p
:
products
)
{
sb
.
append
(
p
.
getProductName
());
sb
.
append
(
" "
);
}
return
sb
.
toString
();
}
public
String
getDescription
()
{
return
description
;
}
...
...
code/moya-database/src/main/java/fi/codecrew/moya/model/VipProduct.java
View file @
f54af4f
...
...
@@ -45,6 +45,15 @@ public class VipProduct extends GenericEntity {
@OneToMany
(
mappedBy
=
"vipProduct"
)
private
List
<
VipProductDelivery
>
deliveries
=
new
ArrayList
<>();
public
VipProduct
()
{
super
();
}
public
VipProduct
(
Vip
v
)
{
this
();
this
.
vip
=
v
;
}
/**
* Returns name of the product. If @Field product is empty, use @Field name
*
...
...
@@ -53,7 +62,7 @@ public class VipProduct extends GenericEntity {
@Transient
public
String
getProductName
()
{
String
ret
=
name
;
if
(
product
=
=
null
)
{
if
(
product
!
=
null
)
{
ret
=
product
.
getName
();
}
return
ret
;
...
...
code/moya-web/WebContent/WEB-INF/faces-config.xml
View file @
f54af4f
...
...
@@ -9,10 +9,14 @@
<var>
i18n
</var>
</resource-bundle>
<message-bundle>
fi.codecrew.moya.resources.i18n
</message-bundle>
<locale-config>
<locale-config>
<default-locale>
fi
</default-locale>
<supported-locale>
en
</supported-locale>
</locale-config>
<action-listener>
org.primefaces.application.DialogActionListener
</action-listener>
<navigation-handler>
org.primefaces.application.DialogNavigationHandler
</navigation-handler>
<view-handler>
org.primefaces.application.DialogViewHandler
</view-handler>
</application>
<!-- <navigation-rule> -->
...
...
code/moya-web/WebContent/vip/create.xhtml
View file @
f54af4f
...
...
@@ -11,17 +11,18 @@
<ui:define
name=
"content"
>
<h:form
id=
"vipcreate"
>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
for=
"hostselect"
/>
<p:autoComplete
label=
"#{i18n['vip.host']}"
id=
"hostselect"
value=
"#{vipView.vip.host}"
completeMethod=
"#{vipView.usersearch}"
converter=
"#{eventUserConverter}"
var=
"usr"
itemValue=
"#{usr}"
itemLabel=
"#{usr.wholeName}"
/>
<h:outputLabel
value=
"#{i18n['vip.host']}"
for=
"hostselect"
/>
<p:autoComplete
id=
"hostselect"
value=
"#{vipView.vip.host}"
completeMethod=
"#{vipView.usersearch}"
converter=
"#{eventUserConverter}"
var=
"usr"
itemValue=
"#{usr}"
itemLabel=
"#{usr.wholeName}"
/>
</h:panelGrid>
<p:inputTextarea
cols=
"50"
rows=
"3"
value=
"#{vipView.vip.description}"
/>
<br
/>
<h:outputLabel
for=
"shortdescr"
value=
"#{i18n['vip.shortdescr']}"
/>
<p:inputTextarea
id=
"shortdescr"
cols=
"50"
rows=
"3"
value=
"#{vipView.vip.shortdescr}"
/>
<p:inputTextarea
cols=
"50"
rows=
"6"
value=
"#{vipView.vip.description}"
/>
<br
/>
<h:outputLabel
for=
"description"
value=
"#{i18n['vip.description']}"
/>
<p:inputTextarea
id=
"description"
cols=
"50"
rows=
"6"
value=
"#{vipView.vip.description}"
/>
</h:panelGrid>
<p:commandButton
action=
"#{vipView.create()}"
value=
"#{i18n['vip.create']}"
/>
</h:form>
...
...
code/moya-web/WebContent/vip/deliver.xhtml
0 → 100644
View file @
f54af4f
<?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:ui=
"http://java.sun.com/jsf/facelets"
xmlns:p=
"http://primefaces.org/ui"
>
<h:head>
</h:head>
<h:body>
<!-- p:panel here because of http://forum.primefaces.org/viewtopic.php?f=3&t=37866 -->
<p:panel>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
value=
"#{i18n['vip.host']}"
for=
"host"
/>
<h:outputText
id=
"host"
value=
"#{vipDeliverView.vip.host.wholeName}"
/>
<h:outputLabel
for=
"description"
value=
"#{i18n['vip.description']}"
/>
<h:outputText
id=
"description"
value=
"#{vipDeliverView.vip.description}"
/>
</h:panelGrid>
<h:form>
<p:dataTable
value=
"#{vipDeliverView.products}"
var=
"wra"
>
<p:column
headerText=
"#{i18n['vipProduct.name']}"
>
<h:outputText
value=
"#{wra.product.productName}"
/>
</p:column>
<p:column
headerText=
"#{i18n['vipProduct.quantity']}"
>
<h:outputText
value=
"#{wra.product.quantity}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"3"
/>
</h:outputText>
</p:column>
<p:column
headerText=
"#{i18n['vipProduct.delivered']}"
>
<h:outputText
value=
"#{wra.product.delivered}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"3"
/>
</h:outputText>
</p:column>
<p:column
headerText=
"#{i18n['vipProduct.deliver']}"
>
<h:inputText
size=
"7"
value=
"#{wra.deliver}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"2"
/>
</h:inputText>
</p:column>
</p:dataTable>
<h:outputText
value=
"#{i18n['vipProduct.deliverNotes']}"
/>
<p:inputTextarea
cols=
"40"
rows=
"3"
value=
"#{vipDeliverView.notes}"
/>
<br
/>
<p:commandButton
action=
"#{vipDeliverView.deliverProducts}"
value=
"#{i18n['vipProduct.deliver']}"
/>
</h:form>
</p:panel>
</h:body>
</html>
\ No newline at end of file
code/moya-web/WebContent/vip/edit.xhtml
View file @
f54af4f
...
...
@@ -14,54 +14,80 @@
<h:form
id=
"vipcreate"
>
<h:panelGrid
columns=
"2"
>
<h:outputLabel
for=
"hostselect"
/>
<p:autoComplete
label=
"#{i18n['vip.host']}"
id=
"hostselect"
value=
"#{vipView.vip.host}"
completeMethod=
"#{vipView.usersearch}"
converter=
"#{eventUserConverter}"
var=
"usr"
itemValue=
"#{usr}"
itemLabel=
"#{usr.wholeName}"
/>
<h:outputLabel
value=
"#{i18n['vip.host']}"
for=
"hostselect"
/>
<p:autoComplete
id=
"hostselect"
value=
"#{vipView.vip.host}"
completeMethod=
"#{vipView.usersearch}"
converter=
"#{eventUserConverter}"
var=
"usr"
itemValue=
"#{usr}"
itemLabel=
"#{usr.wholeName}"
/>
<h:outputLabel
for=
"shortdescr"
value=
"#{i18n['vip.shortdescr']}"
/>
<p:inputTextarea
id=
"shortdescr"
cols=
"50"
rows=
"3"
value=
"#{vipView.vip.shortdescr}"
/>
<h:outputLabel
for=
"description"
value=
"#{i18n['vip.description']}"
/>
<p:inputTextarea
id=
"description"
cols=
"50"
rows=
"6"
value=
"#{vipView.vip.description}"
/>
</h:panelGrid>
<p:inputTextarea
cols=
"50"
rows=
"3"
value=
"#{vipView.vip.description}"
/>
<br
/>
<p:inputTextarea
cols=
"50"
rows=
"6"
value=
"#{vipView.vip.description}"
/>
<br
/>
<p:commandButton
action=
"#{vipView.create()}"
value=
"#{i18n['vip.save']}"
/>
<p:dataTable
var=
"prod"
value=
"#{vipView.vipProducts}"
>
<p:commandButton
action=
"#{vipView.save()}"
value=
"#{i18n['vip.save']}"
/>
<br
/>
</h:form>
<br
/>
<h:form>
<p:dataTable
editable=
"true"
styleClass=
"bordertable"
id=
"vipProdList"
var=
"prod"
value=
"#{vipView.vipProducts}"
>
<p:ajax
event=
"rowEdit"
listener=
"#{vipView.productRowEdit}"
/>
<p:ajax
event=
"rowEditCancel"
listener=
"#{vipView.productRowEditCancel}"
/>
<p:column>
<p:cellEditor>
<p:column
headerText=
"#{i18n['vipProduct.name']}"
>
<ui:fragment
rendered=
"#{empty prod.id}"
>
<p:inputText
value=
"#{prod.name}"
/>
<br
/>
<p:selectOneMenu
value=
"#{prod.product}"
converter=
"#{productConverter}"
>
<f:selectItem
itemLabel=
"---"
itemValue=
"0"
/>
<f:selectItems
value=
"#{vipView.eventProducts}"
var=
"p"
itemLabel=
"#{p.name}"
/>
</p:selectOneMenu>
</ui:fragment>
<p:cellEditor
rendered=
"#{not empty prod.id}"
>
<f:facet
name=
"output"
>
<h:outputText
value=
"#{prod.productName}"
/>
</f:facet>
<f:facet
name=
"input"
>
<p:inputText
value=
"#{prod.name}"
/>
<br
/>
<p:selectOneMenu
value=
"#{prod.product}"
var=
"p"
converter=
"#{productConverter}"
>
<p:selectOneMenu
value=
"#{prod.product}"
converter=
"#{productConverter}"
>
<f:selectItem
itemLabel=
"---"
itemValue=
"0"
/>
<f:selectItems
value=
"#{vipView.eventProducts}"
itemValue
=
"#{p.name}"
/>
<f:selectItems
value=
"#{vipView.eventProducts}"
var=
"p"
itemLabel
=
"#{p.name}"
/>
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<p:column>
<p:cellEditor>
<p:column
style=
"width: 120px;"
headerText=
"#{i18n['vipProduct.quantity']}"
>
<h:inputText
size=
"15"
rendered=
"#{empty prod.id}"
value=
"#{prod.quantity}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"3"
/>
</h:inputText>
<p:cellEditor
rendered=
"#{not empty prod.id}"
>
<f:facet
name=
"output"
>
<h:outputText
value=
"#{prod.quantity}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"3"
/>
</h:outputText>
</f:facet>
<f:facet
name=
"input"
>
<h:outputText
value=
"#{prod.quantity}"
/>
<h:inputText
size=
"15"
value=
"#{prod.quantity}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"3"
/>
</h:inputText>
</f:facet>
</p:cellEditor>
</p:column>
<p:column
style=
"width:32px"
>
<p:rowEditor
/>
<p:column
headerText=
"#{i18n['vipProduct.delivered']}"
>
<h:outputText
rendered=
"#{not empty prod.id}"
value=
"#{prod.delivered}"
>
<f:convertNumber
minFractionDigits=
"0"
maxFractionDigits=
"3"
/>
</h:outputText>
</p:column>
<p:column
style=
"width: 90px;"
>
<p:rowEditor
rendered=
"#{not empty prod.id}"
/>
<p:commandButton
action=
"#{vipView.createProduct()}"
update=
"vipProdList"
value=
"#{i18n['vipProduct.create']}"
rendered=
"#{empty prod.id}"
/>
</p:column>
<p:column
style=
"width: 35px;"
>
<p:commandButton
rendered=
"#{not empty prod.id}"
onclick=
"return confirm('#{i18n['vipProduct.deleteProductConfirm']}')"
action=
"#{vipView.deleteProduct()}"
update=
"vipProdList"
icon=
"ui-icon-close"
/>
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
...
...
code/moya-web/WebContent/vip/viplist.xhtml
View file @
f54af4f
...
...
@@ -11,7 +11,10 @@
<ui:define
name=
"content"
>
<h:form>
<h:link
rendered=
"#{vipListView.canCreate()}"
outcome=
"/vip/create"
value=
"#{i18n['vip.createNew']}"
/>
<br
/>
<h:form
id=
"vipform"
>
<p:dataTable
id=
"vip"
value=
"#{vipListView.viplist}"
widgetVar=
"viplist"
styleClass=
"moya_datatable4"
var=
"vip"
filteredValue=
"#{vipListView.filteredVips}"
>
<f:facet
name=
"header"
>
<p:outputPanel>
...
...
@@ -23,10 +26,13 @@
<h:outputText
value=
"#{vip.host.wholeName}"
/>
</p:column>
<p:column
headerText=
"#{i18n['vip.description']}"
filterBy=
"#{vip.description}"
filterMatchMode=
"contains"
>
<h:outputText
value=
"#{vip.shortDisplayDescr}"
title=
"#{vip.description}"
/>
<h:outputText
id=
"vipdescr"
value=
"#{vip.shortDisplayDescr}"
title=
"#{vip.description}"
/>
<p:tooltip
id=
"toolTipVipdescr"
for=
"vipdescr"
value=
"#{vip.description}"
/>
</p:column>
<p:column
headerText=
"#{i18n['vip.products']} | #{i18n['vip.productQuantity']} | #{i18n['vip.productDelivered']}"
>
<h:dataTable
border=
"0"
var=
"prod"
value=
"#{vip.products}"
>
<p:column
filterBy=
"#{vip.searchableProductnames}"
filterMatchMode=
"contains"
headerText=
"#{i18n['vip.products']} | #{i18n['vip.productQuantity']} | #{i18n['vip.productDelivered']}"
>
<h:dataTable
border=
"0"
var=
"prod"
value=
"#{vip.products}"
>
<p:column>
<h:outputText
title=
"#{prod.notes}"
value=
"#{prod.productName}"
/>
</p:column>
...
...
@@ -42,6 +48,12 @@
</p:column>
</h:dataTable>
</p:column>
<p:column>
<p:commandButton
id=
"delivebtn"
rendered=
"#{not empty vip.id}"
value=
"#{i18n['vip.deliver']}"
actionListener=
"#{vipListView.deliverDialog}"
>
<p:ajax
event=
"dialogReturn"
listener=
"#{vipListView.updateViplist()}"
update=
"vip"
/>
</p:commandButton>
</p:column>
<p:column>
<h:link
outcome=
"/vip/edit"
value=
"#{i18n['vip.edit']}"
>
<f:param
name=
"id"
value=
"#{vip.id}"
/>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/GenericCDIView.java
View file @
f54af4f
...
...
@@ -40,7 +40,7 @@ public abstract class GenericCDIView implements Serializable {
private
static
final
long
serialVersionUID
=
-
4000065015178815761L
;
@Inject
pr
ivate
Conversation
conversation
;
pr
otected
Conversation
conversation
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
GenericCDIView
.
class
);
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/vip/VipDeliverView.java
0 → 100644
View file @
f54af4f
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
vip
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.inject.Named
;
import
org.primefaces.context.RequestContext
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.VipBeanLocal
;
import
fi.codecrew.moya.model.Vip
;
import
fi.codecrew.moya.model.VipProduct
;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
/**
* Created by jkj on 2015-01-11.
*/
@Named
@ConversationScoped
public
class
VipDeliverView
extends
GenericCDIView
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
List
<
VipProductWrapper
>
products
;
@EJB
private
VipBeanLocal
vipbean
;
public
List
<
VipProductWrapper
>
getProducts
()
{
if
(
products
==
null
&&
vip
!=
null
)
{
products
=
VipProductWrapper
.
wrap
(
vip
.
getProducts
());
}
return
products
;
}
private
Vip
vip
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
VipDeliverView
.
class
);
private
String
notes
;
public
Vip
getVip
()
{
return
vip
;
}
public
void
deliverProducts
()
{
for
(
VipProductWrapper
p
:
products
)
{
logger
.
info
(
"Product {}, count: {}"
,
p
.
getProduct
().
getProductName
(),
p
.
getDeliver
());
if
(
p
.
getDeliver
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
vipbean
.
createDelivery
(
p
.
getProduct
(),
p
.
getDeliver
(),
notes
);
}
}
notes
=
null
;
vip
=
null
;
products
=
null
;
RequestContext
.
getCurrentInstance
().
closeDialog
(
null
);
}
public
void
setVip
(
Vip
vip
)
{
this
.
vip
=
vip
;
products
=
null
;
}
public
String
getNotes
()
{
return
notes
;
}
public
void
setNotes
(
String
notes
)
{
this
.
notes
=
notes
;
}
public
static
class
VipProductWrapper
{
private
final
VipProduct
product
;
private
BigDecimal
deliver
;
public
VipProductWrapper
(
VipProduct
prod
)
{
this
.
product
=
prod
;
setDeliver
(
product
.
getQuantity
().
subtract
(
product
.
getDelivered
()));
}
public
static
List
<
VipProductWrapper
>
wrap
(
List
<
VipProduct
>
products
)
{
List
<
VipProductWrapper
>
ret
=
new
ArrayList
<>();
for
(
VipProduct
p
:
products
)
{
ret
.
add
(
new
VipProductWrapper
(
p
));
}
return
ret
;
}
public
VipProduct
getProduct
()
{
return
product
;
}
public
BigDecimal
getDeliver
()
{
return
deliver
;
}
public
void
setDeliver
(
BigDecimal
deliver
)
{
this
.
deliver
=
deliver
;
}
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/vip/VipListView.java
View file @
f54af4f
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
vip
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.faces.model.ListDataModel
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
org.primefaces.context.RequestContext
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.VipBeanLocal
;
import
fi.codecrew.moya.enums.apps.VipPermission
;
import
fi.codecrew.moya.model.Vip
;
...
...
@@ -27,13 +35,42 @@ public class VipListView extends PaginationView<Vip> {
private
ListDataModel
<
Vip
>
viplist
;
private
List
<
Vip
>
filteredVips
;
@Inject
private
VipDeliverView
deliverView
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
VipListView
.
class
);
public
void
initView
()
{
if
(
super
.
requirePermissions
(
VipPermission
.
VIEW
)
&&
viplist
==
null
)
{
viplist
=
new
ListDataModel
<
Vip
>(
vipBean
.
getAvailableVips
());
filteredVips
=
null
;
super
.
beginConversation
();
}
}
public
boolean
canCreate
()
{
return
super
.
hasPermission
(
VipPermission
.
EDIT
);
}
public
void
updateViplist
()
{
viplist
=
null
;
initView
();
}
public
void
deliverDialog
()
{
getDeliverView
().
setVip
(
viplist
.
getRowData
());
logger
.
info
(
"Set vip in deliverView to {}"
,
deliverView
.
getVip
());
Map
<
String
,
Object
>
options
=
new
HashMap
<>();
options
.
put
(
"modal"
,
true
);
Map
<
String
,
List
<
String
>>
params
=
null
;
if
(
conversation
.
getId
()
!=
null
)
{
params
=
new
HashMap
<>();
params
.
put
(
"cid"
,
Arrays
.
asList
(
conversation
.
getId
()));
}
RequestContext
.
getCurrentInstance
().
openDialog
(
"/vip/deliver"
,
options
,
params
);
}
public
ListDataModel
<
Vip
>
getViplist
()
{
return
viplist
;
}
...
...
@@ -50,4 +87,12 @@ public class VipListView extends PaginationView<Vip> {
this
.
filteredVips
=
filteredVips
;
}
public
VipDeliverView
getDeliverView
()
{
return
deliverView
;
}
public
void
setDeliverView
(
VipDeliverView
deliverView
)
{
this
.
deliverView
=
deliverView
;
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/vip/VipView.java
View file @
f54af4f
package
fi
.
codecrew
.
moya
.
web
.
cdiview
.
vip
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.enterprise.context.RequestScoped
;
import
javax.faces.model.ListDataModel
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
org.slf4j.Logger
;
...
...
@@ -42,6 +43,7 @@ public class VipView extends GenericCDIView {
private
Vip
vip
;
private
Integer
id
;
@EJB
private
UserBeanLocal
userbean
;
@EJB
...
...
@@ -59,6 +61,19 @@ public class VipView extends GenericCDIView {
}
}
public
void
createProduct
()
{
VipProduct
l
=
vipProducts
.
getRowData
();
vip
=
vipBean
.
createProduct
(
l
);
vipProducts
=
null
;
}
public
void
deleteProduct
()
{
VipProduct
l
=
vipProducts
.
getRowData
();
logger
.
info
(
"Deleting product {}"
,
l
);
vip
=
vipBean
.
deleteProduct
(
l
);
vipProducts
=
null
;
}
public
List
<
Product
>
getEventProducts
()
{
return
productBean
.
getProducts
();
}
...
...
@@ -67,7 +82,10 @@ public class VipView extends GenericCDIView {
public
ListDataModel
<
VipProduct
>
getVipProducts
()
{
if
(
vipProducts
==
null
&&
vip
!=
null
)
{
vipProducts
=
new
ListDataModel
<>(
vip
.
getProducts
());
ArrayList
<
VipProduct
>
li
=
new
ArrayList
<>();
li
.
add
(
new
VipProduct
(
vip
));
li
.
addAll
(
vip
.
getProducts
());
vipProducts
=
new
ListDataModel
<>(
li
);
}
return
vipProducts
;
}
...
...
@@ -81,7 +99,8 @@ public class VipView extends GenericCDIView {
}
public
void
productRowEdit
()
{
logger
.
warn
(
"Editing product: {}"
,
getVipProducts
().
getRowData
());
vip
=
vipBean
.
saveProduct
(
getVipProducts
().
getRowData
());
// logger.warn("Editing product: {}", getVipProducts().getRowData());
}
...
...
@@ -90,6 +109,11 @@ public class VipView extends GenericCDIView {
}
public
void
save
()
{
vip
=
vipBean
.
save
(
vip
);
vipProducts
=
null
;
}
public
List
<
EventUser
>
usersearch
(
String
search
)
{
UserSearchQuery
usq
=
new
UserSearchQuery
();
usq
.
setSearch
(
search
);
...
...
@@ -101,7 +125,7 @@ public class VipView extends GenericCDIView {
public
String
create
()
{
vipBean
.
create
(
vip
);
return
"/vip/edit
?faces-redirect=true
"
;
return
"/vip/edit"
;
}
public
Vip
getVip
()
{
...
...
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
View file @
f54af4f
...
...
@@ -27,6 +27,8 @@ adduser.update = Update profile picture
adduser.welcome
=
Welcome
adduser.welcometext
=
Here you can add new user or update your current user profile image. Please select desired action below.
barcodeReader.readBarcode
=
Lue viivakoodi
bill.billAmount
=
Tilauksen summa (sis. alv)
bill.billNumber
=
Tilausnumero
bill.cancel
=
Cancel bill
...
...
@@ -141,6 +143,7 @@ error.contact = If this happens again, contact Info with the following code:
error.error
=
You have encountered an error.
etickets.eticketcode
=
Lippu
etickets.mailSended
=
Lippu l
\u
00E4hetetty s
\u
00E4hk
\u
00F6postiisi
etickets.place
=
Paikka
etickets.placeinfo
=
Paikkatiedot
etickets.placemap
=
Paikat kartalla
...
...
@@ -215,24 +218,33 @@ global.save = Save
httpsession.creationTime
=
Created
incomingFlow.count
=
M
\u
00E4
\u
00E4r
\u
00E4
incomingFlow.leftCount
=
Noutamatta
incomingView.attach
=
Liit
\u
00E4
incomingView.attachDialogTitle
=
Liit
\u
00E4 koodi k
\u
00E4ytt
\u
00E4j
\u
00E4
\u
00E4n
incomingView.cancel
=
Peruuta
incomingflow.allGiven
=
Merkitty {0} lippu(a) annetuksi.
incomingflow.alreadyShowingUser.message
=
Piipattu k
\u
00E4ytt
\u
00E4j
\u
00E4 on jo n
\u
00E4kyviss
\u
00E4
incomingflow.alreadyShowingUser.title
=
Valmiiksi valittu
incomingflow.cardCodes
=
Kortin koodit
incomingflow.cardfiling.label
=
Card filing:
incomingflow.codeattached.message
=
Piipattu koodi liitetty n
\u
00E4ytett
\u
00E4v
\u
00E4
\u
00E4n korttiin
incomingflow.codeattached.title
=
Koodi liittetty
incomingflow.giveplace
=
Merkitse annetuksi
incomingflow.groupmemberships
=
Paikkakoodit
incomingflow.invalidbarcode.message
=
Viivakoodilla ei l
\u
00F6ytynyt mit
\u
00E4
\u
00E4n
incomingflow.invalidbarcode.title
=
virheellinen koodi
incomingflow.printedCard
=
Kortti
incomingflow.usereditor
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
incomingflow.usereditor.info
=
Tiedot
incomingflow.usereditor.picture
=
Kuvanotto
incomingflow.alreadyShowingUser.title
=
Valmiiksi valittu
incomingflow.cardCodes
=
Kortin koodit
incomingflow.cardfiling.label
=
Card filing:
incomingflow.changereader
=
Vaihda / valitse lukija
incomingflow.codeattached.message
=
Piipattu koodi liitetty n
\u
00E4ytett
\u
00E4v
\u
00E4
\u
00E4n korttiin
incomingflow.codeattached.title
=
Koodi liittetty
incomingflow.giveplace
=
Merkitse annetuksi
incomingflow.groupmemberships
=
Paikkakoodit
incomingflow.invalidbarcode.message
=
Viivakoodilla ei l
\u
00F6ytynyt mit
\u
00E4
\u
00E4n
incomingflow.invalidbarcode.title
=
virheellinen koodi
incomingflow.markEverythingGiven
=
Anna kaikki antamattomat tuotteet
incomingflow.placesummary
=
Paikkayhteenveto
incomingflow.printedCard
=
Kortti
incomingflow.usereditor
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
incomingflow.usereditor.info
=
Tiedot
incomingflow.usereditor.picture
=
Kuvanotto
infoview.multisearch
=
K
\u
00E4ytt
\u
00E4j
\u
00E4haku
invite.permissionDenied
=
Sinulla ei ole oikeutta luovuttaa paikkaa eteenp
\u
00E4in.
invite.userLoginSuccessfull
=
Kutsu vastaanotettu onnistuneesti
...
...
@@ -381,6 +393,7 @@ productshop.plusOne = +1
productshop.plusTen
=
+10
reader.autopoll
=
Jatkuva lukijan seuraaminen
reader.noReader
=
Ei valittua lukijaa
refresh
=
P
\u
00E4ivit
\u
00E4
...
...
@@ -410,7 +423,9 @@ shop.unitdiscount = Alennus
submenu.NotImplementedYet
=
Not implemented
submenu.admin.adduser
=
K
\u
00E4ytt
\u
00E4j
\u
00E4nlis
\u
00E4ys
submenu.admin.adduser.index
=
K
\u
00E4ytt
\u
00E4j
\u
00E4nlis
\u
00E4ys
submenu.admin.incoming.index
=
Sis
\u
00E4
\u
00E4ntulo
submenu.frontpage
=
Frontpage
submenu.info.cardlessIncoming
=
Sis
\u
00E4
\u
00E4ntulo
submenu.info.foodwave.foodwaveshop
=
Ruokakauppa
submenu.info.incoming
=
Laaja sis
\u
00E4
\u
00E4ntulon
\u
00E4kym
\u
00E4
submenu.info.index
=
Infon
\u
00E4kym
\u
00E4
...
...
@@ -426,6 +441,7 @@ submenu.shop.createBill = Osta lippuja
subnavi.cards
=
\u0009\u0009
subnavi.info
=
Info
subnavi.vips
=
Vippilista
success
=
Onnistui
...
...
@@ -447,6 +463,7 @@ user.imageUpload.imageNotFound = Select image to upload
user.info
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
user.invite.placeInvite.header
=
Liit
\u
00E4 paikka itsellesi
user.meta.box.title
=
Metadata
user.roles
=
Pakotetut roolit
user.saveUserSelectableRoles
=
Tallenna
user.shirt.L
=
Unisex L
user.shirt.LadyL
=
Ladyfit L
...
...
@@ -470,21 +487,24 @@ usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n
viewlectures.title
=
Kurssit ja luennot
vip.create
=
Luo
vip.createNew
=
Luo uusi
vip.deliver
=
Toimita
vip.description
=
Kuvaus
vip.edit
=
Muokkaa
vip.host
=
Is
\u
00E4nt
\u
00E4
vip.hostsName
=
Is
\u
00E4nt
\u
00E4
vip.productDelivered
=
Toimitettu
vip.productQuantity
=
Lkm
vip.products
=
Tuote
vip.save
=
Tallenna
vip.shortdescr
=
Lyhyt kuvaus
vipProduct.create
=
Lis
\u
00E4
\u
00E4
vipProduct.deliver
=
Toimita
vipProduct.deliverNotes
=
Huomiot
vipProduct.delivered
=
Toimitettu
vipProduct.name
=
Tuote
vipProduct.quantity
=
Lukum
\u
00E4
\u
00E4r
\u
00E4
yes
=
Kyll
\u
00E4
infoview.multisearch
=
K
\u
00E4ytt
\u
00E4j
\u
00E4haku
incomingflow.placesummary
=
Paikkayhteenveto
incomingFlow.leftCount
=
Noutamatta
incomingflow.markEverythingGiven
=
Anna kaikki antamattomat tuotteet
submenu.admin.incoming.index
=
Sis
\u
00E4
\u
00E4ntulo
submenu.admin.incoming.printCard
=
submenu.info.cardlessIncoming
=
Sis
\u
00E4
\u
00E4ntulo
incomingflow.changereader
=
Vaihda / valitse lukija
incomingFlow.count
=
M
\u
00E4
\u
00E4r
\u
00E4
user.birthday
=
user.confirmUserToEventAdding
=
user.invalidLoginCredentials
=
barcodeReader.readBarcode
=
Lue viivakoodi
incomingflow.allGiven
=
Merkitty {0} lippu(a) annetuksi.
reader.noReader
=
Ei valittua lukijaa
etickets.mailSended
=
Lippu l
\u
00E4hetetty s
\u
00E4hk
\u
00F6postiisi
user.roles
=
Pakotetut roolit
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
View file @
f54af4f
...
...
@@ -353,6 +353,7 @@ error.contact = If this happens again, contact Info with the following code:
error.error
=
You have encountered an error.
etickets.eticketcode
=
Ticket
etickets.mailSended
=
Ticket has been sended to your email
etickets.place
=
Place
etickets.placeinfo
=
Placeinfo
etickets.placemap
=
Places on map
...
...
@@ -535,33 +536,40 @@ imagefile.file = Imagefile
importuser.file
=
File
importuser.template
=
Template
incomingFlow.count
=
Count
incomingFlow.leftCount
=
Ungiven
incomingView.attach
=
Attach
incomingView.attachDialogTitle
=
Attach code to user
incomingView.cancel
=
Cancel
incomingflow.allGiven
=
Marked {0} tickets given.
incomingflow.alreadyShowingUser.message
=
We are already showing selected user
incomingflow.alreadyShowingUser.title
=
Already selected
incomingflow.barcode
=
Barcode
incomingflow.cardCodes
=
Barcodes in card
incomingflow.cardfiling.label
=
Card filing:
incomingflow.changereader
=
Select or Change Reader
incomingflow.codeattached.message
=
Code attached to current user's card
incomingflow.codeattached.title
=
Code attached
incomingflow.giveplace
=
Mark given
incomingflow.groupmemberships
=
Group memberships
incomingflow.invalidbarcode.message
=
Nothing found with barcode, you can now add it to the user
incomingflow.invalidbarcode.title
=
Invalid code
incomingflow.multisearch
=
Multisearch
incomingflow.printedCard
=
Card
incomingflow.search
=
Search
incomingflow.ungiveplace
=
Mark not given
incomingflow.userdetails
=
User details
incomingflow.usereditor
=
User
incomingflow.usereditor.info
=
User
incomingflow.usereditor.picture
=
Picturetake
incomingflow.alreadyShowingUser.title
=
Already selected
incomingflow.barcode
=
Barcode
incomingflow.cardCodes
=
Barcodes in card
incomingflow.cardfiling.label
=
Card filing:
incomingflow.changereader
=
Select or Change Reader
incomingflow.codeattached.message
=
Code attached to current user's card
incomingflow.codeattached.title
=
Code attached
incomingflow.giveplace
=
Mark given
incomingflow.groupmemberships
=
Group memberships
incomingflow.invalidbarcode.message
=
Nothing found with barcode, you can now add it to the user
incomingflow.invalidbarcode.title
=
Invalid code
incomingflow.markEverythingGiven
=
Give ewerything ungiven stuff
incomingflow.multisearch
=
Multisearch
incomingflow.placesummary
=
Placesummary
incomingflow.printedCard
=
Card
incomingflow.search
=
Search
incomingflow.ungiveplace
=
Mark not given
incomingflow.userdetails
=
User details
incomingflow.usereditor
=
User
incomingflow.usereditor.info
=
User
incomingflow.usereditor.picture
=
Picturetake
infoview.back
=
Back
infoview.computerplace
=
Computer places
infoview.multisearch
=
Usersearch
infoview.shop
=
Shop
inventory.product.info
=
Info
...
...
@@ -1074,6 +1082,7 @@ reader.description = Description
reader.edit
=
Edit
reader.identification
=
Identification
reader.name
=
Reader name
reader.noReader
=
No selected reader
reader.save
=
Save
reader.select
=
Select reader
reader.tag
=
Tag
...
...
@@ -1254,6 +1263,7 @@ submenu.foodwave.list = Foodwaves
submenu.foodwave.listTemplates
=
Food provides
submenu.help
=
Ticket help
submenu.index
=
Frontpage
submenu.info.cardlessIncoming
=
Incoming
submenu.info.foodwave.foodwaveshop
=
Foodshop
submenu.info.incoming
=
Extendet Incomingview
submenu.info.index
=
Infoview
...
...
@@ -1328,6 +1338,7 @@ subnavi.info = Info
subnavi.products
=
Products
subnavi.readers
=
Readers
subnavi.roles
=
Roles
subnavi.vips
=
VIP-list
success
=
Success
...
...
@@ -1598,6 +1609,7 @@ user.successfullySaved = Changes saved successfully
user.superadmin
=
Superadmin
user.thisIsCurrentImage
=
Current image
user.town
=
City
user.unauthenticated
=
Unauthenticated
user.uploadimage
=
Send image
user.userSelectableRoles
=
Select one
user.username
=
Username
...
...
@@ -1650,6 +1662,26 @@ viewexpired.title = Login expired. Please login again.
viewlectures.title
=
Courses and lectures
vip.create
=
Create
vip.createNew
=
Create new
vip.deliver
=
Deliver
vip.description
=
Description
vip.edit
=
Edit
vip.host
=
Host
vip.hostsName
=
Host
vip.productDelivered
=
Delivered
vip.productQuantity
=
Qty
vip.products
=
Product
vip.save
=
Save
vip.shortdescr
=
Short description
vipProduct.create
=
Create
vipProduct.deliver
=
Deliver
vipProduct.deliverNotes
=
Notes
vipProduct.delivered
=
Delivered
vipProduct.name
=
Product
vipProduct.quantity
=
Quantity
voting.allcompos.curEntries
=
# of entries
voting.allcompos.descri = Description
voting.allcompos.description
=
List of all compos and theirs information.
...
...
@@ -1693,12 +1725,3 @@ voting.create.voteEnd = Voting close
voting.create.voteStart
=
Voting start
yes
=
Yes
infoview.multisearch
=
Usersearch
incomingflow.placesummary
=
Placesummary
incomingFlow.leftCount
=
Ungiven
incomingflow.markEverythingGiven
=
Give ewerything ungiven stuff
submenu.info.cardlessIncoming
=
Incoming
incomingFlow.count
=
Count
incomingflow.allGiven
=
Marked {0} tickets given.
reader.noReader
=
No selected reader
etickets.mailSended
=
Ticket has been sended to your email
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
View file @
f54af4f
...
...
@@ -4,6 +4,7 @@
acc_line.eventuser
=
Asiakas
acc_line.nick
=
Nimimerkki
acc_line.place
=
Paikka
acc_line.product
=
Tuote
acc_line.quantity
=
M
\u
00E4
\u
00E4r
\u
00E4
acc_line.time
=
Ostoaika
...
...
@@ -354,6 +355,7 @@ error.contact = Jos t\u00E4m\u00E4 toistuu, ota seuraava koodi talteen ja ota yh
error.error
=
Olet kohdannut virheen.
etickets.eticketcode
=
Lippu
etickets.mailSended
=
Lippu l
\u
00E4hetetty s
\u
00E4hk
\u
00F6postiisi
etickets.place
=
Paikka
etickets.placeinfo
=
Paikkatiedot
etickets.placemap
=
Paikat kartalla
...
...
@@ -543,35 +545,42 @@ imagefile.file = Kuvatiedosto
importuser.file
=
Tiedosto
importuser.template
=
Malli
incomingFlow.count
=
M
\u
00E4
\u
00E4r
\u
00E4
incomingFlow.leftCount
=
Noutamatta
incomingView.attach
=
Liit
\u
00E4
incomingView.attachDialogTitle
=
Liit
\u
00E4 koodi k
\u
00E4ytt
\u
00E4j
\u
00E4
\u
00E4n
incomingView.cancel
=
Peruuta
incomingflow.allGiven
=
Merkitty {0} lippu(a) annetuksi.
incomingflow.alreadyShowingUser.message
=
Piipattu k
\u
00E4ytt
\u
00E4j
\u
00E4 on jo n
\u
00E4kyviss
\u
00E4
incomingflow.alreadyShowingUser.title
=
Valmiiksi valittu
incomingflow.barcode
=
Viivakoodi
incomingflow.cardCodes
=
Korttiin liitetyt koodit
incomingflow.cardfiling.label
=
Kortin kansiointi:
incomingflow.changereader
=
Vaihda / valitse lukija
incomingflow.codeattached.message
=
Piipattu koodi liitetty aktiiviseen k
\u
00E4ytt
\u
00E4j
\u
00E4
\u
00E4n
incomingflow.codeattached.title
=
Koodi liitetty
incomingflow.giveplace
=
Merkitse annetuksi
incomingflow.groupmemberships
=
Konepaikat sek
\u
00E4 liput
incomingflow.invalidbarcode.message
=
Piipatulla koodilla ei l
\u
00F6ytynyt mit
\u
00E4
\u
00E4n, voit lis
\u
00E4t
\u
00E4 koodin k
\u
00E4ytt
\u
00E4j
\u
00E4
\u
00E4n
incomingflow.invalidbarcode.title
=
Virheellinen koodi
incomingflow.multisearch
=
Monihaku
incomingflow.printedCard
=
Kortti
incomingflow.search
=
Etsi
incomingflow.ungiveplace
=
Ei olekkaan annettu
incomingflow.userdetails
=
K
\u
00E4ytt
\u
00E4j
\u
00E4n tiedot
incomingflow.usereditor
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
incomingflow.usereditor.info
=
K
\u
00E4vij
\u
00E4
incomingflow.usereditor.picture
=
Kuvanotto
incomingflow.alreadyShowingUser.title
=
Valmiiksi valittu
incomingflow.barcode
=
Viivakoodi
incomingflow.cardCodes
=
Korttiin liitetyt koodit
incomingflow.cardfiling.label
=
Kortin kansiointi:
incomingflow.changereader
=
Vaihda / valitse lukija
incomingflow.codeattached.message
=
Piipattu koodi liitetty aktiiviseen k
\u
00E4ytt
\u
00E4j
\u
00E4
\u
00E4n
incomingflow.codeattached.title
=
Koodi liitetty
incomingflow.giveplace
=
Merkitse annetuksi
incomingflow.groupmemberships
=
Konepaikat sek
\u
00E4 liput
incomingflow.invalidbarcode.message
=
Piipatulla koodilla ei l
\u
00F6ytynyt mit
\u
00E4
\u
00E4n, voit lis
\u
00E4t
\u
00E4 koodin k
\u
00E4ytt
\u
00E4j
\u
00E4
\u
00E4n
incomingflow.invalidbarcode.title
=
Virheellinen koodi
incomingflow.markEverythingGiven
=
Anna kaikki antamattomat tuotteet
incomingflow.multisearch
=
Monihaku
incomingflow.placesummary
=
Paikkayhteenveto
incomingflow.printedCard
=
Kortti
incomingflow.search
=
Etsi
incomingflow.ungiveplace
=
Ei olekkaan annettu
incomingflow.userdetails
=
K
\u
00E4ytt
\u
00E4j
\u
00E4n tiedot
incomingflow.usereditor
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
incomingflow.usereditor.info
=
K
\u
00E4vij
\u
00E4
incomingflow.usereditor.picture
=
Kuvanotto
index.title
=
Etusivu
infoview.back
=
Takaisin
infoview.computerplace
=
Tietokonepaikat
infoview.multisearch
=
K
\u
00E4ytt
\u
00E4j
\u
00E4haku
infoview.shop
=
Kauppa
inventory.product.info
=
Info
...
...
@@ -1059,6 +1068,7 @@ reader.description = Kuvaus
reader.edit
=
Muokkaa
reader.identification
=
Tunniste
reader.name
=
Lukijan nimi
reader.noReader
=
Ei valittua lukijaa
reader.save
=
Tallenna
reader.select
=
Valitse lukija
reader.tag
=
Tag
...
...
@@ -1234,6 +1244,7 @@ submenu.foodwave.list = Ruokatilaukset
submenu.frontpage
=
Etusivu
submenu.help
=
Lippuopas
submenu.index
=
Etusivu
submenu.info.cardlessIncoming
=
Sis
\u
00E4
\u
00E4ntulo
submenu.info.foodwave.foodwaveshop
=
Ruokakauppa
submenu.info.incoming
=
Laaja Sis
\u
00E4
\u
00E4ntulon
\u
00E4kym
\u
00E4
submenu.info.index
=
Infon
\u
00E4kym
\u
00E4
...
...
@@ -1311,6 +1322,7 @@ subnavi.info = Info
subnavi.products
=
Tuotteet
subnavi.readers
=
Lukijat
subnavi.roles
=
Roolit
subnavi.vips
=
Vippilista
success
=
Onnistui
...
...
@@ -1581,6 +1593,7 @@ user.successfullySaved = Tiedot tallennettu onnistuneesti
user.superadmin
=
Superadmin
user.thisIsCurrentImage
=
Nykyinen kuva
user.town
=
Kaupunki
user.unauthenticated
=
Kirjautumaton
user.uploadimage
=
L
\u
00E4het
\u
00E4 kuva
user.userSelectableRoles
=
Valitse yksi
user.username
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus
...
...
@@ -1632,6 +1645,26 @@ viewexpired.title = N\u00E4kym\u00E4 on vanhentunut
viewlectures.title
=
Kurssit ja luennot
vip.create
=
Luo
vip.createNew
=
Luo uusi
vip.deliver
=
Toimita
vip.description
=
Kuvaus
vip.edit
=
Muokkaa
vip.host
=
Is
\u
00E4nt
\u
00E4
vip.hostsName
=
Is
\u
00E4nt
\u
00E4
vip.productDelivered
=
Toimitettu
vip.productQuantity
=
Lkm
vip.products
=
Tuote
vip.save
=
Tallenna
vip.shortdescr
=
Lyhyt kuvaus
vipProduct.create
=
Lis
\u
00E4
\u
00E4
vipProduct.deliver
=
Toimita
vipProduct.deliverNotes
=
Huomiot
vipProduct.delivered
=
Toimitettu
vipProduct.name
=
Tuote
vipProduct.quantity
=
Lukum
\u
00E4
\u
00E4r
\u
00E4
voting.allcompos.curEntries
=
Entryja
voting.allcompos.descri
=
Kuvaus
voting.allcompos.description
=
Compojen informaatiot.
...
...
@@ -1675,14 +1708,3 @@ voting.create.voteEnd = \u00C4\u00E4nestys kiinni
voting.create.voteStart
=
\u
00C4
\u
00E4nestys auki
yes
=
Kyll
\u
00E4
acc_line.place
=
Paikka
infoview.multisearch
=
K
\u
00E4ytt
\u
00E4j
\u
00E4haku
incomingflow.placesummary
=
Paikkayhteenveto
incomingFlow.leftCount
=
Noutamatta
user.unauthenticated
=
incomingflow.markEverythingGiven
=
Anna kaikki antamattomat tuotteet
submenu.info.cardlessIncoming
=
Sis
\u
00E4
\u
00E4ntulo
incomingFlow.count
=
M
\u
00E4
\u
00E4r
\u
00E4
incomingflow.allGiven
=
Merkitty {0} lippu(a) annetuksi.
reader.noReader
=
Ei valittua lukijaa
etickets.mailSended
=
Lippu l
\u
00E4hetetty s
\u
00E4hk
\u
00F6postiisi
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