Commit 1dec9471 by Antti Tonkyra

Merge branch 'devel' of codecrew.fi:bortal into devel

2 parents 695806c2 08a4c1be
eclipse.preferences.version=1
encoding/<project>=UTF-8
...@@ -79,7 +79,7 @@ public class MenuBean implements MenuBeanLocal { ...@@ -79,7 +79,7 @@ public class MenuBean implements MenuBeanLocal {
usermenu.addPage(menuitemfacade.findOrCreate("/permissionDenied"), null).setVisible(false); usermenu.addPage(menuitemfacade.findOrCreate("/permissionDenied"), null).setVisible(false);
usermenu.addPage(menuitemfacade.findOrCreate("/auth/login"), null).setVisible(false); usermenu.addPage(menuitemfacade.findOrCreate("/auth/login"), null).setVisible(false);
usermenu.addPage(menuitemfacade.findOrCreate("/auth/loginError"), null).setVisible(false); usermenu.addPage(menuitemfacade.findOrCreate("/auth/loginError"), null).setVisible(false);
// usermenu.addPage(menuitemfacade.findOrCreate("/auth/logout"), null).setVisible(false); // disabled // usermenu.addPage(menuitemfacade.findOrCreate("/auth/logout"), null).setVisible(false); // disabled
usermenu.addPage(menuitemfacade.findOrCreate("/auth/logoutResponse"), null).setVisible(false); usermenu.addPage(menuitemfacade.findOrCreate("/auth/logoutResponse"), null).setVisible(false);
usermenu.addPage(menuitemfacade.findOrCreate("/auth/resetPassword"), null).setVisible(false); usermenu.addPage(menuitemfacade.findOrCreate("/auth/resetPassword"), null).setVisible(false);
usermenu.addPage(menuitemfacade.findOrCreate("/auth/resetmailSent"), null).setVisible(false); usermenu.addPage(menuitemfacade.findOrCreate("/auth/resetmailSent"), null).setVisible(false);
...@@ -153,7 +153,9 @@ public class MenuBean implements MenuBeanLocal { ...@@ -153,7 +153,9 @@ public class MenuBean implements MenuBeanLocal {
adminroles.addPage(menuitemfacade.findOrCreate("/role/list"), UserPermission.READ_ROLES); adminroles.addPage(menuitemfacade.findOrCreate("/role/list"), UserPermission.READ_ROLES);
adminroles.addPage(menuitemfacade.findOrCreate("/role/create"), UserPermission.WRITE_ROLES); adminroles.addPage(menuitemfacade.findOrCreate("/role/create"), UserPermission.WRITE_ROLES);
adminroles.addPage(menuitemfacade.findOrCreate("/role/edit"), null).setVisible(false); adminroles.addPage(menuitemfacade.findOrCreate("/role/edit"), null).setVisible(false);
adminroles.addPage(menuitemfacade.findOrCreate("/orgrole/list"), UserPermission.READ_ORGROLES);
adminroles.addPage(menuitemfacade.findOrCreate("/orgrole/create"), UserPermission.WRITE_ORGROLES);
MenuNavigation adminEventCards = adminuser.addPage(null, null); MenuNavigation adminEventCards = adminuser.addPage(null, null);
adminEventCards.setKey("subnavi.cards"); adminEventCards.setKey("subnavi.cards");
adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/listCardTemplates"), UserPermission.READ_ROLES); adminEventCards.addPage(menuitemfacade.findOrCreate("/useradmin/listCardTemplates"), UserPermission.READ_ROLES);
...@@ -198,8 +200,8 @@ public class MenuBean implements MenuBeanLocal { ...@@ -198,8 +200,8 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation mapnavi = adminPlaces.addPage(null, null); MenuNavigation mapnavi = adminPlaces.addPage(null, null);
mapnavi.setKey("topnavi.maps"); mapnavi.setKey("topnavi.maps");
mapnavi.addPage(menuitemfacade.findOrCreate("/map/list"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/create"), MapPermission.MANAGE_MAPS); mapnavi.addPage(menuitemfacade.findOrCreate("/map/create"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/list"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/edit"), null).setVisible(false); mapnavi.addPage(menuitemfacade.findOrCreate("/map/edit"), null).setVisible(false);
...@@ -218,6 +220,15 @@ public class MenuBean implements MenuBeanLocal { ...@@ -218,6 +220,15 @@ public class MenuBean implements MenuBeanLocal {
lognavi.addPage(menuitemfacade.findOrCreate("/actionlog/messagelist"), UserPermission.VIEW_ALL); lognavi.addPage(menuitemfacade.findOrCreate("/actionlog/messagelist"), UserPermission.VIEW_ALL);
lognavi.addPage(menuitemfacade.findOrCreate("/actionlog/taskview"), UserPermission.VIEW_ALL).setVisible(false); lognavi.addPage(menuitemfacade.findOrCreate("/actionlog/taskview"), UserPermission.VIEW_ALL).setVisible(false);
MenuNavigation compoMenu = adminevent.addPage(null, null);
compoMenu.addPage(menuitemfacade.findOrCreate("/voting/admincompolist"), CompoPermission.VIEW_COMPOS);
compoMenu.addPage(menuitemfacade.findOrCreate("/voting/create"), CompoPermission.MANAGE);
MenuNavigation gamenavi = adminevent.addPage(null, null);
gamenavi.setKey("topnavi.license");
gamenavi.addPage(menuitemfacade.findOrCreate("/license/manageCodes"), LicensePermission.MANAGE);
adminevent.addPage(menuitemfacade.findOrCreate("/eventorg/list"), EventPermission.MANAGE_PROPERTIES); adminevent.addPage(menuitemfacade.findOrCreate("/eventorg/list"), EventPermission.MANAGE_PROPERTIES);
navifacade.create(adminmenu); navifacade.create(adminmenu);
......
...@@ -6,6 +6,9 @@ import javax.persistence.criteria.CriteriaBuilder; ...@@ -6,6 +6,9 @@ import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.model.Menuitem_; import fi.codecrew.moya.model.Menuitem_;
import fi.codecrew.moya.model.Menuitem; import fi.codecrew.moya.model.Menuitem;
...@@ -13,6 +16,9 @@ import fi.codecrew.moya.model.Menuitem; ...@@ -13,6 +16,9 @@ import fi.codecrew.moya.model.Menuitem;
@LocalBean @LocalBean
public class MenuitemFacade extends IntegerPkGenericFacade<Menuitem> { public class MenuitemFacade extends IntegerPkGenericFacade<Menuitem> {
private static final Logger logger = LoggerFactory
.getLogger(MenuitemFacade.class);
public MenuitemFacade() { public MenuitemFacade() {
super(Menuitem.class); super(Menuitem.class);
...@@ -23,17 +29,23 @@ public class MenuitemFacade extends IntegerPkGenericFacade<Menuitem> { ...@@ -23,17 +29,23 @@ public class MenuitemFacade extends IntegerPkGenericFacade<Menuitem> {
return null; return null;
} }
CriteriaBuilder cb = getEm().getCriteriaBuilder(); try {
CriteriaQuery<Menuitem> cq = cb.createQuery(Menuitem.class); CriteriaBuilder cb = getEm().getCriteriaBuilder();
Root<Menuitem> root = cq.from(Menuitem.class); CriteriaQuery<Menuitem> cq = cb.createQuery(Menuitem.class);
cq.where(cb.equal(root.get(Menuitem_.url), url)); Root<Menuitem> root = cq.from(Menuitem.class);
Menuitem ret = super.getSingleNullableResult(getEm().createQuery(cq)); cq.where(cb.equal(root.get(Menuitem_.url), url));
if (ret == null) { Menuitem ret = super.getSingleNullableResult(getEm()
ret = new Menuitem(); .createQuery(cq));
ret.setUrl(url); if (ret == null) {
create(ret); ret = new Menuitem();
ret.setUrl(url);
create(ret);
}
return ret;
} catch (Throwable e) {
logger.warn("Exception menussa" + url, e);
} }
return ret; return null;
} }
} }
...@@ -25,9 +25,10 @@ ...@@ -25,9 +25,10 @@
</h:panelGroup> </h:panelGroup>
<h:panelGroup> <h:panelGroup>
<h:form> <h:form>
<h:outputLabel value="#{i18n['user.cropUserImage']}:" />
<p:imageCropper value="#{userView.croppedImage}" aspectRatio="0.7317073170731707" image="/dydata/userimage/#{userView.user.currentImage.id}.jpg" /> <p:imageCropper value="#{userView.croppedImage}" aspectRatio="0.7317073170731707" image="/dydata/userimage/#{userView.user.currentImage.id}.jpg" />
<br />
<h:commandButton action="#{userView.crop}" value="#{i18n['user.cropImage']}" /> <h:commandButton action="#{userView.crop}" value="#{i18n['user.cropImage']}" />
<h:commandButton action="#{userView.cancelCrop}" value="#{i18n['user.cropImage']}" />
</h:form> </h:form>
</h:panelGroup> </h:panelGroup>
<h:panelGroup> <h:panelGroup>
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
<h:commandButton id="commitbtn" action="#{eventorgView.saveEvent()}" value="#{i18n['event.save']}" /> <h:commandButton id="commitbtn" action="#{eventorgView.saveEvent()}" value="#{i18n['event.save']}" />
</h:form> </h:form>
<h2>#{i18n['event.domains.title']}</h2>
<h:form> <h:form>
<h:inputText value="#{eventorgView.newdomain}" /> <h:inputText value="#{eventorgView.newdomain}" />
...@@ -67,7 +68,7 @@ ...@@ -67,7 +68,7 @@
</h:dataTable> </h:dataTable>
</h:form> </h:form>
<h2>Properties</h2> <h2>#{i18n['event.properties.title']}</h2>
<h:form> <h:form>
<h:dataTable var="prop" value="#{eventPropertyView.properties}"> <h:dataTable var="prop" value="#{eventPropertyView.properties}">
<h:column> <h:column>
...@@ -137,7 +138,7 @@ ...@@ -137,7 +138,7 @@
<ui:fragment rendered="#{eventPropertyView.privatePropertyPermission}"> <ui:fragment rendered="#{eventPropertyView.privatePropertyPermission}">
<h2>Private Properties</h2> <h2>#{i18n['event.privateProperties.title']}</h2>
<h:form> <h:form>
<h:dataTable var="prop" value="#{eventPropertyView.privateProperties}"> <h:dataTable var="prop" value="#{eventPropertyView.privateProperties}">
<h:column> <h:column>
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
</h:form> </h:form>
<h2>Placegroup</h2> <h2>#{i18n['editplace.placegroup.title']}</h2>
<h:panelGrid columns="2" rendered="#{empty placeView.place.group}"> <h:panelGrid columns="2" rendered="#{empty placeView.place.group}">
<h:form id="usersearchform"> <h:form id="usersearchform">
<h:outputText value="#{i18n['user.searchUser']}" /> <h:outputText value="#{i18n['user.searchUser']}" />
......
...@@ -98,8 +98,8 @@ ...@@ -98,8 +98,8 @@
<p:inputTextarea cols="50" rendered="#{productShopView.gatherBillInfo}" value="#{productShopView.otherInfo}" label="#{i18n['otherInfo']}" /> <!-- <p:inputTextarea cols="50" rendered="#{productShopView.gatherBillInfo}" value="#{productShopView.otherInfo}" label="#{i18n['otherInfo']}" /> -->
<br />
......
...@@ -75,4 +75,9 @@ a.shopItem:hover { ...@@ -75,4 +75,9 @@ a.shopItem:hover {
a.shopItem:active { a.shopItem:active {
background: red; background: red;
}
.prime-menu-selected div
{
display:block;
} }
\ No newline at end of file
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
<nav> <nav>
<div id="menu"> <div id="menu">
<p:panelMenu model="#{primeMenuView.menuModel}" /> <p:panelMenu model="#{primeMenuView.menuModel}" />
<!-- <ui:fragment rendered="#{menuView.getMenu(2).size() > 1}"> <!-- <ui:fragment rendered="#{menuView.getMenu(2).size() > 1}">
<div id="right"> <div id="right">
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
<br /> <br />
<ui:fragment rendered="#{menuView.renderTopmenuChanger}"> <ui:fragment rendered="#{menuView.renderTopmenuChanger}">
<div class="ui-widget-header">Select Mode: #{menuView.renderTopmenuChanger}</div> <div class="ui-widget-header">Select Mode</div>
<div class="ui-widget-content" style="text-align: center"> <div class="ui-widget-content" style="text-align: center">
<h:form> <h:form>
<p:selectOneMenu value="#{menuView.menuChange}"> <p:selectOneMenu value="#{menuView.menuChange}">
......
<!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:users="http://java.sun.com/jsf/composite/cditools/user"
xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="#{sessionHandler.template}">
<f:metadata>
<f:event type="preRenderView" listener="#{compoView.initListView()}" />
</f:metadata>
<ui:define name="content">
<h:outputStylesheet library="style" name="insomnia2/css/actionlog.css" />
<h1>#{i18n['voting.allcompos.header']}</h1>
<p>#{i18n['voting.allcompos.description']}</p>
<h:form>
<h:dataTable styleClass="bordertable" rowClasses="roweven,rowodd" id="compolisttable" value="#{compoView.compos}" var="compo">
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['voting.allcompos.name']}" />
</f:facet>
<h:outputText value="#{compo.name}" />
</h:column>
<!-- <h:column rendered="#{compoView.curEntries}"> -->
<!-- <f:facet name="header"> -->
<!-- <h:outputText value="#{i18n['voting.allcompos.curEntries']}" /> -->
<!-- </f:facet> -->
<!-- <h:outputText value="#{compoEntries.size()}" /> -->
<!-- </h:column> -->
<!-- <h:column rendered="#{compoView.maxParts}"> -->
<!-- <f:facet name="header"> -->
<!-- <h:outputText value="#{i18n['voting.allcompos.maxParts']}" /> -->
<!-- </f:facet> -->
<!-- <h:outputText value="#{compo.maxParticipantCount}" /> -->
<!-- </h:column> -->
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['voting.allcompos.startTime']}" />
</f:facet>
<h:outputText value="#{compo.startTime.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['voting.allcompos.voteEnd']}" />
</f:facet>
<h:outputText value="#{compo.voteEnd.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['voting.allcompos.submitEnd']}" />
</f:facet>
<h:outputText value="#{compo.submitEnd.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</h:column>
<h:column>
<h:commandButton rendered="#{compo.vote or compoView.manage}" action="#{compoView.startVote()}" value="#{i18n['voting.compo.vote']}" />
</h:column>
<h:column>
<h:commandButton rendered="#{compo.submit or compoView.manage}" action="#{compoView.submitEntry()}" value="#{i18n['voting.compo.submit']}" />
</h:column>
<h:column rendered="#{compoView.manage}">
<h:link outcome="details" value="#{i18n['compo.edit']}">
<f:param name="compoId" value="#{compo.id}" />
</h:link>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
\ No newline at end of file
...@@ -4,6 +4,7 @@ actionlog.message.tooshort = Message is too short! ...@@ -4,6 +4,7 @@ actionlog.message.tooshort = Message is too short!
javax.validation.constraints.NotEmpty.message = Field cannot be empty javax.validation.constraints.NotEmpty.message = Field cannot be empty
javax.validation.constraints.NotNull.message = Field can not be empty javax.validation.constraints.NotNull.message = Field can not be empty
user.cropUserImage = Crop image
user.emailregex = Field must contain an email address. user.emailregex = Field must contain an email address.
user.nickSizeMessage = Nick has to be at least {min} characters long. user.nickSizeMessage = Nick has to be at least {min} characters long.
......
user.nickSizeMessage=Nimimerkin pit olla vhintn {min} merkki pitk.
user.emailregex=Kentss pit olla shkpostiosoite. actionlog.message.tooshort = Kahva ei kelpaa! (Viestisi on liian lyhyt :)
javax.validation.constraints.NotNull.message=Kentt ei saa olla tyhj
actionlog.message.tooshort=Kahva ei kelpaa! (Viestisi on liian lyhyt :) javax.validation.constraints.NotEmpty.message = Kentt\u00E4 ei saa olla tyhj\u00E4
voting.create.participantsError=Osallistujia pit olla yksi tai enemmn. javax.validation.constraints.NotNull.message = Kentt\u00E4 ei saa olla tyhj\u00E4
voting.create.nameError=Nimen pit olla yli 3 merkki pitk.
javax.validation.constraints.NotEmpty.message=Kentt ei saa olla tyhj user.cropUserImage = Kuvan rajaus
user.emailregex = Kent\u00E4ss\u00E4 pit\u00E4\u00E4 olla s\u00E4hk\u00F6postiosoite.
user.nickSizeMessage = Nimimerkin pit\u00E4\u00E4 olla v\u00E4hint\u00E4\u00E4n {min} merkki\u00E4 pitk\u00E4.
voting.create.nameError = Nimen pit\u00E4\u00E4 olla yli 3 merkki\u00E4 pitk\u00E4.
voting.create.participantsError = Osallistujia pit\u00E4\u00E4 olla yksi tai enemm\u00E4n.
...@@ -107,8 +107,29 @@ cardTemplate.emptyCardTemplate = ---- ...@@ -107,8 +107,29 @@ cardTemplate.emptyCardTemplate = ----
error.contact = If this happens again, contact Info with the following code: error.contact = If this happens again, contact Info with the following code:
error.error = You have encountered an error. error.error = You have encountered an error.
event.domains.title = Domain
event.edit = Edit
event.endTime = End time
event.id = Event ID
event.name = Event name
event.nextBillNumber = Initial bill number
event.privateProperties.title = Private Properties
event.properties.title = Properties
event.referenceNumberBase = Reference number base
event.save = Save
event.startTime = Start time
eventdomain.add = Add event domain
eventdomain.domainname = Domain
eventdomain.remove = Remove
eventmap.active = Active
eventorg.create = Create eventorg.create = Create
foodWave.closeNow = Close now
foodWave.openNow = Open now
game.active = Aktiivinen game.active = Aktiivinen
game.codecount = Avattuja game.codecount = Avattuja
game.codes.available = Lisenssikoodit game.codes.available = Lisenssikoodit
...@@ -131,13 +152,16 @@ global.save = Save ...@@ -131,13 +152,16 @@ global.save = Save
httpsession.creationTime = Created httpsession.creationTime = Created
license.active = Active lanEventPrivateProperty.defaultValue = Default value
license.description = Description lanEventPrivateProperty.editProperty = Edit property
license.name = Name lanEventPrivateProperty.save = Save
license.product = Product lanEventPrivateProperty.textValue = Text value
license.save = Save lanEventPrivateProperty.valueIsRawdataWarning = Raw value
license.service = Service
license.url = Url lanEventProperty.booleanValue = Boolean value
lanEventProperty.defaultValue = Default value
lanEventProperty.save = Save
lanEventProperty.textValue = Text value
login.login = Login login.login = Login
login.logout = Logout login.logout = Logout
...@@ -150,7 +174,7 @@ loginerror.header = Login failed ...@@ -150,7 +174,7 @@ loginerror.header = Login failed
loginerror.message = Username of password incorrect. loginerror.message = Username of password incorrect.
loginerror.resetpassword = Reset password loginerror.resetpassword = Reset password
map.id = # map.id = #
navi.auth.login = frontpage navi.auth.login = frontpage
navi.auth.loginerror = frontpage navi.auth.loginerror = frontpage
...@@ -179,12 +203,11 @@ placegroupview.toptext = \ ...@@ -179,12 +203,11 @@ placegroupview.toptext = \
poll.edit = edit poll.edit = edit
product.providedRole = Product defines role print = Print
product.returnProductEdit = Return to product:
product.save = Save
product.saved = Product saved
productFlag.USER_SHOPPABLE = User shoppable product.providedRole = Product defines role
product.returnProductEdit = Return to product:
product.saved = Product saved
productshop.minusOne = -1 productshop.minusOne = -1
productshop.minusTen = -10 productshop.minusTen = -10
...@@ -199,12 +222,11 @@ resetMail.username = Username ...@@ -199,12 +222,11 @@ resetMail.username = Username
resetmailSent.body = Email has been sent containing a link where you can change the password. resetmailSent.body = Email has been sent containing a link where you can change the password.
resetmailSent.header = Email sent resetmailSent.header = Email sent
submenu.license.manageCodes = Manage codes
subnavi.cards = \u0009\u0009 subnavi.cards = \u0009\u0009
topnavi.license = Lisenssikoodit topnavi.license = Lisenssikoodit
user.cropImage = Crop
user.unauthenticated = Kirjautumaton user.unauthenticated = Kirjautumaton
usercart.downloadCsv = CSV usercart.downloadCsv = CSV
......
...@@ -231,7 +231,8 @@ discount.shortdesc = Description ...@@ -231,7 +231,8 @@ discount.shortdesc = Description
discount.validFrom = Valid from discount.validFrom = Valid from
discount.validTo = Valid to discount.validTo = Valid to
editplace.header = Edit place editplace.header = Edit place
editplace.placegroup.title = Placegroup
editplacegroup.header = Placegroup information editplacegroup.header = Placegroup information
...@@ -240,15 +241,20 @@ entry.edit = Edit entry ...@@ -240,15 +241,20 @@ entry.edit = Edit entry
error.contact = If this happens again, contact Info with the following code: error.contact = If this happens again, contact Info with the following code:
error.error = You have encountered an error. error.error = You have encountered an error.
event.defaultRole = Default user role event.defaultRole = Default user role
event.edit = Edit event.domains.title = Domain
event.endTime = End time event.edit = Edit
event.name = Event name event.endTime = End time
event.nextBillNumber = Initial bill number event.id = Event ID
event.referenceNumberBase = Reference number base event.name = Event name
event.save = Save event.nextBillNumber = Initial bill number
event.startTime = Start time event.privateProperties.title = Private Properties
event.properties.title = Properties
event.referenceNumberBase = Reference number base
event.save = Save
event.startTime = Start time
eventdomain.add = Add event domain
eventdomain.domainname = Domain eventdomain.domainname = Domain
eventdomain.remove = Remove eventdomain.remove = Remove
...@@ -274,6 +280,7 @@ eventorg.createEvent = Create event ...@@ -274,6 +280,7 @@ eventorg.createEvent = Create event
eventorg.createevent = Create new event eventorg.createevent = Create new event
eventorg.edit = Edit eventorg.edit = Edit
eventorg.events = Event of the organisation eventorg.events = Event of the organisation
eventorg.id = Event ID
eventorg.organisation = Organisation name eventorg.organisation = Organisation name
eventorg.save = Save eventorg.save = Save
...@@ -290,9 +297,11 @@ food = Food ...@@ -290,9 +297,11 @@ food = Food
foodWave.accountevents = Accountevents foodWave.accountevents = Accountevents
foodWave.activeFoodWaves = Active Foodwaves foodWave.activeFoodWaves = Active Foodwaves
foodWave.billLines = Pending Online Payments foodWave.billLines = Pending Online Payments
foodWave.closeNow = Close now
foodWave.deliveredFoodWaves = Delivered Foodwaves foodWave.deliveredFoodWaves = Delivered Foodwaves
foodWave.list = Active Foodwaves foodWave.list = Active Foodwaves
foodWave.name = Foodwave foodWave.name = Foodwave
foodWave.openNow = Open now
foodWave.orders = Amount of Orders foodWave.orders = Amount of Orders
foodWave.paid = Paid foodWave.paid = Paid
foodWave.show = Show foodWave.show = Show
...@@ -416,6 +425,25 @@ javax.validation.constraints.Past.message = must be in the past ...@@ -416,6 +425,25 @@ javax.validation.constraints.Past.message = must be in the past
javax.validation.constraints.Pattern.message = must match "{regexp}" javax.validation.constraints.Pattern.message = must match "{regexp}"
javax.validation.constraints.Size.message = size must be between {min} and {max} javax.validation.constraints.Size.message = size must be between {min} and {max}
lanEventPrivateProperty.createProperty = Create private property
lanEventPrivateProperty.defaultValue = Default value
lanEventPrivateProperty.editProperty = Edit property
lanEventPrivateProperty.key = Private propery key
lanEventPrivateProperty.save = Save
lanEventPrivateProperty.textValue = Text value
lanEventPrivateProperty.value = Private property value
lanEventPrivateProperty.valueIsRawdataWarning = Raw value
lanEventProperty.booleanValue = Boolean value
lanEventProperty.createProperty = Create property
lanEventProperty.defaultValue = Default value
lanEventProperty.editProperty = Edit property
lanEventProperty.key = Property key
lanEventProperty.save = Save
lanEventProperty.textValue = Text value
lanEventProperty.value = Property value
lanEventProperty.valueIsRawdataWarning = Raw data warning
layout.editBottom = Edit bottom content layout.editBottom = Edit bottom content
layout.editContent = Edit center layout.editContent = Edit center
layout.editTop = Edit topcontent layout.editTop = Edit topcontent
...@@ -440,7 +468,7 @@ loginerror.message = Username of password incorrect. ...@@ -440,7 +468,7 @@ loginerror.message = Username of password incorrect.
loginerror.resetpassword = Reset password loginerror.resetpassword = Reset password
map.create = Create map map.create = Create map
map.createTimeMap = Create tilemap map.createTileMap = Create tilemap
map.edit = Edit map.edit = Edit
map.generate = Generate places map.generate = Generate places
map.height = Place height (px) map.height = Place height (px)
...@@ -486,17 +514,23 @@ menuitem.navigation.key = Product flag ...@@ -486,17 +514,23 @@ menuitem.navigation.key = Product flag
nasty.user = Go away! nasty.user = Go away!
news.abstract = Abstract news.abstract = Abstract
news.expire = Expire news.expire = Expire
news.publish = Publish news.publish = Publish
news.save = Save news.save = Save
news.title = Title news.title = Title
newsgroup.edit = Edit newsgroup.contents = Newsgroup content
newsgroup.name = Newsgroup name newsgroup.create = Create newsgroup
newsgroup.priority = Priority newsgroup.createNewNews = Create a news article to this newsgroup
newsgroup.readerRole = Reader roles newsgroup.create_news = Create a news article
newsgroup.writerRole = Writer roles newsgroup.created = Newsgroup created
newsgroup.edit = Edit
newsgroup.name = Newsgroup name
newsgroup.priority = Priority
newsgroup.readerRole = Reader roles
newsgroup.save = Save
newsgroup.writerRole = Writer roles
newslist.header = Newsgroups newslist.header = Newsgroups
...@@ -600,6 +634,8 @@ place.commit = Save ...@@ -600,6 +634,8 @@ place.commit = Save
place.description = Description place.description = Description
place.details = Details place.details = Details
place.edit = Edit place.edit = Edit
place.groupremove = Remove this place from the group
place.groupremove.confirm = Are you sure you want to remove this place from the group?
place.height = Height place.height = Height
place.id = ID place.id = ID
place.mapX = X place.mapX = X
...@@ -607,7 +643,9 @@ place.mapY = Y ...@@ -607,7 +643,9 @@ place.mapY = Y
place.membership = Associated user place.membership = Associated user
place.name = Name place.name = Name
place.product = Product place.product = Product
place.release = Release this place
place.releasetime = Releasetime place.releasetime = Releasetime
place.reserveForUser = Reserve for the user
place.width = Width place.width = Width
placeSelect.legend.blue = My selected place placeSelect.legend.blue = My selected place
...@@ -659,6 +697,8 @@ poll.end = Close poll ...@@ -659,6 +697,8 @@ poll.end = Close poll
poll.name = Poll name poll.name = Poll name
poll.save = Send answers poll.save = Send answers
print = Print
product.barcode = Barcode product.barcode = Barcode
product.billed = Billed product.billed = Billed
product.boughtTotal = Products billed product.boughtTotal = Products billed
...@@ -836,6 +876,7 @@ submenu.foodwave.list = Foodwaves ...@@ -836,6 +876,7 @@ submenu.foodwave.list = Foodwaves
submenu.foodwave.listTemplates = Food provides submenu.foodwave.listTemplates = Food provides
submenu.index = Frontpage submenu.index = Frontpage
submenu.license.manageCodes = Manage codes submenu.license.manageCodes = Manage codes
submenu.license.viewCodes = View codes
submenu.map.create = Create map submenu.map.create = Create map
submenu.map.list = List maps submenu.map.list = List maps
submenu.orgrole.create = Create organisationrole submenu.orgrole.create = Create organisationrole
...@@ -843,6 +884,7 @@ submenu.orgrole.list = Organisation roles ...@@ -843,6 +884,7 @@ submenu.orgrole.list = Organisation roles
submenu.pages.create = Create content submenu.pages.create = Create content
submenu.pages.list = List pages submenu.pages.list = List pages
submenu.place.adminPlacemap = Placemap submenu.place.adminPlacemap = Placemap
submenu.place.editGroup = Edit group
submenu.place.insertToken = Insert placecode submenu.place.insertToken = Insert placecode
submenu.place.myGroups = Place reservations submenu.place.myGroups = Place reservations
submenu.place.placemap = Placemap submenu.place.placemap = Placemap
...@@ -938,6 +980,7 @@ user.changepassword.forUser = For user ...@@ -938,6 +980,7 @@ user.changepassword.forUser = For user
user.changepassword.title = Change password user.changepassword.title = Change password
user.create = Create user user.create = Create user
user.createdmessage = User has been created successfully. You can now login. user.createdmessage = User has been created successfully. You can now login.
user.cropImage = Crop image
user.defaultImage = Default picture user.defaultImage = Default picture
user.edit = Edit user.edit = Edit
user.edit.title = My information user.edit.title = My information
...@@ -979,6 +1022,8 @@ user.rolesave = Save roles ...@@ -979,6 +1022,8 @@ user.rolesave = Save roles
user.save = Save user.save = Save
user.saveFailed = Save failed, Not enough permissions! user.saveFailed = Save failed, Not enough permissions!
user.saveSuccessfull = Changes saved successfully user.saveSuccessfull = Changes saved successfully
user.search = Search
user.searchUser = Search user
user.sendPicture = Send image user.sendPicture = Send image
user.sex = Sex user.sex = Sex
user.sex.FEMALE = Female user.sex.FEMALE = Female
......
...@@ -232,7 +232,8 @@ discount.shortdesc = Kuvaus ...@@ -232,7 +232,8 @@ discount.shortdesc = Kuvaus
discount.validFrom = Voimassa alkaen discount.validFrom = Voimassa alkaen
discount.validTo = Voimassa asti discount.validTo = Voimassa asti
editplace.header = Muokkaa paikkaa editplace.header = Muokkaa paikkaa
editplace.placegroup.title = Paikkaryhm\u00E4
editplacegroup.header = Paikkaryhm\u00E4n tiedot editplacegroup.header = Paikkaryhm\u00E4n tiedot
...@@ -241,16 +242,21 @@ entry.edit = Muokkaa ...@@ -241,16 +242,21 @@ entry.edit = Muokkaa
error.contact = Jos t\u00E4m\u00E4 toistuu, ota seuraava koodi talteen ja ota yhteys Infoon: error.contact = Jos t\u00E4m\u00E4 toistuu, ota seuraava koodi talteen ja ota yhteys Infoon:
error.error = Olet kohdannut virheen. error.error = Olet kohdannut virheen.
event.defaultRole = K\u00E4ytt\u00E4jien oletusrooli event.defaultRole = K\u00E4ytt\u00E4jien oletusrooli
event.edit = Muokkaa event.domains.title = Verkkotunnus
event.endTime = Lopetusp\u00E4iv\u00E4 event.edit = Muokkaa
event.name = Tapahtuman nimi event.endTime = Lopetusp\u00E4iv\u00E4
event.nextBillNumber = Seuraavan laskun numero event.id = Eventin id
event.referenceNumberBase = Viitenumeron pohja event.name = Tapahtuman nimi
event.save = Tallenna event.nextBillNumber = Seuraavan laskun numero
event.startTime = Aloitusp\u00E4iv\u00E4 event.privateProperties.title = Yksityiset ominaisuudet
event.properties.title = Ominaisuudet
eventdomain.domainname = Domain event.referenceNumberBase = Viitenumeron pohja
event.save = Tallenna
event.startTime = Aloitusp\u00E4iv\u00E4
eventdomain.add = Lis\u00E4\u00E4 verkkotunnus tapahtumalle
eventdomain.domainname = Verkkotunnus
eventdomain.remove = Poista eventdomain.remove = Poista
eventmap.active = Aktiivinen\u0009 eventmap.active = Aktiivinen\u0009
...@@ -275,6 +281,7 @@ eventorg.createEvent = Luo tapahtuma ...@@ -275,6 +281,7 @@ eventorg.createEvent = Luo tapahtuma
eventorg.createevent = Luo uusi tapahtuma eventorg.createevent = Luo uusi tapahtuma
eventorg.edit = Muokkaa eventorg.edit = Muokkaa
eventorg.events = Organisaation tapahtumat eventorg.events = Organisaation tapahtumat
eventorg.id = Tapahtuman ID
eventorg.organisation = Organisaation nimi eventorg.organisation = Organisaation nimi
eventorg.save = Tallenna eventorg.save = Tallenna
...@@ -291,9 +298,11 @@ food = Ruoka ...@@ -291,9 +298,11 @@ food = Ruoka
foodWave.accountevents = Maksetut tilaukset foodWave.accountevents = Maksetut tilaukset
foodWave.activeFoodWaves = Aktiiviset Ruokatilaukset foodWave.activeFoodWaves = Aktiiviset Ruokatilaukset
foodWave.billLines = Maksamattomat Verkkomaksut foodWave.billLines = Maksamattomat Verkkomaksut
foodWave.closeNow = Sulje nyt
foodWave.deliveredFoodWaves = Toimitetut Ruokatilaukset foodWave.deliveredFoodWaves = Toimitetut Ruokatilaukset
foodWave.list = Ruokatilaukset foodWave.list = Ruokatilaukset
foodWave.name = Ruokatilaus foodWave.name = Ruokatilaus
foodWave.openNow = Avaa nyt
foodWave.orders = Tilausten M\u00E4\u00E4r\u00E4 foodWave.orders = Tilausten M\u00E4\u00E4r\u00E4
foodWave.paid = Maksettuja foodWave.paid = Maksettuja
foodWave.show = N\u00E4yt\u00E4 foodWave.show = N\u00E4yt\u00E4
...@@ -426,6 +435,25 @@ javax.validation.constraints.Past.message = must be in the past ...@@ -426,6 +435,25 @@ javax.validation.constraints.Past.message = must be in the past
javax.validation.constraints.Pattern.message = must match "{regexp}" javax.validation.constraints.Pattern.message = must match "{regexp}"
javax.validation.constraints.Size.message = size must be between {min} and {max} javax.validation.constraints.Size.message = size must be between {min} and {max}
lanEventPrivateProperty.createProperty = Luo yksityinen ominaisuus
lanEventPrivateProperty.defaultValue = Oletusarvo
lanEventPrivateProperty.editProperty = Muokkaa ominaisuutta
lanEventPrivateProperty.key = Ominaisuuden avain
lanEventPrivateProperty.save = Tallenna
lanEventPrivateProperty.textValue = Tekstiarvo
lanEventPrivateProperty.value = Ominaisuuden arvo
lanEventPrivateProperty.valueIsRawdataWarning = Raaka arvo
lanEventProperty.booleanValue = Totuusarvo
lanEventProperty.createProperty = Luo ominaisuus
lanEventProperty.defaultValue = Oletusarvo
lanEventProperty.editProperty = Muokkaa arvoa
lanEventProperty.key = Ominaisuuden avain
lanEventProperty.save = Tallenna
lanEventProperty.textValue = Tekstiarvo
lanEventProperty.value = Ominaisuuden arvo
lanEventProperty.valueIsRawdataWarning = Varoitus raakadatasta
layout.editBottom = Muokkaa alasis\u00E4lt\u00F6\u00E4 layout.editBottom = Muokkaa alasis\u00E4lt\u00F6\u00E4
layout.editContent = Muokkaa sis\u00E4lt\u00F6\u00E4 layout.editContent = Muokkaa sis\u00E4lt\u00F6\u00E4
layout.editTop = Muokkaa yl\u00E4sis\u00E4lt\u00F6\u00E4 layout.editTop = Muokkaa yl\u00E4sis\u00E4lt\u00F6\u00E4
...@@ -450,7 +478,7 @@ loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut o ...@@ -450,7 +478,7 @@ loginerror.message = K\u00E4ytt\u00E4j\u00E4tunnus tai salasana ei ollut o
loginerror.resetpassword = Salasana unohtunut? loginerror.resetpassword = Salasana unohtunut?
map.create = Luo kartta map.create = Luo kartta
map.createTimeMap = Luo tilekartta map.createTileMap = Luo tilekartta
map.edit = Muokkaa map.edit = Muokkaa
map.generate = Generoi paikat map.generate = Generoi paikat
map.height = Paikan korkeus (px) map.height = Paikan korkeus (px)
...@@ -482,30 +510,36 @@ mapView.notEnoughCreditsToReserve = Sinulla ei ole riitt\u00E4v\u00E4sti suorite ...@@ -482,30 +510,36 @@ mapView.notEnoughCreditsToReserve = Sinulla ei ole riitt\u00E4v\u00E4sti suorite
mapedit.save = Tallenna muutokset mapedit.save = Tallenna muutokset
menu.index = Etusivu menu.index = Etusivu
menu.name = Nimi menu.name = Nimi
menu.place.placemap = Paikkakartta menu.place.placemap = Paikkakartta
menu.poll.index = Kyselyt menu.poll.index = Kyselyt
menu.select = Valitse menu.select = Valitse
menu.shop.createBill = Kauppa menu.shop.createBill = Kauppa
menu.sort = J\u00E4rjest\u00E4 menu.sort = J\u00E4rjest\u00E4
menu.toAdmin = Yll\u00E4piton\u00E4kym\u00E4 menu.toAdmin = Yll\u00E4piton\u00E4kym\u00E4
menu.toUser = K\u00E4ytt\u00E4j\u00E4n\u00E4kym\u00E4 menu.toUser = K\u00E4ytt\u00E4j\u00E4n\u00E4kym\u00E4
menu.user.edit = Omat tiedot menu.user.edit = Omat tiedot
nasty.user = Mene pois! nasty.user = Mene pois!
news.abstract = Lyhennelm\u00E4 news.abstract = Lyhennelm\u00E4
news.expire = Lopeta julkaisu news.expire = Lopeta julkaisu
news.publish = Julkaise news.publish = Julkaise
news.save = Tallenna news.save = Tallenna
news.title = Otsikko news.title = Otsikko
newsgroup.edit = Muokkaa newsgroup.contents = Uutisryhm\u00E4n sis\u00E4lt\u00F6
newsgroup.name = Uutisryhm\u00E4n nimi newsgroup.create = Luo uutisryhm\u00E4
newsgroup.priority = Painoarvo newsgroup.createNewNews = Luo uutinen uutisryhm\u00E4\u00E4n
newsgroup.readerRole = Lukijoiden roolit newsgroup.create_news = Luo uutinen
newsgroup.writerRole = Kirjoittajaryhm\u00E4 newsgroup.created = Uutisryhm\u00E4 luotu
newsgroup.edit = Muokkaa
newsgroup.name = Uutisryhm\u00E4n nimi
newsgroup.priority = Painoarvo
newsgroup.readerRole = Lukijoiden roolit
newsgroup.save = Tallenna
newsgroup.writerRole = Kirjoittajaryhm\u00E4
newslist.header = Uutisryhm\u00E4t newslist.header = Uutisryhm\u00E4t
...@@ -583,6 +617,7 @@ place.description = Kuvaus ...@@ -583,6 +617,7 @@ place.description = Kuvaus
place.details = Tiedot place.details = Tiedot
place.edit = Muokkaa place.edit = Muokkaa
place.groupremove = Poista paikka paikkaryhm\u00E4st\u00E4 place.groupremove = Poista paikka paikkaryhm\u00E4st\u00E4
place.groupremove.confirm = Oletko varma, ett\u00E4 haluat poistaa konepaikan ryhm\u00E4st\u00E4.
place.height = Korkeus place.height = Korkeus
place.id = ID place.id = ID
place.mapX = X place.mapX = X
...@@ -591,7 +626,9 @@ place.membership = Yhdistetty k\u00E4ytt\u00E4j\u00E4 ...@@ -591,7 +626,9 @@ place.membership = Yhdistetty k\u00E4ytt\u00E4j\u00E4
place.name = Nimi place.name = Nimi
place.noReserver = Ei liitetty k\u00E4ytt\u00E4j\u00E4\u00E4n place.noReserver = Ei liitetty k\u00E4ytt\u00E4j\u00E4\u00E4n
place.product = Tuote place.product = Tuote
place.release = Vapauta paikka
place.releasetime = Vapautusaika place.releasetime = Vapautusaika
place.reserveForUser = Varaa k\u00E4ytt\u00E4j\u00E4lle
place.width = Leveys place.width = Leveys
placeSelect.legend.blue = Oma valittu paikka placeSelect.legend.blue = Oma valittu paikka
...@@ -643,6 +680,8 @@ poll.end = Sulje kysely ...@@ -643,6 +680,8 @@ poll.end = Sulje kysely
poll.name = Kyselyn nimi poll.name = Kyselyn nimi
poll.save = L\u00E4het\u00E4 vastauksesi poll.save = L\u00E4het\u00E4 vastauksesi
print = Tulosta
product.barcode = Viivakoodi product.barcode = Viivakoodi
product.billed = Laskutettu product.billed = Laskutettu
product.boughtTotal = Tuotteita laskutettu product.boughtTotal = Tuotteita laskutettu
...@@ -816,6 +855,7 @@ submenu.foodmanager.listFoodwaves = Aktiiviset ruokatilaukset ...@@ -816,6 +855,7 @@ submenu.foodmanager.listFoodwaves = Aktiiviset ruokatilaukset
submenu.foodwave.list = Ruokailu submenu.foodwave.list = Ruokailu
submenu.index = Etusivu submenu.index = Etusivu
submenu.license.manageCodes = Hallinnoi lisenssej\u00E4 submenu.license.manageCodes = Hallinnoi lisenssej\u00E4
submenu.license.viewCodes = N\u00E4yt\u00E4 koodit
submenu.map.create = Uusi kartta submenu.map.create = Uusi kartta
submenu.map.list = N\u00E4yt\u00E4 kartat submenu.map.list = N\u00E4yt\u00E4 kartat
submenu.orgrole.create = Luo j\u00E4rjest\u00E4j\u00E4rooli submenu.orgrole.create = Luo j\u00E4rjest\u00E4j\u00E4rooli
...@@ -823,6 +863,7 @@ submenu.orgrole.list = J\u00E4rjest\u00E4j\u00E4roolit ...@@ -823,6 +863,7 @@ submenu.orgrole.list = J\u00E4rjest\u00E4j\u00E4roolit
submenu.pages.create = Luo sis\u00E4lt\u00F6\u00E4 submenu.pages.create = Luo sis\u00E4lt\u00F6\u00E4
submenu.pages.list = N\u00E4yt\u00E4 sis\u00E4ll\u00F6t submenu.pages.list = N\u00E4yt\u00E4 sis\u00E4ll\u00F6t
submenu.place.adminPlacemap = Konepaikat submenu.place.adminPlacemap = Konepaikat
submenu.place.editGroup = Muokkaa ryhm\u00E4\u00E4
submenu.place.insertToken = Sy\u00F6t\u00E4 paikkakoodi submenu.place.insertToken = Sy\u00F6t\u00E4 paikkakoodi
submenu.place.myGroups = Omat paikkavaraukset submenu.place.myGroups = Omat paikkavaraukset
submenu.place.placemap = Paikkakartta submenu.place.placemap = Paikkakartta
...@@ -921,6 +962,7 @@ user.changepassword.forUser = K\u00E4ytt\u00E4j\u00E4lle ...@@ -921,6 +962,7 @@ user.changepassword.forUser = K\u00E4ytt\u00E4j\u00E4lle
user.changepassword.title = Vaihda salasana user.changepassword.title = Vaihda salasana
user.create = Luo k\u00E4ytt\u00E4j\u00E4 user.create = Luo k\u00E4ytt\u00E4j\u00E4
user.createdmessage = K\u00E4ytt\u00E4j\u00E4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n. user.createdmessage = K\u00E4ytt\u00E4j\u00E4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00E4\u00E4n.
user.cropImage = Rajaa
user.defaultImage = Oletukuva user.defaultImage = Oletukuva
user.edit = Muokkaa user.edit = Muokkaa
user.edit.title = Omat tiedot user.edit.title = Omat tiedot
...@@ -959,6 +1001,8 @@ user.realname = Nimi ...@@ -959,6 +1001,8 @@ user.realname = Nimi
user.roles = Roolit user.roles = Roolit
user.rolesave = Tallenna roolit user.rolesave = Tallenna roolit
user.save = Tallenna user.save = Tallenna
user.search = Hae
user.searchUser = Hae k\u00E4ytt\u00E4j\u00E4\u00E4
user.sendPicture = Kuvan l\u00E4hetys user.sendPicture = Kuvan l\u00E4hetys
user.sex = Sukupuoli user.sex = Sukupuoli
user.sex.FEMALE = Nainen user.sex.FEMALE = Nainen
......
...@@ -84,6 +84,7 @@ public class MenuView extends GenericCDIView { ...@@ -84,6 +84,7 @@ public class MenuView extends GenericCDIView {
} }
public void menuChangeEvent() { public void menuChangeEvent() {
layoutview.setPageName(menuChange);
navihandler.forward(menuChange); navihandler.forward(menuChange);
// super.navihandler.forward(menuChange); // super.navihandler.forward(menuChange);
} }
...@@ -233,6 +234,9 @@ public class MenuView extends GenericCDIView { ...@@ -233,6 +234,9 @@ public class MenuView extends GenericCDIView {
} }
public String getMenuChange() { public String getMenuChange() {
if (menuChange == null || menuChange.isEmpty()) {
menuChange = layoutview.getPagepath();
}
return menuChange; return menuChange;
} }
......
package fi.codecrew.moya.web.cdiview.menu; package fi.codecrew.moya.web.cdiview.menu;
import java.util.List; import java.util.Set;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
...@@ -75,34 +75,19 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -75,34 +75,19 @@ public class PrimeMenuView extends GenericCDIView {
if (menuModel == null) if (menuModel == null)
{ {
menuModel = new DefaultMenuModel(); menuModel = new DefaultMenuModel();
MenuNavigation selectedTop = menubean.findNavigation(layoutview.getPagepath()); MenuNavigation selectedTop = layoutview.getSelectedTopmenu();
while (selectedTop != null && selectedTop.getParent() != null)
{
selectedTop = selectedTop.getParent();
}
List<MenuNavigation> tops = menubean.getTopmenus(); for (MenuNavigation m : selectedTop.getChildren()) {
if (!tops.contains(selectedTop) && !tops.isEmpty()) if (m.getItem() != null && m.getChildren().isEmpty()) {
{
selectedTop = tops.get(0);
}
for (MenuNavigation m : selectedTop.getChildren())
{
if (m.getItem() != null && m.getChildren().isEmpty())
{
DefaultMenuItem menuitem = mkMenuitem(m); DefaultMenuItem menuitem = mkMenuitem(m);
if (menuitem != null) if (menuitem != null) {
{
menuModel.addElement(menuitem); menuModel.addElement(menuitem);
} }
} else { } else {
Submenu subm = addSubmenu(m, layoutview.getSelectedSet());
Submenu subm = addSubmenu(m); if (subm != null) {
if (subm != null)
{
menuModel.addElement(subm); menuModel.addElement(subm);
} }
} }
...@@ -113,12 +98,15 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -113,12 +98,15 @@ public class PrimeMenuView extends GenericCDIView {
return menuModel; return menuModel;
} }
private DefaultSubMenu addSubmenu(MenuNavigation m) { private DefaultSubMenu addSubmenu(MenuNavigation m, Set<MenuNavigation> selectedSet) {
DefaultSubMenu ret = null; DefaultSubMenu ret = null;
if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission()))) if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission())))
{ {
ret = new DefaultSubMenu(); ret = new DefaultSubMenu();
if (selectedSet.contains(m)) {
ret.setStyleClass("prime-menu-selected");
}
ret.setLabel(I18n.get(m.getKey())); ret.setLabel(I18n.get(m.getKey()));
for (MenuNavigation child : m.getChildren()) for (MenuNavigation child : m.getChildren())
{ {
...@@ -127,17 +115,17 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -127,17 +115,17 @@ public class PrimeMenuView extends GenericCDIView {
if (child.getItem() != null) if (child.getItem() != null)
{ {
DefaultMenuItem item = mkMenuitem(child); DefaultMenuItem item = mkMenuitem(child);
if (item != null) if (item != null) {
{
item.setValue(I18n.get(child.getKey())); item.setValue(I18n.get(child.getKey()));
ret.addElement(item); ret.addElement(item);
} }
} else if (ret.getElementsCount() > 0) { } else if (ret.getElementsCount() > 0) {
ret.addElement(new DefaultSeparator()); ret.addElement(new DefaultSeparator());
} }
} else { } else {
DefaultSubMenu subm = addSubmenu(child); DefaultSubMenu subm = addSubmenu(child, selectedSet);
if (subm != null) if (subm != null)
{ {
subm.setLabel(I18n.get(child.getKey())); subm.setLabel(I18n.get(child.getKey()));
...@@ -160,6 +148,7 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -160,6 +148,7 @@ public class PrimeMenuView extends GenericCDIView {
if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission()))) if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission())))
{ {
item = new DefaultMenuItem(); item = new DefaultMenuItem();
String outcome; String outcome;
if (m.getSitepage() != null) if (m.getSitepage() != null)
{ {
......
package fi.codecrew.moya.web.helper; package fi.codecrew.moya.web.helper;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.MissingResourceException; import java.util.MissingResourceException;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.Set;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
...@@ -17,10 +21,12 @@ import org.slf4j.Logger; ...@@ -17,10 +21,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.EventBeanLocal; import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.MenuBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal; import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.enums.apps.ContentPermission; import fi.codecrew.moya.enums.apps.ContentPermission;
import fi.codecrew.moya.model.LanEventProperty; import fi.codecrew.moya.model.LanEventProperty;
import fi.codecrew.moya.model.LanEventPropertyKey; import fi.codecrew.moya.model.LanEventPropertyKey;
import fi.codecrew.moya.model.MenuNavigation;
@Named @Named
@RequestScoped @RequestScoped
...@@ -37,6 +43,9 @@ public class LayoutView { ...@@ -37,6 +43,9 @@ public class LayoutView {
private StreamedContent headerimage; private StreamedContent headerimage;
private String headertext; private String headertext;
@EJB
private transient MenuBeanLocal menubean;
private static final Logger logger = LoggerFactory.getLogger(LayoutView.class); private static final Logger logger = LoggerFactory.getLogger(LayoutView.class);
public void init() { public void init() {
...@@ -48,6 +57,38 @@ public class LayoutView { ...@@ -48,6 +57,38 @@ public class LayoutView {
return permbean.hasPermission(ContentPermission.MANAGE_PAGES); return permbean.hasPermission(ContentPermission.MANAGE_PAGES);
} }
private Set<MenuNavigation> selectedSet;
public Set<MenuNavigation> getSelectedSet()
{
if (selectedSet == null) {
getSelectedTopmenu();
}
return selectedSet;
}
private MenuNavigation selectedTop;
public MenuNavigation getSelectedTopmenu()
{
if (selectedTop == null)
{
selectedSet = new HashSet<>();
selectedTop = menubean.findNavigation(getPagepath());
while (selectedTop != null && selectedTop.getParent() != null) {
selectedTop = selectedTop.getParent();
selectedSet.add(selectedTop);
}
List<MenuNavigation> tops = menubean.getTopmenus();
if (!tops.contains(selectedTop) && !tops.isEmpty()) {
selectedTop = tops.get(0);
}
selectedSet = Collections.unmodifiableSet(selectedSet);
}
return selectedTop;
}
public String getPagepath() { public String getPagepath() {
if (pagename == null) { if (pagename == null) {
HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest(); HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();
...@@ -137,4 +178,9 @@ public class LayoutView { ...@@ -137,4 +178,9 @@ public class LayoutView {
public void setHeadertext(String headertext) { public void setHeadertext(String headertext) {
this.headertext = headertext; this.headertext = headertext;
} }
public void setPageName(String menuChange) {
this.pagename = menuChange;
selectedTop = null;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!