Commit bd291409 by Antti Jaakkola

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

Conflicts:
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n.properties
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_en.properties
	code/MoyaWeb/src/fi/codecrew/moya/resources/i18n_fi.properties
2 parents 631a54be 521247ce
eclipse.preferences.version=1
encoding/<project>=UTF-8
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,6 +153,8 @@ public class MenuBean implements MenuBeanLocal { ...@@ -153,6 +153,8 @@ 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");
...@@ -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;
} }
try {
CriteriaBuilder cb = getEm().getCriteriaBuilder(); CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Menuitem> cq = cb.createQuery(Menuitem.class); CriteriaQuery<Menuitem> cq = cb.createQuery(Menuitem.class);
Root<Menuitem> root = cq.from(Menuitem.class); Root<Menuitem> root = cq.from(Menuitem.class);
cq.where(cb.equal(root.get(Menuitem_.url), url)); cq.where(cb.equal(root.get(Menuitem_.url), url));
Menuitem ret = super.getSingleNullableResult(getEm().createQuery(cq)); Menuitem ret = super.getSingleNullableResult(getEm()
.createQuery(cq));
if (ret == null) { if (ret == null) {
ret = new Menuitem(); ret = new Menuitem();
ret.setUrl(url); ret.setUrl(url);
create(ret); create(ret);
} }
return ret; return ret;
} catch (Throwable e) {
logger.warn("Exception menussa" + url, e);
}
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>
......
...@@ -76,3 +76,8 @@ a.shopItem:hover { ...@@ -76,3 +76,8 @@ 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
...@@ -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.
...@@ -226,7 +226,7 @@ subnavi.cards = \u0009\u0009 ...@@ -226,7 +226,7 @@ subnavi.cards = \u0009\u0009
topnavi.license = Lisenssikoodit topnavi.license = Lisenssikoodit
user.cropImage = Crop image user.cropImage = Crop
user.unauthenticated = Kirjautumaton user.unauthenticated = Kirjautumaton
usercart.downloadCsv = CSV usercart.downloadCsv = CSV
......
...@@ -962,7 +962,7 @@ user.changepassword.forUser = K\u00E4ytt\u00E4j\u00E4lle ...@@ -962,7 +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 kuva 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
......
package fi.codecrew.moya.web.cdiview.menu; package fi.codecrew.moya.web.cdiview.menu;
import java.util.HashSet;
import java.util.List; 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 +77,32 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -75,34 +77,32 @@ public class PrimeMenuView extends GenericCDIView {
if (menuModel == null) if (menuModel == null)
{ {
menuModel = new DefaultMenuModel(); menuModel = new DefaultMenuModel();
MenuNavigation selectedTop = menubean.findNavigation(layoutview.getPagepath()); Set<MenuNavigation> selectedSet = new HashSet<>();
while (selectedTop != null && selectedTop.getParent() != null)
{ final MenuNavigation thisPage = menubean.findNavigation(layoutview.getPagepath());
MenuNavigation selectedTop = thisPage;
while (selectedTop != null && selectedTop.getParent() != null) {
selectedTop = selectedTop.getParent(); selectedTop = selectedTop.getParent();
selectedSet.add(selectedTop);
} }
List<MenuNavigation> tops = menubean.getTopmenus(); List<MenuNavigation> tops = menubean.getTopmenus();
if (!tops.contains(selectedTop) && !tops.isEmpty()) if (!tops.contains(selectedTop) && !tops.isEmpty()) {
{
selectedTop = tops.get(0); selectedTop = tops.get(0);
} }
for (MenuNavigation m : selectedTop.getChildren()) for (MenuNavigation m : selectedTop.getChildren()) {
{ if (m.getItem() != null && m.getChildren().isEmpty()) {
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); Submenu subm = addSubmenu(m, selectedSet);
if (subm != null) if (subm != null) {
{
menuModel.addElement(subm); menuModel.addElement(subm);
} }
} }
...@@ -113,12 +113,15 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -113,12 +113,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 +130,17 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -127,17 +130,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 +163,7 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -160,6 +163,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)
{ {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!