Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Max Mecklin
/
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 6dda4622
authored
Jan 11, 2018
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
melkein valmis
1 parent
9cb48f04
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
172 additions
and
260 deletions
code/moya-beans-client/ejbModule/fi/codecrew/moya/beans/ProductBeanLocal.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BootstrapBean.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ProductBean.java
code/moya-web/WebContent/info/cardlessIncoming.xhtml
code/moya-web/WebContent/info/incoming.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/rest/placemap/v1/PlacemapRestViewV1.java
code/moya-web/src/main/java/fi/codecrew/moya/servlet/SshServlet.java
code/moya-web/src/main/java/fi/codecrew/moya/web/flow/CardlessIncomingView.java
code/moya-web/src/main/java/fi/codecrew/moya/web/flow/IncomingView.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/ProductBeanLocal.java
View file @
6dda462
...
...
@@ -86,6 +86,10 @@ public interface ProductBeanLocal {
AccountEvent
markDelivered
(
AccountEvent
e
,
Calendar
c
);
AccountEvent
markUndelivered
(
AccountEvent
e
);
List
<
AccountEvent
>
getDeliverableAccountEvents
(
EventUser
user
);
List
<
Product
>
getPlaceProducts
();
ProductOption
findOptionById
(
Integer
id
);
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/BootstrapBean.java
View file @
6dda462
...
...
@@ -488,7 +488,7 @@ public class BootstrapBean implements BootstrapBeanLocal {
this
.
executeUpdates
(
revId
,
upIdx
);
}
else
if
(
upIdx
<
revId
)
{
throw
new
RuntimeException
(
"Sanity check failed! DB is newer than the codebase!
"
);
throw
new
RuntimeException
(
"Sanity check failed! DB is newer than the codebase!
, should be: "
+
revId
);
}
}
else
{
// DB is up to date by default! We need to mark the current version
...
...
code/moya-beans/ejbModule/fi/codecrew/moya/beans/ProductBean.java
View file @
6dda462
...
...
@@ -547,60 +547,28 @@ public class ProductBean implements ProductBeanLocal {
return
accounteventfacade
.
findProvidedRoles
(
eventBean
.
getCurrentEvent
(),
u
);
}
// /**
// * Create accountevents for the products in the parameter shopMap
// */
// @Override
// @RolesAllowed(ShopPermission.S_SHOP_PRODUCTS)
// public void shopCash(EventUser shoppingUser, Map<Product, BigDecimal>
// shopMap, boolean buyInstant) {
// logger.debug("Shoping cash. buyinstant {}", buyInstant);
// EventUser seller = permbean.getCurrentUser();
// shoppingUser = userbean.findByEventUserId(shoppingUser.getId());
//
// BigDecimal tot = BigDecimal.ZERO;
//
// for (Entry<Product, BigDecimal> prodentry : shopMap.entrySet()) {
//
// // Create account event for the product.
// AccountEvent ac = new AccountEvent(shoppingUser, prodentry.getKey(),
// prodentry.getKey().getPrice(), prodentry.getValue(),
// Calendar.getInstance());
// ac.setSeller(seller);
// accounteventfacade.create(ac);
//
// if (buyInstant &&
// prodentry.getKey().getPrice().compareTo(BigDecimal.ZERO) > 0) {
// tot =
// tot.add(prodentry.getValue().multiply(prodentry.getKey().getPrice()));
// }
//
// if
// (prodentry.getKey().getProductFlags().contains(ProductFlag.RESERVE_PLACE_WHEN_BOUGHT)
// ||
// prodentry.getKey().getProductFlags().contains(ProductFlag.CREATE_NEW_PLACE_WHEN_BOUGHT))
// {
// logger.debug("Prepaidplace");
//
// placebean.lockPlaceProduct(shoppingUser, prodentry.getKey(),
// BigDecimal.ONE);
//
// }
//
// }
//
// logger.debug("ShopCash price {}", tot);
// if (buyInstant && tot.compareTo(BigDecimal.ZERO) > 0) {
// logger.debug("Creating buy instant product!");
// Product creditProd = findCreditProduct();
// AccountEvent ac = new AccountEvent(shoppingUser, creditProd,
// creditProd.getPrice(), tot, Calendar.getInstance());
// accounteventfacade.create(ac);
// }
//
// userbean.mergeEventUserChanges(shoppingUser);
//
// }
@Override
public
List
<
AccountEvent
>
getDeliverableAccountEvents
(
EventUser
user
)
{
List
<
AccountEvent
>
retlist
=
new
ArrayList
<>();
for
(
AccountEvent
ae
:
accounteventfacade
.
getAccountEvents
(
user
))
{
if
(!
ae
.
getProduct
().
isDeliverableProduct
())
{
continue
;
}
// places are there already, so don't add them second time
if
(
ae
.
getProduct
().
getPlaces
()
!=
null
&&
!
ae
.
getProduct
().
getPlaces
().
isEmpty
())
{
continue
;
}
// TODO: pizzas also removed
retlist
.
add
(
ae
);
}
return
retlist
;
}
@Override
public
AccountEvent
markDelivered
(
AccountEvent
e
,
Calendar
c
)
{
...
...
@@ -614,6 +582,16 @@ public class ProductBean implements ProductBeanLocal {
return
e
;
}
@Override
public
AccountEvent
markUndelivered
(
AccountEvent
e
)
{
e
=
accounteventfacade
.
reload
(
e
);
e
.
setDelivered
(
null
);
return
e
;
}
@Override
public
List
<
Product
>
getPlaceProducts
()
{
...
...
code/moya-web/WebContent/info/cardlessIncoming.xhtml
View file @
6dda462
...
...
@@ -58,7 +58,7 @@
</p:fieldset>
<br
/><br
/><br
/>
<p:commandButton
value=
"#{i18n['incomingflow.markEverythingGiven']}"
update=
"membershipForm"
disabled=
"#{cardlessIncomingView.allGiven}"
actionListener=
"#{cardlessIncomingView.giveEverything}"
/>
<p:commandButton
value=
"#{i18n['incomingflow.markEverythingGiven']}"
update=
"membershipForm
accounteventlistform
"
disabled=
"#{cardlessIncomingView.allGiven}"
actionListener=
"#{cardlessIncomingView.giveEverything}"
/>
<br
/><br
/><br
/>
<h:outputText
rendered=
"#{empty cardlessIncomingView.groupMemberships}"
value=
"#{i18n['placegroupview.noMemberships']}"
/>
<p:fieldset
id=
"groupMembershipList"
rendered=
"#{!empty cardlessIncomingView.groupMemberships}"
legend=
"#{i18n['incomingflow.groupmemberships']}"
toggleable=
"true"
collapsed=
"#{fieldsetView.isCollapsed(component.id)}"
>
...
...
@@ -101,6 +101,40 @@
</p:fieldset>
</h:form>
<br
/><br
/><br
/>
<h:form
id=
"accounteventlistform"
>
<p:fieldset
legend=
"#{i18n['incomingflow.deliverableProducts']}"
toggleable=
"true"
collapsed=
"#{fieldsetView.isCollapsed(component.id)}"
>
<p:ajax
event=
"toggle"
listener=
"#{fieldsetView.handleToggle}"
/>
<p:dataTable
value=
"#{cardlessIncomingView.deliverableAccountevents}"
var=
"prod"
rowStyleClass=
"#{prod.delivered != null ? 'greenBackground':''}"
>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['placegroupview.productName']}"
/>
</f:facet>
<h:outputText
value=
"#{prod.product.name}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['placegroupview.accountEventDescription']}"
/>
</f:facet>
<h:outputText
value=
"#{prod.description}"
/>
</p:column>
<p:column>
<p:commandButton
update=
":accounteventlistform"
rendered=
"#{empty prod.delivered}"
actionListener=
"#{cardlessIncomingView.giveAccountEvent}"
value=
"#{i18n['incomingflow.giveAccountEvent']}"
/>
<p:commandButton
update=
":accounteventlistform"
rendered=
"#{!empty prod.delivered}"
actionListener=
"#{cardlessIncomingView.ungiveAccountEvent}"
value=
"#{i18n['incomingflow.ungiveAccountEvent']}"
/>
</p:column>
</p:dataTable>
</p:fieldset>
</h:form>
<br
/>
<br
/>
<br
/>
</ui:define>
...
...
code/moya-web/WebContent/info/incoming.xhtml
View file @
6dda462
...
...
@@ -30,7 +30,7 @@
<h1>
#{i18n['incomingView.attachDialogTitle']}
</h1>
<!-- napin painaminen aiheuttaa aina NullPOinterExceptionin, mutta tekee siitä huolimatta tarvittavat asiat -->
<!-- tarjoan oluen sille ketä ratkasee ton exceptionin -TKjne -->
<p:commandButton
styleClass=
"attachbuttonidclass"
value=
"#{i18n['incomingView.attach']}"
actionListener=
"#{incomingView.attachCodeToCard}"
update=
":cardcodeform :placelistform :imgCropperForm :cardsetform:"
onerror=
"location.reload(true);"
/>
<p:commandButton
styleClass=
"attachbuttonidclass"
value=
"#{i18n['incomingView.attach']}"
actionListener=
"#{incomingView.attachCodeToCard}"
update=
":cardcodeform :placelistform :
accounteventlistform :
imgCropperForm :cardsetform:"
onerror=
"location.reload(true);"
/>
<p:commandButton
value=
"#{i18n['incomingView.cancel']}"
actionListener=
"#{incomingView.hideAttachDialog}"
update=
":attachform:attachBarcode"
/>
</div>
</h:panelGroup>
...
...
@@ -275,13 +275,14 @@
</h:form>
<br
/><br
/>
<h:outputText
rendered=
"#{empty incomingView.groupMemberships}"
value=
"#{i18n['placegroupview.noMemberships']}"
/>
<h:form
rendered=
"#{!empty incomingView.groupMemberships}"
id=
"placelistform"
>
<p:fieldset
legend=
"#{i18n['incomingflow.groupmemberships']}"
toggleable=
"true"
collapsed=
"#{fieldsetView.isCollapsed(component.id)}"
>
<p:ajax
event=
"toggle"
listener=
"#{fieldsetView.handleToggle}"
/>
<p:dataTable
value=
"#{incomingView.groupMemberships}"
var=
"member"
rowStyleClass=
"#{member.enteredEvent != null ? '
success
':''}"
>
<p:dataTable
value=
"#{incomingView.groupMemberships}"
var=
"member"
rowStyleClass=
"#{member.enteredEvent != null ? '
greenBackground
':''}"
>
<p:column>
<f:facet
name=
"header"
>
...
...
@@ -321,43 +322,32 @@
<br
/>
<br
/>
<h:outputText
rendered=
"#{empty incomingView.}"
value=
"#{i18n['placegroupview.noMemberships']}"
/>
<h:form
rendered=
"#{!empty incomingView.groupMemberships}"
id=
"placelistform"
>
<p:fieldset
legend=
"#{i18n['incomingflow.groupmemberships']}"
toggleable=
"true"
collapsed=
"#{fieldsetView.isCollapsed(component.id)}"
>
<h:outputText
rendered=
"#{empty incomingView.deliverableAccountevents}"
value=
"#{i18n['placegroupview.noProductsToDeliver']}"
/>
<h:form
rendered=
"#{!empty incomingView.deliverableAccountevents}"
id=
"accounteventlistform"
>
<p:fieldset
legend=
"#{i18n['incomingflow.deliverableProducts']}"
toggleable=
"true"
collapsed=
"#{fieldsetView.isCollapsed(component.id)}"
id=
"accountEventList"
>
<p:ajax
event=
"toggle"
listener=
"#{fieldsetView.handleToggle}"
/>
<p:dataTable
value=
"#{incomingView.
groupMemberships}"
var=
"member"
rowStyleClass=
"#{member.enteredEvent != null ? 'success
':''}"
>
<p:dataTable
value=
"#{incomingView.
deliverableAccountevents}"
var=
"prod"
rowStyleClass=
"#{prod.delivered != null ? 'greenBackground
':''}"
>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['placegroupview.
reservation
Name']}"
/>
<h:outputText
value=
"#{i18n['placegroupview.
product
Name']}"
/>
</f:facet>
<h:outputText
value=
"#{member.placeReservation.name}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['placegroupview.reservationProduct']}"
/>
</f:facet>
<h:outputText
value=
"#{member.placeReservation.product.name}"
/>
<h:outputText
value=
"#{prod.product.name}"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['placegroupview.token']}"
/>
</f:facet>
<h:outputText
rendered=
"#{empty member.user}"
value=
"#{member.inviteToken}"
/>
<h:outputText
rendered=
"#{!empty member.user}"
value=
"#{member.user.firstnames} #{member.user.lastname} (#{member.user.nick})"
/>
</p:column>
<p:column>
<f:facet
name=
"header"
>
<h:outputText
value=
"#{i18n['placegroupview.
groupCreator
']}"
/>
<h:outputText
value=
"#{i18n['placegroupview.
accountEventDescription
']}"
/>
</f:facet>
<h:outputText
value=
"#{
member.placeGroup.creator.firstnames} #{member.placeGroup.creator.lastname} (#{member.placeGroup.creator.nick})
"
/>
<h:outputText
value=
"#{
prod.description}
"
/>
</p:column>
<p:column>
<p:commandButton
update=
":
placelistform"
rendered=
"#{empty member.enteredEvent}"
actionListener=
"#{incomingView.givePlace}"
value=
"#{i18n['incomingflow.giveplace
']}"
/>
<p:commandButton
update=
":
placelistform"
rendered=
"#{!empty member.enteredEvent}"
actionListener=
"#{incomingView.ungivePlace}"
value=
"#{i18n['incomingflow.ungiveplace
']}"
/>
<p:commandButton
update=
":
accounteventlistform"
rendered=
"#{empty prod.delivered}"
actionListener=
"#{incomingView.giveAccountEvent}"
value=
"#{i18n['incomingflow.giveAccountEvent
']}"
/>
<p:commandButton
update=
":
accounteventlistform"
rendered=
"#{!empty prod.delivered}"
actionListener=
"#{incomingView.ungiveAccountEvent}"
value=
"#{i18n['incomingflow.ungiveAccountEvent
']}"
/>
</p:column>
</p:dataTable>
...
...
@@ -368,6 +358,8 @@
<br
/>
<h:form
id=
"cardcodeform"
>
<p:fieldset
legend=
"#{i18n['incomingflow.cardCodes']}"
toggleable=
"true"
collapsed=
"#{fieldsetView.isCollapsed(component.id)}"
>
<p:ajax
event=
"toggle"
listener=
"#{fieldsetView.handleToggle}"
/>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/rest/placemap/v1/PlacemapRestViewV1.java
View file @
6dda462
...
...
@@ -18,8 +18,6 @@ import javax.ws.rs.core.MediaType;
import
javax.ws.rs.core.Response
;
import
javax.ws.rs.core.Response.ResponseBuilder
;
import
fi.codecrew.moya.rest.ArrayListWrapper
;
import
fi.codecrew.moya.rest.SimpleCodelistRoot
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -280,7 +278,9 @@ public class PlacemapRestViewV1 {
ArrayList
<
PlaceCodePojo
>
ret
=
makePlaceCodePojos
(
map
.
getPlaces
());
return
Response
.
ok
(
new
ArrayListWrapper
<>(
ret
)).
build
();
// muutokset tähän filuun tulee poistaa ennen committia
return
null
;
//return Response.ok(new ArrayListWrapper<>(ret)).build();
}
...
...
code/moya-web/src/main/java/fi/codecrew/moya/servlet/SshServlet.java
deleted
100644 → 0
View file @
9cb48f0
/*
* Copyright Codecrew Ry
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package
fi
.
codecrew
.
moya
.
servlet
;
import
java.io.IOException
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
javax.ejb.EJB
;
import
javax.servlet.Servlet
;
import
javax.servlet.ServletConfig
;
import
javax.servlet.ServletException
;
import
javax.servlet.annotation.WebServlet
;
import
javax.servlet.http.HttpServlet
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.sshd.SshServer
;
import
org.apache.sshd.common.Factory
;
import
org.apache.sshd.server.Command
;
import
org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
fi.codecrew.moya.beans.EventBeanLocal
;
import
fi.codecrew.moya.beans.PermissionBeanLocal
;
import
fi.codecrew.moya.clientutils.BortalLocalContextHolder
;
import
fi.codecrew.moya.cmdline.Hello
;
import
fi.codecrew.moya.model.LanEvent
;
/**
* Servlet implementation class SshServlet
*/
@WebServlet
(
urlPatterns
=
"/ssh"
,
loadOnStartup
=
10
)
public
class
SshServlet
extends
HttpServlet
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SshServlet
.
class
);
private
Map
<
Integer
,
SshServer
>
servers
=
new
HashMap
<
Integer
,
SshServer
>();
// Timeout 30 min
private
static
final
String
TIMEOUT
=
Integer
.
toString
(
1000
*
60
*
30
);
@EJB
private
EventBeanLocal
eventbean
;
@EJB
private
PermissionBeanLocal
permBean
;
/**
* @see HttpServlet#HttpServlet()
*/
public
SshServlet
()
{
super
();
// TODO Auto-generated constructor stub
}
private
class
SshShellFactor
implements
Factory
<
Command
>
{
private
BortalLocalContextHolder
context
;
public
SshShellFactor
(
BortalLocalContextHolder
instance
)
{
context
=
instance
;
}
@Override
public
Command
create
()
{
logger
.
info
(
"creating new bortal command"
);
BortalCommand
bc
=
new
BortalCommand
(
context
);
bc
.
addCommandlineCommand
(
"hello"
,
new
Hello
(
permBean
))
.
addCommandlineCommand
(
"hallo"
,
new
Hello
(
permBean
));
return
bc
;
}
}
/**
* @see Servlet#init(ServletConfig)
*/
public
void
init
(
ServletConfig
config
)
throws
ServletException
{
}
private
SshServer
initSsh
(
Integer
id
)
{
logger
.
info
(
"Initializing ssh servlet"
);
SshServer
sshd
=
SshServer
.
setUpDefaultServer
();
sshd
.
setPort
(
8022
);
sshd
.
getProperties
().
put
(
SshServer
.
IDLE_TIMEOUT
,
TIMEOUT
);
sshd
.
setShellFactory
(
new
SshShellFactor
(
BortalLocalContextHolder
.
getInstance
()));
BortalPasswordAuthenticator
pswdAuth
=
new
BortalPasswordAuthenticator
(
BortalLocalContextHolder
.
getInstance
());
sshd
.
setPasswordAuthenticator
(
pswdAuth
);
sshd
.
setKeyPairProvider
(
new
SimpleGeneratorHostKeyProvider
(
"hostkey.ser"
));
try
{
sshd
.
start
();
return
sshd
;
}
catch
(
IOException
e
)
{
logger
.
warn
(
"sshd start failed! "
,
e
);
}
return
null
;
}
/**
* @see Servlet#destroy()
*/
public
void
destroy
()
{
logger
.
info
(
"Destroying ssh servlet"
);
for
(
Entry
<
Integer
,
SshServer
>
entry
:
servers
.
entrySet
())
{
try
{
entry
.
getValue
().
stop
();
}
catch
(
InterruptedException
e
)
{
logger
.
warn
(
"Error stopping ssh"
,
e
);
}
}
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected
void
doGet
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
LanEvent
event
=
eventbean
.
getCurrentEvent
();
if
(!
servers
.
containsKey
(
event
.
getId
()))
{
SshServer
ssh
=
initSsh
(
event
.
getId
());
if
(
ssh
!=
null
)
{
servers
.
put
(
event
.
getId
(),
ssh
);
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected
void
doPost
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
// TODO Auto-generated method stub
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/flow/CardlessIncomingView.java
View file @
6dda462
...
...
@@ -23,10 +23,7 @@ import fi.codecrew.moya.beans.PlaceGroupBeanLocal;
import
fi.codecrew.moya.beans.ProductBeanLocal
;
import
fi.codecrew.moya.beans.TicketBeanLocal
;
import
fi.codecrew.moya.enums.apps.UserPermission
;
import
fi.codecrew.moya.model.EventUser
;
import
fi.codecrew.moya.model.GroupMembership
;
import
fi.codecrew.moya.model.Product
;
import
fi.codecrew.moya.model.ReaderEvent
;
import
fi.codecrew.moya.model.*
;
import
fi.codecrew.moya.utilities.I18n
;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
import
fi.codecrew.moya.web.cdiview.reader.ReaderView
;
...
...
@@ -44,6 +41,7 @@ import javax.faces.model.ListDataModel;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
@Named
...
...
@@ -79,6 +77,8 @@ public class CardlessIncomingView extends GenericCDIView {
private
ListDataModel
<
GroupMembership
>
memberlist
=
null
;
private
ListDataModel
<
AccountEvent
>
deliverableAccountevents
=
null
;
public
void
initView
()
{
if
(
super
.
requirePermissions
(
UserPermission
.
MODIFY
))
{
...
...
@@ -179,14 +179,49 @@ public class CardlessIncomingView extends GenericCDIView {
}
}
for
(
AccountEvent
ae
:
productBean
.
getDeliverableAccountEvents
(
userview
.
getSelectedUser
()))
{
if
(!
ae
.
isEventDelivered
())
{
productBean
.
markDelivered
(
ae
,
Calendar
.
getInstance
());
}
}
addFaceMessage
(
"incomingflow.allGiven"
,
count
);
memberlist
=
null
;
deliverableAccountevents
=
null
;
}
public
boolean
isAllGiven
()
{
return
false
;
}
public
ListDataModel
<
AccountEvent
>
getDeliverableAccountevents
()
{
deliverableAccountevents
=
new
ListDataModel
<>(
productBean
.
getDeliverableAccountEvents
(
userview
.
getSelectedUser
()));
return
deliverableAccountevents
;
}
public
String
giveAccountEvent
()
{
AccountEvent
row
=
deliverableAccountevents
.
getRowData
();
if
(
row
!=
null
)
{
try
{
productBean
.
markDelivered
(
row
,
Calendar
.
getInstance
());
}
catch
(
RuntimeException
x
)
{
}
deliverableAccountevents
=
null
;
}
return
null
;
}
public
String
ungiveAccountEvent
()
{
AccountEvent
row
=
deliverableAccountevents
.
getRowData
();
if
(
row
!=
null
)
{
productBean
.
markUndelivered
(
row
);
deliverableAccountevents
=
null
;
}
return
null
;
}
}
code/moya-web/src/main/java/fi/codecrew/moya/web/flow/IncomingView.java
View file @
6dda462
...
...
@@ -40,6 +40,7 @@ import javax.inject.Inject;
import
javax.inject.Named
;
import
javax.json.JsonObject
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.List
;
@Named
...
...
@@ -85,6 +86,9 @@ public class IncomingView extends GenericCDIView {
private
PlaceGroupBeanLocal
placegroupBean
;
@EJB
private
ProductBeanLocal
productBean
;
@EJB
private
CardTemplateBeanLocal
cardTemplateBean
;
@EJB
...
...
@@ -287,25 +291,30 @@ public class IncomingView extends GenericCDIView {
}
public
ListDataModel
<
AccountEvent
>
getDeliverableAccountevents
()
{
List
<
AccountEvent
>
accountEvents
=
new
ArrayList
<>();
deliverableAccountevents
=
new
ListDataModel
<>(
productBean
.
getDeliverableAccountEvents
(
userview
.
getSelectedUser
()));
return
deliverableAccountevents
;
}
for
(
AccountEvent
ae
:
userview
.
getSelectedUser
().
getAccountEvents
())
{
if
(!
ae
.
getProduct
().
isDeliverableProduct
())
{
continue
;
}
// places are there already, so don't add them second time
if
(
ae
.
getProduct
().
getPlaces
()
!=
null
&&
!
ae
.
getProduct
().
getPlaces
().
isEmpty
())
{
continue
;
}
public
String
giveAccountEvent
()
{
AccountEvent
row
=
deliverableAccountevents
.
getRowData
();
if
(
row
!=
null
)
{
try
{
productBean
.
markDelivered
(
row
,
Calendar
.
getInstance
());
}
catch
(
RuntimeException
x
)
{
}
accountEvents
.
add
(
ae
)
;
deliverableAccountevents
=
null
;
}
return
null
;
}
deliverableAccountevents
=
new
ListDataModel
<
AccountEvent
>(
accountEvents
);
return
deliverableAccountevents
;
public
String
ungiveAccountEvent
()
{
AccountEvent
row
=
deliverableAccountevents
.
getRowData
();
if
(
row
!=
null
)
{
productBean
.
markUndelivered
(
row
);
deliverableAccountevents
=
null
;
}
return
null
;
}
public
ListDataModel
<
CardCode
>
getCardCodes
()
{
...
...
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
View file @
6dda462
...
...
@@ -1613,3 +1613,9 @@ bortalApplication.map.MOVE_PLACES =Selfservice place moving
bill.list.header
=
Orders
placemove.noMovablePlaces
=
No movable places
deliver
=
Toimita
placegroupview.noProductsToDeliver
=
No deliverable products
placegroupview.productName
=
Product name
incomingflow.giveAccountEvent
=
Mark given
incomingflow.ungiveAccountEvent
=
Mark not given
incomingflow.deliverableProducts
=
Products to deliver
placegroupview.accountEventDescription
=
Description
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
View file @
6dda462
...
...
@@ -1894,3 +1894,9 @@ bortalApplication.map.MOVE_PLACES = Selfservice place moving
bill.list.header
=
Orders
placemove.noMovablePlaces
=
No movable places
deliver
=
Deliver
placegroupview.noProductsToDeliver
=
No deliverable products
placegroupview.productName
=
Product name
incomingflow.giveAccountEvent
=
Mark given
incomingflow.ungiveAccountEvent
=
Mark not given
incomingflow.deliverableProducts
=
Products to deliver
placegroupview.accountEventDescription
=
Description
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
View file @
6dda462
...
...
@@ -1881,3 +1881,9 @@ bortalApplication.map.MOVE_PLACES = Paikkojen
bill.list.header
=
Tilaukset
placemove.noMovablePlaces
=
Ei siirrett
\u
00E4vi
\u
00E4 paikkoja
deliver
=
Toimita
placegroupview.noProductsToDeliver
=
Ei toimitettavia tuotteita
placegroupview.productName
=
Tuotteen nimi
incomingflow.giveAccountEvent
=
Merkitse annetuksi
incomingflow.ungiveAccountEvent
=
Ei olekkaan annettu
incomingflow.deliverableProducts
=
Toimitettavat tuotteet
placegroupview.accountEventDescription
=
Kuvaus
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