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 fb8b8c2e
authored
Dec 08, 2014
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
2 parents
e7532fc7
09fd35b4
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
212 additions
and
126 deletions
code/moya-beans/ejbModule/fi/codecrew/moya/beans/JaasBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/PlaceBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ProductBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/PlaceFacade.java
code/moya-beans/ejbModule/fi/codecrew/moya/facade/PlaceSlotFacade.java
code/moya-utils/src/main/java/fi/codecrew/moya/utilities/moyamessage/MoyaEventType.java
code/moya-web/WebContent/bill/showBill.xhtml
code/moya-web/WebContent/resources/cditools/bills/verkkomaksubuttons.xhtml
code/moya-web/WebContent/resources/cditools/products/shop.xhtml
code/moya-web/WebContent/resources/templates/custom_components.css
code/moya-web/WebContent/shop/createBill.xhtml
code/moya-web/WebContent/shop/showCreatedBill.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/PlaceView.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/ejbModule/fi/codecrew/moya/beans/JaasBean.java
View file @
fb8b8c2
...
...
@@ -106,7 +106,7 @@ public class JaasBean implements MoyaRealmBeanRemote {
logger
.
info
(
"logging in as anonymous!!!"
);
}
else
if
(!
user
.
checkPassword
(
password
))
{
secubean
.
sendMessage
(
MoyaEventType
.
LOGIN_FAILED
,
eventUser
,
"Login failed: wrong password for username "
,
username
);
secubean
.
sendMessage
(
MoyaEventType
.
LOGIN_FAILED
,
eventUser
,
"Login failed: wrong password for username
:
"
,
username
);
eventUser
=
null
;
user
=
null
;
}
...
...
@@ -125,6 +125,7 @@ public class JaasBean implements MoyaRealmBeanRemote {
eventUserFacade
.
flush
();
eventUser
.
setCreator
(
eventUser
);
}
secubean
.
sendMessage
(
MoyaEventType
.
LOGIN_SUCCESSFULL
,
eventUser
,
"User logged in with username: '"
,
username
,
"' eventuser: "
,
eventUser
);
}
else
{
secubean
.
sendMessage
(
MoyaEventType
.
LOGIN_FAILED
,
eventUserFacade
.
findByLogin
(
User
.
ANONYMOUS_LOGINNAME
),
"Login failed: Username not found: "
,
username
);
}
...
...
@@ -190,7 +191,7 @@ public class JaasBean implements MoyaRealmBeanRemote {
roleset
.
add
(
UserPermission
.
ANYUSER
.
getFullName
());
if
(
usr
==
null
)
{
usr
=
permbean
.
getAnonEventUser
();
roleset
.
add
(
SpecialPermission
.
ANONYMOUS
.
name
());
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/PlaceBean.java
View file @
fb8b8c2
...
...
@@ -260,7 +260,7 @@ public class PlaceBean implements PlaceBeanLocal {
logger
.
warn
(
"Reserving place {} with placeslot {}"
,
place
,
slot
);
slot
.
setPlace
(
place
);
slot
.
setUsed
(
new
Date
());
}
else
{
}
else
if
(!
permbean
.
hasPermission
(
MapPermission
.
MANAGE_OTHERS
))
{
// we still can reserve places to other people
logger
.
warn
(
"Not enough slots to reserve place {}"
,
place
);
// Not enough slots to reserve place
return
false
;
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ProductBean.java
View file @
fb8b8c2
...
...
@@ -215,10 +215,12 @@ public class ProductBean implements ProductBeanLocal {
if
(!
prod
.
getProductFlags
().
contains
(
ProductFlag
.
PREPAID_CREDIT
))
{
if
(
prod
.
getPlaces
()
!=
null
&&
!
prod
.
getPlaces
().
isEmpty
())
{
int
totalcount
=
prod
.
getPlaces
().
size
();
Long
boughtSlots
=
slotfacade
.
totalSlotcount
(
prod
);
int
freeCount
=
totalcount
-
boughtSlots
.
intValue
();
logger
.
info
(
"Prodlimit totcnt {}, bought {}, free {}, prod {}"
,
totalcount
,
boughtSlots
,
freeCount
,
prod
);
Long
selectableCount
=
placeFacade
.
countSelectable
(
prod
);
Long
unusedSlots
=
slotfacade
.
findUnusedSlotsCount
(
prod
);
int
freeCount
=
selectableCount
.
intValue
()
-
unusedSlots
.
intValue
();
logger
.
info
(
"Prodlimit selectable {}, unused {}, free {}, prod {}"
,
selectableCount
,
unusedSlots
,
freeCount
,
prod
);
ret
.
put
(
prod
.
getId
(),
BigDecimal
.
valueOf
(
freeCount
));
}
}
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/facade/PlaceFacade.java
View file @
fb8b8c2
...
...
@@ -158,6 +158,22 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
return
getEm
().
createQuery
(
cq
).
getResultList
();
}
public
Long
countSelectable
(
Product
product
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Long
>
cq
=
cb
.
createQuery
(
Long
.
class
);
Root
<
Place
>
root
=
cq
.
from
(
Place
.
class
);
cq
.
select
(
cb
.
count
(
root
));
cq
.
where
(
cb
.
equal
(
root
.
get
(
Place_
.
product
),
product
),
cb
.
isNull
(
root
.
get
(
Place_
.
releaseTime
)),
cb
.
isNull
(
root
.
get
(
Place_
.
group
)),
cb
.
isFalse
(
root
.
get
(
Place_
.
disabled
))
);
return
super
.
getSingleNullableResult
(
getEm
().
createQuery
(
cq
));
}
public
Long
findCountForProduct
(
Product
product
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Long
>
cq
=
cb
.
createQuery
(
Long
.
class
);
...
...
@@ -167,10 +183,14 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
cq
.
where
(
cb
.
equal
(
root
.
get
(
Place_
.
product
),
product
),
cb
.
isFalse
(
root
.
get
(
Place_
.
disabled
))
);
);
return
super
.
getSingleNullableResult
(
getEm
().
createQuery
(
cq
));
}
public
Long
countAvailable
(
EventMap
map
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Long
>
cq
=
cb
.
createQuery
(
Long
.
class
);
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/facade/PlaceSlotFacade.java
View file @
fb8b8c2
...
...
@@ -92,6 +92,27 @@ public class PlaceSlotFacade extends IntegerPkGenericFacade<PlaceSlot> {
return
slot
;
}
public
Long
findUnusedSlotsCount
(
Product
prod
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Long
>
q
=
cb
.
createQuery
(
Long
.
class
);
Root
<
PlaceSlot
>
root
=
q
.
from
(
PlaceSlot
.
class
);
q
.
select
(
cb
.
count
(
root
));
Path
<
Bill
>
bill
=
root
.
get
(
PlaceSlot_
.
bill
);
Path
<
Calendar
>
billexp
=
bill
.
get
(
Bill_
.
expires
);
q
.
where
(
cb
.
equal
(
root
.
get
(
PlaceSlot_
.
product
),
prod
),
cb
.
or
(
cb
.
isNull
(
billexp
),
cb
.
greaterThan
(
billexp
,
Calendar
.
getInstance
())
),
cb
.
isNull
(
root
.
get
(
PlaceSlot_
.
place
))
);
Long
count
=
super
.
getSingleNullableResult
(
getEm
().
createQuery
(
q
));
return
count
;
}
public
Long
totalSlotcount
(
Product
prod
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Long
>
q
=
cb
.
createQuery
(
Long
.
class
);
...
...
code/moya-utils/src/main/java/fi/codecrew/moya/utilities/moyamessage/MoyaEventType.java
View file @
fb8b8c2
...
...
@@ -11,7 +11,8 @@ public enum MoyaEventType {
BANKING_MESSAGE
(
MoyaEventSource
.
SHOP
),
PLACE_ERROR
(
MoyaEventSource
.
PLACEMAP
),
ACCOUNTEVENT_INFO
(
MoyaEventSource
.
USER
),
USER_PERMISSION_VIOLATION
(
MoyaEventSource
.
USER
),
USER_PERMISSION_VIOLATION
(
MoyaEventSource
.
USER
),
LOGIN_SUCCESSFULL
(
MoyaEventSource
.
USER
),
;
...
...
code/moya-web/WebContent/bill/showBill.xhtml
View file @
fb8b8c2
<!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:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:bill=
"http://java.sun.com/jsf/composite/cditools/bills"
xmlns:p=
"http://primefaces.org/ui"
xmlns:f=
"http://java.sun.com/jsf/core"
>
<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:tools=
"http://java.sun.com/jsf/composite/tools"
xmlns:bill=
"http://java.sun.com/jsf/composite/cditools/bills"
xmlns:p=
"http://primefaces.org/ui"
xmlns:f=
"http://java.sun.com/jsf/core"
>
<h:body>
...
...
@@ -14,39 +20,51 @@
<h1>
#{i18n['page.bill.show.header']}
</h1>
</ui:define>
<ui:define
name=
"content"
>
<p:outputPanel
id=
"billPanel"
>
<ui:fragment
rendered=
"#{billEditView.bill.paid}"
>
<h:outputText
value=
"#{i18n['bill.billIsPaid']}"
/>
<br
/>
<h:outputText
value=
"#{i18n['bill.billPaidDate']}"
/>
:
<p:outputPanel
id=
"billPanel"
>
<ui:fragment
rendered=
"#{billEditView.bill.paid}"
>
<h:outputText
value=
"#{i18n['bill.billIsPaid']}"
/>
<br
/>
<h:outputText
value=
"#{i18n['bill.billPaidDate']}"
/>
:
<h:outputText
value=
"#{billEditView.bill.paidDate}"
>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
timeZone=
"#{sessionHandler.timezone}"
/>
</h:outputText>
</ui:fragment>
<br
/>
<bill:showBill
bill=
"#{billEditView.bill}"
/>
<bill:verkkomaksubuttons
rendered=
"#{!billEditView.bill.paid and !billEditView.bill.expired}"
/>
<p:outputPanel
rendered=
"#{billEditView.bill.foodwaveBill}"
>
<span
class=
"notify"
><h:outputText
value=
"#{i18n['foodshop.canBuyToCounter']}"
/></span>
</p:outputPanel>
<br
/>
<p:outputPanel
rendered=
"#{!billEditView.bill.paid and !billEditView.bill.expired}"
>
<f:convertDateTime
pattern=
"#{sessionHandler.datetimeFormat}"
timeZone=
"#{sessionHandler.timezone}"
/>
</h:outputText>
</ui:fragment>
<br
/>
<bill:showBill
bill=
"#{billEditView.bill}"
/>
<bill:verkkomaksubuttons
rendered=
"#{!billEditView.bill.paid and !billEditView.bill.expired}"
/>
<p:outputPanel
rendered=
"#{billEditView.bill.foodwaveBill}"
>
<span
class=
"notify"
><h:outputText
value=
"#{i18n['foodshop.canBuyToCounter']}"
/></span>
</p:outputPanel>
<br
/>
<p:outputPanel
rendered=
"#{!billEditView.bill.paid and !billEditView.bill.expired}"
>
<h:form>
<p:commandButton
id=
"cancelbtn"
actionListener=
"#{billEditView.expireBill()}"
onerror=
"location.reload(true);"
value=
"#{i18n['bill.cancel']}"
update=
":billPanel"
>
<p:confirm
header=
"Confirmation"
message=
"Are you sure?"
icon=
"ui-icon-alert"
/>
<p:commandButton
id=
"cancelbtn"
actionListener=
"#{billEditView.expireBill()}"
onerror=
"location.reload(true);"
value=
"#{i18n['bill.cancel']}"
update=
":billPanel"
>
<p:confirm
header=
"Confirmation"
message=
"Are you sure?"
icon=
"ui-icon-alert"
/>
</p:commandButton>
</h:form>
</p:outputPanel>
<p:outputPanel
rendered=
"#{billEditView.bill.user.accountBalance ge billEditView.bill.totalPrice}"
>
<p:outputPanel
rendered=
"#{billEditView.bill.user.accountBalance ge billEditView.bill.totalPrice}"
>
<h:form>
<p:commandButton
id=
"buyCreditsButton"
actionListener=
"#{billEditView.buyWithCredits()}"
onerror=
"location.reload(true);"
value=
"#{i18n['bill.markPaid.credits']}"
update=
":billPanel"
>
<p:confirm
header=
"Confirmation"
message=
"Are you sure?"
icon=
"ui-icon-alert"
/>
<p:commandButton
id=
"buyCreditsButton"
actionListener=
"#{billEditView.buyWithCredits()}"
onerror=
"location.reload(true);"
value=
"#{i18n['bill.markPaid.credits']}"
update=
":billPanel"
>
<p:confirm
header=
"Confirmation"
message=
"Are you sure?"
icon=
"ui-icon-alert"
/>
</p:commandButton>
</h:form>
</p:outputPanel>
...
...
code/moya-web/WebContent/resources/cditools/bills/verkkomaksubuttons.xhtml
View file @
fb8b8c2
...
...
@@ -22,13 +22,12 @@
<!-- When called via ajax this needs to be already loaded!
-->
<script
type=
"text/javascript"
src=
"//payment.paytrail.com/js/payment-widget-v1.0.min.js"
></script>
<script
type=
"text/javascript"
>
function
initPaymentButtons
()
{
SV
.
widget
.
initWithToken
(
'svmpayment'
,
'#{billEditView.verkkomaksuFiToken.token}'
,
{
width
:
'800'
});
}
</script>
</ui:fragment>
<ui:fragment
rendered=
"#{billEditView.checkoutFiAvailable}"
>
...
...
code/moya-web/WebContent/resources/cditools/products/shop.xhtml
View file @
fb8b8c2
<?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"
xmlns:p=
"http://primefaces.org/ui"
>
<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"
xmlns:p=
"http://primefaces.org/ui"
>
<composite:interface>
<composite:attribute
name=
"items"
required=
"true"
/>
<composite:attribute
name=
"commitValue"
required=
"true"
/>
<composite:attribute
name=
"commitaction"
method-signature=
"java.lang.String action()"
required=
"true"
/>
<composite:attribute
name=
"commitaction"
method-signature=
"java.lang.String action()"
required=
"true"
/>
</composite:interface>
<composite:implementation>
<!-- <h:outputScript target="head" library="script" name="jquery.min.js" /> -->
<!-- <h:outputScript target="head" library="script" name="shopscript.js" /> -->
<h:outputScript
library=
"primefaces"
name=
"jquery/jquery.js"
/>
<p:dataTable
columnClasses=
"nowrap,numalign,numalign,numalign,nowrap"
id=
"billcart"
value=
"#{cc.attrs.items}"
var=
"cart"
>
<p:dataTable
columnClasses=
"nowrap,numalign,numalign,numalign,nowrap"
id=
"billcart"
value=
"#{cc.attrs.items}"
var=
"cart"
>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
id=
"name"
value=
"${i18n['product.name']}"
/>
...
...
@@ -37,14 +45,18 @@
<h:outputText
id=
"count"
value=
"${i18n['product.cart.count']}"
/>
</f:facet>
<h:commandButton
action=
"#{productShopView.addMinusOne}"
value=
"#{i18n['productshop.minusOne']}"
>
<h:commandButton
action=
"#{productShopView.addMinusOne}"
value=
"#{i18n['productshop.minusOne']}"
>
<f:ajax
render=
"@form"
/>
</h:commandButton>
<p:inputText
size=
"2"
id=
"cartcount"
escape=
"false"
value=
"#{cart.count}"
>
<f:ajax
render=
"@form"
listener=
"#{productShopView.countChangeListener}"
/>
<p:inputText
size=
"2"
id=
"cartcount"
escape=
"false"
value=
"#{cart.count}"
>
<f:ajax
render=
"@form"
listener=
"#{productShopView.countChangeListener}"
/>
<f:convertNumber
maxFractionDigits=
"2"
minFractionDigits=
"0"
/>
</p:inputText>
<h:commandButton
action=
"#{productShopView.addOne}"
value=
"#{i18n['productshop.plusOne']}"
>
<h:commandButton
action=
"#{productShopView.addOne}"
value=
"#{i18n['productshop.plusOne']}"
>
<f:ajax
render=
"@form"
/>
</h:commandButton>
</p:column>
...
...
@@ -56,8 +68,9 @@
<f:convertNumber
maxFractionDigits=
"2"
minFractionDigits=
"0"
/>
</h:outputText>
</p:column>
<p:column>
<h:dataTable
styleClass=
"noborderTable"
border=
"0"
var=
"disc"
value=
"#{cart.discounts}"
>
<p:column
headerText=
"#{i18n['productshop.discounts']}"
>
<h:dataTable
styleClass=
"noborderTable"
border=
"0"
var=
"disc"
value=
"#{cart.discounts}"
>
<p:column>
<h:outputText
value=
"#{disc.shortdesc}"
/>
</p:column>
...
...
@@ -79,7 +92,9 @@
</p:column>
<p:columnGroup
type=
"footer"
>
<p:row>
<p:column
style=
"text-align: right;"
colspan=
"4"
footerText=
"#{i18n['productshop.total']}"
/>
<p:column
style=
"text-align: right;"
colspan=
"#{productShopView.hasLimits?5:4}"
footerText=
"#{i18n['productshop.total']}"
/>
<p:column>
<f:facet
name=
"footer"
>
<h:outputText
value=
"#{productShopView.cartPrice}"
>
...
...
@@ -95,23 +110,30 @@
<br
/>
<h:panelGrid
columns=
"3"
rendered=
"#{productShopView.checkAllowStats}"
>
<h:outputText
for=
"allowStats"
value=
"#{i18n['bill.allowStatistics']}"
/>
<h:selectBooleanCheckbox
id=
"allowStats"
value=
"#{productShopView.allowStatistics}"
/>
<h:selectBooleanCheckbox
id=
"allowStats"
value=
"#{productShopView.allowStatistics}"
/>
<h:message
for=
"allowStats"
/>
</h:panelGrid>
<br
/>
<h:panelGroup
rendered=
"#{productShopView.gatherBillInfo}"
>
<h2><p:outputLabel
value=
"#{i18n['bill.notes.title']}"
/>
</h2>
<p:inputTextarea
cols=
"50"
value=
"#{productShopView.otherInfo}"
label=
"#{i18n['otherInfo']}"
/>
<h2>
<p:outputLabel
value=
"#{i18n['bill.notes.title']}"
/>
</h2>
<p:inputTextarea
cols=
"50"
value=
"#{productShopView.otherInfo}"
label=
"#{i18n['otherInfo']}"
/>
</h:panelGroup>
<br
/>
<!-- Paytrail needs to initialize after the ajax call is complete -->
<!-- This function is to be override by the paytrail init function -->
<script
type=
"text/javascript"
>
function
initPaymentButtons
(){};
</script>
<p:commandButton
oncomplete=
"initPaymentButtons()"
onerror=
"location.reload(true);"
action=
"#{cc.attrs.commitaction}"
id=
"commitbutton-botton"
value=
"#{cc.attrs.commitValue}"
/>
<!-- Paytrail needs to initialize after the ajax call is complete -->
<!-- This function is to be override by the paytrail init function -->
<script
type=
"text/javascript"
>
function
initPaymentButtons
()
{
};
</script>
<p:commandButton
ajax=
"false"
onerror=
"location.reload(true);"
action=
"#{cc.attrs.commitaction}"
id=
"commitbutton-botton"
value=
"#{cc.attrs.commitValue}"
/>
...
...
code/moya-web/WebContent/resources/templates/custom_components.css
View file @
fb8b8c2
...
...
@@ -231,3 +231,8 @@ a.shopItem:active {
display
:
none
!important
;
visibility
:
hidden
;
}
.noborderTable
tr
,
.noborderTable
tr
td
{
border
:
none
;
padding
:
0
0
1px
0
;
}
code/moya-web/WebContent/shop/createBill.xhtml
View file @
fb8b8c2
...
...
@@ -14,12 +14,7 @@
<ui:define
name=
"title"
>
<h1>
#{i18n['page.product.createBill.header']}
</h1>
</ui:define>
<ui:define
name=
"headerdata"
>
<ui:fragment
rendered=
"#{billEditView.verkkomaksuFiAvailable}"
>
<script
type=
"text/javascript"
src=
"//payment.paytrail.com/js/payment-widget-v1.0.min.js"
></script>
</ui:fragment>
</ui:define>
<ui:define
name=
"content"
>
<ui:define
name=
"content"
>
<h:form
id=
"billshopform"
>
<products:shop
commitaction=
"#{productShopView.commitBillCart()}"
items=
"#{productShopView.shoppingcart}"
commitValue=
"#{i18n['productshop.commit']}"
/>
...
...
code/moya-web/WebContent/shop/showCreatedBill.xhtml
View file @
fb8b8c2
...
...
@@ -15,12 +15,7 @@
<ui:define
name=
"title"
>
<h1>
#{i18n['page.product.validateBillProducts.header']}
</h1>
</ui:define>
<ui:define
name=
"headerdata"
>
<ui:fragment
rendered=
"#{billEditView.verkkomaksuFiAvailable}"
>
<script
type=
"text/javascript"
src=
"//payment.paytrail.com/js/payment-widget-v1.0.min.js"
></script>
</ui:fragment>
</ui:define>
<ui:define
name=
"content"
>
<bill:showBill
bill=
"#{billEditView.bill}"
/>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/PlaceView.java
View file @
fb8b8c2
...
...
@@ -178,6 +178,8 @@ public class PlaceView extends GenericCDIView {
place
=
p
;
}
}
}
else
{
super
.
addFaceMessage
(
"Cannot reserve place for user"
);
}
}
catch
(
BortalCatchableException
e
)
{
...
...
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
View file @
fb8b8c2
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#Sat Mar 30 17:56:44 EET 2013
shop.unitdiscount
=
Alennus
shop.customPrice
=
Uusi hinta
accountEvent.commit
=
Tallenna
actionlog.create.header
=
Create new actionmessage
...
...
@@ -337,6 +335,9 @@ product.description = Kuvaus
product.providedRole
=
Product defines role
product.returnProductEdit
=
Return to product:
product.saved
=
Product saved
product.vat
=
ALV-%
productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT
=
Luo uusi paikka ostettaessa
productshop.minusOne
=
-1
productshop.minusTen
=
-10
...
...
@@ -349,6 +350,8 @@ refresh = P\u00E4ivit\u00E4
registerleaflet.title
=
Rekisteriseloste
required
=
Arvo vaaditaan
resetMail.header
=
Reset lost password
resetMail.username
=
Username
...
...
@@ -364,6 +367,9 @@ roleView.showPermissioneditor = N\u00E4yt\u00E4 oikeusasetukset
save
=
Tallenna
shop.customPrice
=
Uusi hinta
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
...
...
@@ -375,6 +381,7 @@ submenu.info.shop = Kauppa
submenu.lectureadmin.lectureParticipants
=
Tarkastele osallistujia
submenu.lectureadmin.manageLectureGroups
=
Hallinnoi
submenu.lectures.viewLectures
=
Ilmoittaudu
submenu.neomap.view
=
Paikkakartta
submenu.reports.basicStatistics
=
Tilastoja
subnavi.cards
=
\u0009\u0009
...
...
@@ -388,25 +395,31 @@ topnavi.adminlectures = Kurssit ja luennot
topnavi.license
=
Lisenssikoodit
topnavi.userlectures
=
Kurssit ja luennot
user.cropImage
=
Crop
user.cancelInvite
=
Peruuta kutsu
user.createdmessage
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus on luotu onnistuneesti.
user.cropImage
=
Crop
user.email
=
S
\u
00E4hk
\u
00F6postiosoite
user.emailAgain
=
S
\u
00E4hk
\u
00F6posti (uudelleen)
user.emailAndUsername
=
Email (toimii k
\u
00E4ytt
\u
00E4j
\u
00E4tunnuksena)
user.imageUpload.imageNotFound
=
Select image to upload
user.info
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
user.info
=
K
\u
00E4ytt
\u
00E4j
\u
00E4
user.invite.placeInvite.header
=
Liit
\u
00E4 paikka itsellesi
user.meta.box.title
=
Metadata
user.saveUserSelectableRoles
=
Tallenna
user.shirt.L
=
Unisex L
user.shirt.LadyL
=
Ladyfit L
user.shirt.LadyM
=
Ladyfit M
user.shirt.LadyS
=
Ladyfit S
user.shirt.L
=
Unisex L
user.shirt.LadyL
=
Ladyfit L
user.shirt.LadyM
=
Ladyfit M
user.shirt.LadyS
=
Ladyfit S
user.shirt.LadyXL
=
Ladyfit XL
user.shirt.LadyXS
=
Ladyfit XS
user.shirt.LadyXXL
=
Ladyfit XXL
user.shirt.M
=
Unisex M
user.shirt.S
=
Unisex S
user.shirt.XL
=
Unisex XL
user.shirt.XXL
=
Unisex XXL
user.shirt.XXXL
=
Unisex XXXL
user.shirt.M
=
Unisex M
user.shirt.S
=
Unisex S
user.shirt.XL
=
Unisex XL
user.shirt.XXL
=
Unisex XXL
user.shirt.XXXL
=
Unisex XXXL
user.shirt.select
=
Valitse yksi
user.shirtSize
=
Paidan koko
user.shirtSize
=
Paidan koko
user.unauthenticated
=
Kirjautumaton
user.userSelectableRoles
=
Valitse yksi
...
...
@@ -416,16 +429,3 @@ usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n
viewlectures.title
=
Kurssit ja luennot
yes
=
Kyll
\u
00E4
user.emailAndUsername
=
Email (toimii k
\u
00E4ytt
\u
00E4j
\u
00E4tunnuksena)
user.emailtooshortmessage
=
user.emailsunmatch
=
user.emailAgain
=
S
\u
00E4hk
\u
00F6posti (uudelleen)
user.email
=
S
\u
00E4hk
\u
00F6postiosoite
required
=
Arvo vaaditaan
user.createdmessage
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus on luotu onnistuneesti.
product.vat
=
ALV-%
productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT
=
Luo uusi paikka ostettaessa
submenu.neomap.view
=
Paikkakartta
user.cancelInvite
=
Peruuta kutsu
user.invite.placeInvite.header
=
Liit
\u
00E4 paikka itsellesi
userview.userExistsByEmail
=
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
View file @
fb8b8c2
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#Sat Mar 30 17:56:44 EET 2013
...
...
@@ -994,6 +995,7 @@ productsShopView.readBarcode = Read
productshop.billCreated
=
Bill created
productshop.commit
=
Buy
productshop.discounts
=
Discounts
productshop.limits
=
Available
productshop.minusOne
=
-1
productshop.minusTen
=
-10
...
...
@@ -1042,6 +1044,8 @@ rejectcard.subject = Subject
rejectcard.toAddr
=
Email address
rejectcard.toName
=
Name
required
=
Required
resetMail.body
=
You can change a forgotten password by inserting your username or email address to the field below. A link where you can change the password will be sent to the email address associated to that.
resetMail.email
=
Email address
resetMail.header
=
Reset lost password
...
...
@@ -1103,6 +1107,7 @@ shop.cashback = Cashback
shop.confirmCreditBuy
=
Are You sure ?
shop.count
=
Q
shop.currentBalance
=
Current balance
shop.customPrice
=
new price
shop.price
=
price
shop.product
=
Product
shop.readBarcode
=
Read
...
...
@@ -1111,6 +1116,7 @@ shop.shoppingcartCommitted = Products bought
shop.toAccountValue
=
To account
shop.totalPrice
=
Total
shop.transactionTotal
=
Transaction total
shop.unitdiscount
=
Discount
shop.user
=
Selling to
sidebar.bill.list
=
My bills
...
...
@@ -1197,6 +1203,7 @@ submenu.license.manageCodes = Manage codes
submenu.license.viewCodes
=
View codes
submenu.map.create
=
Create map
submenu.map.list
=
List maps
submenu.neomap.view
=
Map
submenu.networkassociation.index
=
Associations
submenu.orgrole.create
=
Create organisationrole
submenu.orgrole.list
=
Organisation roles
...
...
@@ -1430,6 +1437,7 @@ user.age = Age
user.bank
=
Bank
user.bankaccount
=
Bank number
user.birthday
=
Birthday
user.cancelInvite
=
Cancel invite
user.cardPower
=
Usertype
user.changePassword
=
Change password
user.changepassword.forUser
=
For user
...
...
@@ -1444,6 +1452,10 @@ user.edit = Edit
user.edit.gameids
=
Edit GameIDs
user.edit.title
=
My information
user.email
=
Email
user.emailAgain
=
Email (again)
user.emailAndUsername
=
Email (works also as username)
user.emailsunmatch
=
Email addresses does not match.
user.emailtooshortmessage
=
Email must be atleast {0} characters long.
user.firstNames
=
Firstname
user.food.title
=
Choose Menu
user.foodwave.products.title
=
Choose Products
...
...
@@ -1467,6 +1479,7 @@ user.insertToken = Insert token
user.invalidLoginCredentials
=
Invalid user credentials
user.invite
=
Invite
user.invite.header
=
Accept invitation
user.invite.placeInvite.header
=
Receive sendet place
user.invitemail
=
Email address
user.lastName
=
Lastname
user.login
=
Login
...
...
@@ -1559,12 +1572,13 @@ usertitle.managingUser = Shop
userview.header
=
Users
userview.invalidEmail
=
Invalid email address
userview.loginstringFaulty
=
Username has to be atleast 2 characters long
\
!
userview.loginstringFaulty
=
Username has to be atleast 2 characters long!
userview.oldPasswordError
=
Invalid password!
userview.passwordTooShort
=
Password has to be atleast {0} characters long
\
!
userview.passwordTooShort
=
Password has to be atleast {0} characters long!
userview.passwordsChanged
=
Password changed
userview.passwordsDontMatch
=
Passwords do not match! Please try again!
userview.userExists
=
Username already exists
\!
You may already have an account.
userview.userExists
=
Username already exists! You may already have an account.
userview.userExistsByEmail
=
Email already exists! You may already have an account.
viewexpired.body
=
Please login again.
viewexpired.title
=
Login expired. Please login again.
...
...
@@ -1614,15 +1628,3 @@ voting.create.voteEnd = Voting close
voting.create.voteStart
=
Voting start
yes
=
Yes
shop.unitdiscount
=
Discount
shop.customPrice
=
new price
user.emailAndUsername
=
Email (works also as username)
user.emailtooshortmessage
=
Email must be atleast {0} characters long.
user.emailsunmatch
=
Email addresses does not match.
user.emailAgain
=
Email (again)
required
=
Required
usercart.showoverview
=
submenu.neomap.view
=
Map
user.cancelInvite
=
Cancel invite
user.invite.placeInvite.header
=
Receive sendet place
userview.userExistsByEmail
=
Email already exists
\!
You may already have an account.
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
View file @
fb8b8c2
#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
#Sat Mar 30 17:56:44 EET 2013
...
...
@@ -979,6 +980,7 @@ productsShopView.readBarcode = Lue
productshop.billCreated
=
Lasku luotu
productshop.commit
=
Osta
productshop.discounts
=
Alennukset
productshop.limits
=
Vapaana
productshop.minusOne
=
-1
productshop.minusTen
=
-10
...
...
@@ -1027,6 +1029,8 @@ rejectcard.subject = Viestin otsikko
rejectcard.toAddr
=
S
\u
00E4hk
\u
00F6postiosoite
rejectcard.toName
=
Nimi
required
=
Vaaditaan
resetMail.body
=
Voit vaihtaa unohtuneen salasanan sy
\u
00F6tt
\u
00E4m
\u
00E4ll
\u
00E4 k
\u
00E4ytt
\u
00E4j
\u
00E4tunnuksesi tai tunnukseen liitetyn s
\u
00E4hk
\u
00F6postiosoitteen allaolevaan kentt
\u
00E4
\u
00E4n. Tunnukseen liitettyyn s
\u
00E4hk
\u
00F6postiosoitteeseen l
\u
00E4hetet
\u
00E4
\u
00E4n kertak
\u
00E4ytt
\u
00F6inen osoite jossa voit vaihtaa sy
\u
00F6tt
\u
00E4m
\u
00E4si k
\u
00E4ytt
\u
00E4j
\u
00E4tunnuksen salasanan.
resetMail.email
=
S
\u
00E4hk
\u
00F6postiosoite
resetMail.header
=
Salasana unohtunut?
...
...
@@ -1085,6 +1089,7 @@ shop.cashback = Takaisin
shop.confirmCreditBuy
=
Varmastikko ?
shop.count
=
Lkm
shop.currentBalance
=
T
\u
00E4m
\u
00E4nhetkinen saldo
shop.customPrice
=
Uusi hinta
shop.price
=
Hinta
shop.product
=
Tuote
shop.readBarcode
=
Lue
...
...
@@ -1092,6 +1097,7 @@ shop.shoppingcartCommitted = Tuotteet ostettu
shop.toAccountValue
=
Tilille
shop.totalPrice
=
Yhteens
\u
00E4
shop.transactionTotal
=
Tapahtuma yhteens
\u
00E4
shop.unitdiscount
=
Alennus
shop.user
=
Myyd
\u
00E4
\u
00E4n
sidebar.bill.list
=
Omat laskut
...
...
@@ -1177,6 +1183,7 @@ submenu.license.manageCodes = Hallinnoi lisenssej\u00E4
submenu.license.viewCodes
=
N
\u
00E4yt
\u
00E4 koodit
submenu.map.create
=
Uusi kartta
submenu.map.list
=
N
\u
00E4yt
\u
00E4 kartat
submenu.neomap.view
=
Paikkakartta
submenu.networkassociation.index
=
Assosiaatiot
submenu.orgrole.create
=
Luo j
\u
00E4rjest
\u
00E4j
\u
00E4rooli
submenu.orgrole.list
=
J
\u
00E4rjest
\u
00E4j
\u
00E4roolit
...
...
@@ -1413,6 +1420,7 @@ user.age = Ik\u00E4
user.bank
=
Pankki
user.bankaccount
=
Pankkitili
user.birthday
=
Syntym
\u
00E4aika
user.cancelInvite
=
Peruuta kutsu
user.cardPower
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tyyppi
user.changePassword
=
Vaihda salasana
user.changepassword.forUser
=
K
\u
00E4ytt
\u
00E4j
\u
00E4lle
...
...
@@ -1427,6 +1435,10 @@ user.edit = Muokkaa
user.edit.gameids
=
Muokkaa peli-id merkint
\u
00F6j
\u
00E4
user.edit.title
=
Omat tiedot
user.email
=
S
\u
00E4hk
\u
00F6posti
user.emailAgain
=
S
\u
00E4hk
\u
00F6posti (uudelleen)
user.emailAndUsername
=
S
\u
00E4hk
\u
00F6posti (toimii my
\u
00F6s k
\u
00E4ytt
\u
00E4j
\u
00E4tunnuksena)
user.emailsunmatch
=
S
\u
00E4hk
\u
00F6postiosoitteet eiv
\u
00E4t t
\u
00E4sm
\u
00E4
\u
00E4.
user.emailtooshortmessage
=
S
\u
00E4hk
\u
00F6postin tarvitsee olla v
\u
00E4hint
\u
00E4
\u
00E4n {0} merkki
\u
00E4 pitk
\u
00E4.
user.firstNames
=
Etunimi
user.food.title
=
Valitse Menu
user.foodwave.products.title
=
Valitse tuotteet
...
...
@@ -1451,6 +1463,7 @@ user.insert = Sy\u00F6t\u00E4 arvo
user.invalidLoginCredentials
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus tai salasana v
\u
00E4
\u
00E4rin.
user.invite
=
Kutsu
user.invite.header
=
Luo k
\u
00E4ytt
\u
00E4j
\u
00E4 kutsusta
user.invite.placeInvite.header
=
Vastaanota l
\u
00E4hetetty paikka
user.invitemail
=
S
\u
00E4hk
\u
00F6postiosoite
user.lastName
=
Sukunimi
user.login
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus
...
...
@@ -1540,13 +1553,14 @@ userlist.usersWithUnusedCodes = Lista t\u00E4m\u00E4n tapahtuman k\u00E4ytt\u00E
usertitle.managingUser
=
Kauppa
userview.invalidEmail
=
Virheel
i
inen s
\u
00E4hk
\u
00F6postiosoite
userview.invalidEmail
=
Virheel
l
inen s
\u
00E4hk
\u
00F6postiosoite
userview.loginstringFaulty
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus virheellinen. Pit
\u
00E4
\u
00E4 olla v
\u
00E4hint
\u
00E4
\u
00E4n kaksi merkki
\u
00E4 pitk
\u
00E4.
userview.oldPasswordError
=
V
\u
00E4
\u
00E4r
\u
00E4 salasana!
userview.passwordTooShort
=
Salasana liian lyhyt. Pit
\u
00E4
\u
00E4 olla v
\u
00E4hint
\u
00E4
\u
00E4n {0} merkki
\u
00E4 pitk
\u
00E4.
userview.passwordsChanged
=
Salasana vaihdettu
userview.passwordsDontMatch
=
Salasanat eiv
\u
00E4t ole samat! Ole hyv
\u
00E4 ja sy
\u
00F6t
\u
00E4 salasanat uudelleen.
userview.userExists
=
K
\u
00E4ytt
\u
00E4j
\u
00E4tunnus on jo olemassa. Sinulla saattaa jo olla tunnus j
\u
00E4rjestelm
\u
00E4ss
\u
00E4.
userview.userExistsByEmail
=
S
\u
00E4hk
\u
00F6posti on jo olemassa. Sinulla saattaa jo olla tunnus j
\u
00E4rjestelm
\u
00E4ss
\u
00E4.
viewexpired.body
=
Ole hyv
\u
00E4 ja kirjaudu sis
\u
00E4
\u
00E4n uudelleen.
viewexpired.title
=
N
\u
00E4kym
\u
00E4 on vanhentunut
...
...
@@ -1596,14 +1610,3 @@ voting.create.voteEnd = \u00C4\u00E4nestys kiinni
voting.create.voteStart
=
\u
00C4
\u
00E4nestys auki
yes
=
Kyll
\u
00E4
shop.unitdiscount
=
Alennus
shop.customPrice
=
Uusi hinta
user.emailAndUsername
=
S
\u
00E4hk
\u
00F6posti (toimii my
\u
00F6s k
\u
00E4ytt
\u
00E4j
\u
00E4tunnuksena)
user.emailtooshortmessage
=
S
\u
00E4hk
\u
00F6postin tarvitsee olla v
\u
00E4hint
\u
00E4
\u
00E4n {0} merkki
\u
00E4 pitk
\u
00E4.
user.emailsunmatch
=
S
\u
00E4hk
\u
00F6postiosoitteet eiv
\u
00E4t t
\u
00E4sm
\u
00E4
\u
00E4.
user.emailAgain
=
S
\u
00E4hk
\u
00F6posti (uudelleen)
required
=
Vaaditaan
submenu.neomap.view
=
Paikkakartta
user.cancelInvite
=
Peruuta kutsu
user.invite.placeInvite.header
=
Vastaanota l
\u
00E4hetetty paikka
userview.userExistsByEmail
=
S
\u
00E4hk
\u
00F6posti on jo olemassa. Sinulla saattaa jo olla tunnus j
\u
00E4rjestelm
\u
00E4ss
\u
00E4.
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