Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Riina Antikainen
/
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 aeb5d833
authored
Dec 15, 2014
by
Tuukka Kivilahti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ilmoitus kun lähtee kuikkaan
1 parent
54a1900d
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
82 additions
and
54 deletions
code/moya-beans/ejbModule/fi/codecrew/moya/facade/PlaceFacade.java
code/moya-web/WebContent/neomap/reserve.xhtml
code/moya-web/WebContent/resources/seatjs/seatmap.js
code/moya-web/WebContent/resources/templates/primelayout/template.xhtml
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/AjaxMapView.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/facade/PlaceFacade.java
View file @
aeb5d83
...
...
@@ -117,6 +117,27 @@ public class PlaceFacade extends IntegerPkGenericFacade<Place> {
return
q
.
getResultList
();
}
public
List
<
Place
>
findUsersUnlocketSelected
(
EventUser
user
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Place
>
cq
=
cb
.
createQuery
(
Place
.
class
);
Root
<
Place
>
root
=
cq
.
from
(
Place
.
class
);
cq
.
select
(
root
);
cq
.
where
(
cb
.
and
(
cb
.
equal
(
root
.
get
(
Place_
.
map
).
get
(
EventMap_
.
event
),
user
.
getEvent
()),
cb
.
equal
(
root
.
get
(
Place_
.
currentUser
),
user
),
cb
.
isNull
(
root
.
get
(
Place_
.
group
))
));
TypedQuery
<
Place
>
q
=
getEm
().
createQuery
(
cq
);
return
q
.
getResultList
();
}
public
int
setBuyable
(
EventMap
map
,
String
like
,
boolean
b
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
Place
>
cq
=
cb
.
createQuery
(
Place
.
class
);
...
...
code/moya-web/WebContent/neomap/reserve.xhtml
View file @
aeb5d83
...
...
@@ -14,14 +14,12 @@
<ui:composition
template=
"#{sessionHandler.template}"
>
<f:metadata>
<f:event
type=
"preRenderView"
listener=
"#{ajaxMapView.initReserveMap()}"
/>
<f:event
type=
"preRenderView"
listener=
"#{ajaxMapView.initReserveMap()}"
/>
</f:metadata>
<ui:param
name=
"thispage"
value=
"page.place.placemap"
/>
<ui:define
name=
"content"
>
<h:form>
<p:remoteCommand
name=
"updateWholePage"
update=
"@all"
action=
"#{ajaxMapView.initReserveMap()}"
/>
<p:remoteCommand
name=
"updateWholePage"
update=
"@all"
action=
"#{ajaxMapView.initReserveMap()}"
/>
</h:form>
<p:dialog
rendered=
"#{ajaxMapView.isMgmtPermission()}"
visible=
"#{!empty ajaxMapView.place}"
id=
"fbdiag"
>
Clicked place name : #{ajaxMapView.place.name};
...
...
@@ -38,33 +36,24 @@
<ui:fragment
rendered=
"#{layoutView.manageContent}"
>
<h:link
rendered=
"#{layoutView.manageContent}"
styleClass=
"editorlink"
value=
"Edit content for users in queue"
outcome=
"/pages/manage"
>
<h:link
rendered=
"#{layoutView.manageContent}"
styleClass=
"editorlink"
value=
"Edit content for users in queue"
outcome=
"/pages/manage"
>
<f:param
name=
"pagename"
value=
"#{layoutView.pagepath}:inqueue"
/>
</h:link>
<br/>
<h:link
rendered=
"#{layoutView.manageContent}"
styleClass=
"editorlink"
value=
"Edit content for user reserving places"
outcome=
"/pages/manage"
>
<h:link
rendered=
"#{layoutView.manageContent}"
styleClass=
"editorlink"
value=
"Edit content for user reserving places"
outcome=
"/pages/manage"
>
<f:param
name=
"pagename"
value=
"#{layoutView.pagepath}:reserving"
/>
</h:link>
<br/>
</ui:fragment>
<ui:repeat
var=
"cont1"
rendered=
"#{ajaxMapView.queueEnabled and ajaxMapView.reserving}"
value=
"#{menuView.getPagecontent('reserving')}"
>
<ui:repeat
var=
"cont1"
rendered=
"#{ajaxMapView.queueEnabled and ajaxMapView.reserving}"
value=
"#{menuView.getPagecontent('reserving')}"
>
<h:outputText
value=
"#{cont1.content}"
escape=
"false"
/>
</ui:repeat>
<ui:repeat
var=
"cont1"
rendered=
"#{ajaxMapView.queueEnabled and not ajaxMapView.reserving}"
value=
"#{menuView.getPagecontent('inqueue')}"
>
<ui:repeat
var=
"cont1"
rendered=
"#{ajaxMapView.queueEnabled and not ajaxMapView.reserving}"
value=
"#{menuView.getPagecontent('inqueue')}"
>
<h:outputText
value=
"#{cont1.content}"
escape=
"false"
/>
</ui:repeat>
<br/>
...
...
@@ -73,9 +62,7 @@
<h:outputText
value=
"#{i18n['mapView.yourPlaces']}"
/>
</h3>
<p:dataTable
tableStyle=
"
width: auto;"
var=
"cnt"
value=
"#{ajaxMapView.slotcount}"
>
<p:dataTable
tableStyle=
" width: auto;"
var=
"cnt"
value=
"#{ajaxMapView.slotcount}"
>
<p:column
headerText=
"#{i18n['mapView.productcount.productname']}"
>
<h:outputText
value=
"#{cnt.product.name}"
/>
...
...
@@ -87,16 +74,13 @@
<ui:fragment
rendered=
"#{ajaxMapView.reserving}"
>
<div
style=
"margin: 5px;"
>
<h:form
id=
"placeselectform"
>
<p:commandButton
rendered=
"#{ajaxMapView.canUserBuy()}"
value=
"#{i18n['mapView.buyPlaces']}"
action=
"#{ajaxMapView.buySelectedPlaces()}"
ajax=
"false"
/>
<p:commandButton
onclick=
"$(window).unbind('beforeunload');"
rendered=
"#{ajaxMapView.canUserBuy()}"
value=
"#{i18n['mapView.buyPlaces']}"
actionListener=
"#{ajaxMapView.buySelectedPlaces()}"
/>
</h:form>
</div>
</ui:fragment>
<ui:fragment
rendered=
"#{ajaxMapView.queueEnabled and not ajaxMapView.reserving}"
>
<ui:fragment
rendered=
"#{ajaxMapView.queueEnabled and not ajaxMapView.reserving}"
>
<h3><h:outputText
value=
"#{i18n['mapView.youAreInQueue']}"
/></h3>
<div
style=
"margin: 1em;"
>
...
...
@@ -108,9 +92,7 @@
</ui:fragment>
<svg
id=
"seatmap"
style=
"margin: auto; border: 1px solid black;"
width=
"#{ajaxMapView.map.width}px"
height=
"#{ajaxMapView.map.height}px"
/>
<svg
id=
"seatmap"
style=
"margin: auto; border: 1px solid black;"
width=
"#{ajaxMapView.map.width}px"
height=
"#{ajaxMapView.map.height}px"
/>
<script
type=
"text/javascript"
>
...
...
@@ -162,13 +144,6 @@
reloadQueue
();
});
// You cannot do alert or stuff before unloading, you can just return message what will be shown to user "are you sure you want to leave"
$
(
window
).
bind
(
'beforeunload'
,
function
()
{
if
(
pageEscapeAlert
)
{
alert
(
"#{i18n['mapView.lockPlacesBeforeLeaving']}"
);
}
});
</script>
...
...
@@ -228,9 +203,7 @@
<ui:fragment
rendered=
"#{ajaxMapView.reserving}"
>
<div
style=
"margin: 5px;"
>
<h:form
id=
"placeselectformBottom"
>
<p:commandButton
rendered=
"#{ajaxMapView.canUserBuy()}"
value=
"#{i18n['mapView.buyPlaces']}"
action=
"#{ajaxMapView.buySelectedPlaces()}"
ajax=
"false"
/>
<p:commandButton
onclick=
"$(window).unbind('beforeunload');"
rendered=
"#{ajaxMapView.canUserBuy()}"
value=
"#{i18n['mapView.buyPlaces']}"
actionListener=
"#{ajaxMapView.buySelectedPlaces()}"
/>
</h:form>
</div>
</ui:fragment>
...
...
code/moya-web/WebContent/resources/seatjs/seatmap.js
View file @
aeb5d83
...
...
@@ -57,14 +57,19 @@ function placemap(opts)
cannot_reserve
:
"Ei voitu varata paikkaa"
,
cannot_release
:
"Ei voitu vapauttaa paikkaa"
,
success_reserve
:
"Varattu paikka"
,
success_release
:
"Vapautettu paikka"
success_release
:
"Vapautettu paikka"
,
leavemessage
:
"Et ole lukinnut paikkojasi, oletko varma että haluat poistua?"
};
px
.
locales
[
'en'
]
=
{
cannot_reserve
:
"Can't reserve place"
,
cannot_release
:
"Can't release place"
,
success_reserve
:
"Place reserved"
,
success_release
:
"Place released"
success_release
:
"Place released"
,
leavemessage
:
"Forgot to lock your places, are you sure you want to leave?"
};
px
.
is_leave_message_on
=
false
;
px
.
selected_count
=
0
;
var
guide_layer
=
px
.
element
.
append
(
"g"
).
attr
(
"id"
,
"guides"
);
...
...
@@ -239,6 +244,8 @@ function placemap(opts)
//px.onclick(data);
px
.
toggle_place
(
data
);
//px.update_place(data.id);
...
...
@@ -257,6 +264,25 @@ function placemap(opts)
}*/
}
px
.
update_leavemessage
=
function
()
{
if
(
px
.
is_leave_message_on
)
{
if
(
px
.
selected_count
<=
0
)
{
px
.
selected_count
=
0
;
px
.
is_leave_message_on
=
false
$
(
window
).
unbind
(
'beforeunload'
);
}
}
else
{
if
(
px
.
selected_count
>
0
)
{
$
(
window
).
bind
(
'beforeunload'
,
function
()
{
return
px
.
locales
[
px
.
locale
].
leavemessage
;
});
px
.
is_leave_message_on
=
true
;
}
}
}
function
place_color
(
d
,
i
)
{
if
(
Object
.
keys
(
px
.
place_colors
).
indexOf
(
d
.
state
)
!=
-
1
)
return
px
.
place_colors
[
d
.
state
];
...
...
@@ -285,6 +311,7 @@ function placemap(opts)
.
style
(
'stroke'
,
'#101010'
)
.
style
(
'stroke-width'
,
'1'
)
.
append
(
"title"
,
function
(
d
,
i
)
{
return
d
.
name
;
});
places
.
attr
(
"x"
,
function
(
d
,
i
)
{
return
d
.
x
;
})
.
attr
(
"y"
,
function
(
d
,
i
)
{
return
d
.
y
;
})
...
...
@@ -395,25 +422,28 @@ function placemap(opts)
console
.
log
(
data
.
places
[
0
]);
if
(
data
.
places
[
0
].
state
==
place
.
state
)
{
if
(
place
.
state
==
"F"
)
PF
(
"
g
"
).
show
([{
"summary"
:
px
.
locales
[
px
.
locale
].
cannot_reserve
,
if
(
place
.
state
==
"F"
)
PF
(
"
messages_growl
"
).
show
([{
"summary"
:
px
.
locales
[
px
.
locale
].
cannot_reserve
,
"detail"
:
""
,
"severity"
:
"warn"
}]);
if
(
place
.
state
==
"T"
)
PF
(
"
g
"
).
show
([{
"summary"
:
px
.
locales
[
px
.
locale
].
cannot_release
,
if
(
place
.
state
==
"T"
)
PF
(
"
messages_growl
"
).
show
([{
"summary"
:
px
.
locales
[
px
.
locale
].
cannot_release
,
"detail"
:
""
,
"severity"
:
"warn"
}]);
}
else
if
(
data
.
places
[
0
].
state
==
"T"
)
{
PF
(
"g"
).
show
([{
"summary"
:
px
.
locales
[
px
.
locale
].
success_reserve
,
"detail"
:
""
,
"severity"
:
"info"
}])
;
// tän korjaus sotki ehkä jotain, otetaan poies
//PF("messages_growl").show([{"summary":px.locales[px.locale].success_reserve, "detail":"", "severity":"info"}]);
px
.
selected_count
++
;
}
else
if
(
data
.
places
[
0
].
state
==
"F"
)
{
PF
(
"g"
).
show
([{
"summary"
:
px
.
locales
[
px
.
locale
].
success_release
,
"detail"
:
""
,
"severity"
:
"info"
}]);
else
if
(
data
.
places
[
0
].
state
==
"F"
)
{
//PF("messages_growl").show([{"summary":px.locales[px.locale].success_release, "detail":"", "severity":"info"}]);
if
(
px
.
selected_count
>
0
)
{
px
.
selected_count
--
;
}
else
{
px
.
selected_count
=
0
;
}
}
px
.
update_leavemessage
();
}
);
}
...
...
code/moya-web/WebContent/resources/templates/primelayout/template.xhtml
View file @
aeb5d83
...
...
@@ -188,7 +188,7 @@
<p:menubar
rendered=
"#{primeMenuView.hasSecondaryMenu}"
model=
"#{primeMenuView.secondaryMenuModel}"
/>
<h:form
id=
"messages"
>
<p:growl
id=
"growl"
showDetail=
"true"
/>
<p:growl
id=
"growl"
showDetail=
"true"
widgetVar=
"messages_growl"
/>
</h:form>
...
...
code/moya-web/src/main/java/fi/codecrew/moya/web/cdiview/map/AjaxMapView.java
View file @
aeb5d83
...
...
@@ -211,16 +211,17 @@ public class AjaxMapView extends GenericCDIView {
return
userview
.
getSelectedUser
();
}
public
String
buySelectedPlaces
()
{
public
void
buySelectedPlaces
()
{
try
{
EventUser
user
=
userview
.
getSelectedUser
();
placebean
.
buySelectedPlaces
(
user
);
quebean
.
remove
(
initMap
(),
user
);
return
"/place/myGroups"
;
// return "/place/myGroups";
super
.
navihandler
.
forward
(
"/place/myGroups?faces-redirect=true"
);
}
catch
(
BortalCatchableException
e
)
{
addFaceMessage
(
"mapView.errorWhileBuyingPlaces"
);
}
return
null
;
}
public
boolean
isMgmtPermission
()
...
...
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n.properties
View file @
aeb5d83
...
...
@@ -469,3 +469,4 @@ usercart.showoverview = Vie tarkastusn\u00E4kym\u00E4\u00E4n
viewlectures.title
=
Kurssit ja luennot
yes
=
Kyll
\u
00E4
placeslot.state.expired
=
Vanhentunut
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_en.properties
View file @
aeb5d83
...
...
@@ -1677,3 +1677,4 @@ voting.create.voteEnd = Voting close
voting.create.voteStart
=
Voting start
yes
=
Yes
placeslot.state.expired
=
Expired
code/moya-web/src/main/resources/fi/codecrew/moya/resources/i18n_fi.properties
View file @
aeb5d83
...
...
@@ -1659,3 +1659,4 @@ voting.create.voteEnd = \u00C4\u00E4nestys kiinni
voting.create.voteStart
=
\u
00C4
\u
00E4nestys auki
yes
=
Kyll
\u
00E4
placeslot.state.expired
=
Vanhentunut
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