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