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 46fb9c9e
authored
Dec 23, 2016
by
Tuomas Riihimäki
Committed by
Tuomas Riihimäki
Apr 13, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement moving places
1 parent
8d71ba5f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
68 additions
and
44 deletions
code/moya-beans/ejbModule/fi/codecrew/moya/beans/PlaceBean.java
code/moya-web/WebContent/neomap/moveplaces.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/MapPlacechangeView.java
code/moya-beans/ejbModule/fi/codecrew/moya/beans/PlaceBean.java
View file @
46fb9c9
...
...
@@ -510,23 +510,50 @@ public class PlaceBean implements PlaceBeanLocal {
}
private
PlaceSlot
releasePlacePriv
(
Place
place
)
{
EventUser
user
=
permbean
.
getCurrentUser
();
if
(
place
.
getGroup
()
!=
null
||
place
.
getCurrentUser
()
==
null
||
(!
permbean
.
hasPermission
(
MapPermission
.
MANAGE_OTHERS
)
&&
!
place
.
getCurrentUser
().
equals
(
user
)))
{
return
null
;
}
if
(
place
.
getGroup
()
!=
null
)
{
place
.
getGroup
().
getPlaces
().
remove
(
place
);
}
place
.
setGroup
(
null
);
place
.
setCurrentUser
(
null
);
place
.
setReserveTime
(
null
);
if
(
place
.
getPlaceReserver
()
!=
null
)
{
place
.
getPlaceReserver
().
setPlaceReservation
(
null
);
place
.
setPlaceReserver
(
null
);
}
PlaceSlot
slot
=
placeSlotFacade
.
findSlotForPlace
(
place
);
// remove also slot from place
if
(
slot
!=
null
)
{
slot
.
setPlace
(
null
);
slot
.
setUsed
(
null
);
place
.
setReserverSlot
(
null
);
}
return
slot
;
}
public
GroupMembership
removeGroupMembership
(
Place
place
)
{
GroupMembership
res
=
place
.
getPlaceReserver
();
if
(
res
!=
null
)
{
if
(
res
.
getPlaceGroup
().
getMembers
()
!=
null
)
{
res
.
getPlaceGroup
().
getMembers
().
remove
(
res
);
}
if
(
res
.
getUser
()
!=
null
&&
res
.
getUser
().
getGroupMemberships
()
!=
null
)
{
res
.
getUser
().
getGroupMemberships
().
remove
(
res
);
}
place
.
setPlaceReserver
(
null
);
gmemfacade
.
remove
(
res
);
}
return
res
;
}
@Override
@RolesAllowed
(
MapPermission
.
S_VIEW
)
public
Place
find
(
int
placeId
)
{
...
...
@@ -552,36 +579,9 @@ public class PlaceBean implements PlaceBeanLocal {
@RolesAllowed
(
MapPermission
.
S_MANAGE_OTHERS
)
public
Place
unbuyPlace
(
Place
place
)
{
place
=
placeFacade
.
reload
(
place
);
if
(
place
.
getGroup
()
!=
null
)
{
place
.
getGroup
().
getPlaces
().
remove
(
place
);
}
place
.
setGroup
(
null
);
place
.
setCurrentUser
(
null
);
place
.
setReserveTime
(
null
);
if
(
place
.
getPlaceReserver
()
!=
null
)
{
GroupMembership
res
=
place
.
getPlaceReserver
();
if
(
res
.
getPlaceGroup
().
getMembers
()
!=
null
)
{
res
.
getPlaceGroup
().
getMembers
().
remove
(
res
);
}
if
(
res
.
getUser
()
!=
null
&&
res
.
getUser
().
getGroupMemberships
()
!=
null
)
{
res
.
getUser
().
getGroupMemberships
().
remove
(
res
);
}
place
.
setPlaceReserver
(
null
);
gmemfacade
.
remove
(
res
);
}
PlaceSlot
slot
=
placeSlotFacade
.
findSlotForPlace
(
place
);
removeGroupMembership
(
place
);
releasePlacePriv
(
place
);
// remove also slot from place
if
(
slot
!=
null
)
{
slot
.
setPlace
(
null
);
slot
.
setUsed
(
null
);
place
.
setReserverSlot
(
null
);
}
return
place
;
}
...
...
@@ -858,24 +858,45 @@ public class PlaceBean implements PlaceBeanLocal {
for
(
Entry
<
Place
,
Place
>
s
:
change
.
entrySet
())
{
Place
src
=
placeFacade
.
reload
(
s
.
getKey
());
Place
dst
=
placeFacade
.
reload
(
s
.
getValue
());
if
(!
src
.
getProduct
().
equals
(
dst
.
getProduct
()))
{
throw
new
EJBException
(
"src and dst product types differ for {}, {}"
+
src
+
" "
+
dst
);
}
if
(!
manageOthers
&&
!
user
.
equals
(
src
.
getCurrentUser
())
&&
(
src
.
getGroup
()
==
null
||
!
user
.
equals
(
src
.
getGroup
().
getCreator
())))
{
throw
new
EJBAccessException
(
"Trying to move places for another user without permissions!"
);
}
Place
dst
=
placeFacade
.
reload
(
s
.
getValue
());
if
(!
dst
.
isBuyable
()
||
dst
.
isTaken
())
{
throw
new
EJBException
(
"Place already taken!!"
);
}
// Store values we want to store to the destination place
PlaceGroup
grp
=
src
.
getGroup
();
GroupMembership
gmem
=
src
.
getPlaceReserver
();
EventUser
currentUser
=
src
.
getCurrentUser
();
PlaceSlot
srcSlot
=
releasePlacePriv
(
src
);
if
(
srcSlot
!=
null
)
{
// this place was reserved via a slot...
srcSlot
.
setPlace
(
dst
);
dst
.
setReserverSlot
(
srcSlot
);
srcSlot
.
setUsed
(
new
Date
());
}
dst
.
setCurrentUser
(
user
);
dst
.
setReserveTime
(
Calendar
.
getInstance
());
dst
.
setCurrentUser
(
currentUser
);
if
(
gmem
!=
null
)
{
dst
.
setPlaceReserver
(
gmem
);
gmem
.
setPlaceReservation
(
dst
);
}
dst
.
setGroup
(
grp
);
if
(
grp
!=
null
)
{
grp
.
getPlaces
().
add
(
dst
);
}
}
}
...
...
code/moya-web/WebContent/neomap/moveplaces.xhtml
View file @
46fb9c9
...
...
@@ -79,7 +79,9 @@
<p:commandButton
rendered=
"#{ajaxMapView.canUserBuy()}"
value=
"#{i18n['mapPlacechange.commitMove']}"
action=
"#{mapPlacechangeView.commitMove()}"
/>
action=
"#{mapPlacechangeView.commitMove()}"
ajax=
"false"
/>
</h:form>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/MapPlacechangeView.java
View file @
46fb9c9
...
...
@@ -98,7 +98,7 @@ public class MapPlacechangeView extends GenericCDIView {
}
}
public
void
commitMove
(){
public
String
commitMove
(){
HashMap
<
Place
,
Place
>
change
=
new
HashMap
<
Place
,
Place
>();
for
(
MoveContainer
s
:
slots
){
...
...
@@ -108,8 +108,9 @@ public class MapPlacechangeView extends GenericCDIView {
}
placebean
.
movePlaces
(
change
);
slots
=
null
;
initView
();
//slots = null;
//initView();
return
"/place/myGroups?faces_redirect=true"
;
}
public
void
toggleDstPlace
()
{
...
...
@@ -117,14 +118,14 @@ public class MapPlacechangeView extends GenericCDIView {
Integer
placeId
=
new
Integer
(
paramMap
.
get
(
"placeId"
));
Place
place
=
placebean
.
find
(
placeId
);
setToggleSuccess
(
false
)
;
toggleSuccess
=
false
;
for
(
MoveContainer
mc
:
getMoveContainers
())
{
if
(
place
.
equals
(
mc
.
getSrc
().
getPlace
()))
{
setSlotState
(
mc
,
!
mc
.
isMoving
());
return
;
}
if
(
place
.
equals
(
mc
.
getDst
()))
{
setToggleSuccess
(
true
)
;
toggleSuccess
=
true
;
mc
.
setDst
(
null
);
return
;
}
...
...
@@ -135,7 +136,7 @@ public class MapPlacechangeView extends GenericCDIView {
}
for
(
MoveContainer
mc
:
moveContainers
)
{
if
(
mc
.
isMoving
()
&&
mc
.
dst
==
null
&&
mc
.
getSrc
().
getProduct
().
equals
(
place
.
getProduct
()))
{
setToggleSuccess
(
true
)
;
toggleSuccess
=
true
;
mc
.
setDst
(
place
);
return
;
}
...
...
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