Commit 3102a7a1 by Tuomas Riihimäki

Menu toimii.. /utils/flushCache:sta löytyy menun resetointinappi...

1 parent 2f50e842
package fi.insomnia.bortal.beans;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import javax.annotation.security.DeclareRoles;
......@@ -11,6 +8,9 @@ import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.apps.BillPermission;
import fi.insomnia.bortal.enums.apps.MapPermission;
import fi.insomnia.bortal.enums.apps.PollPermission;
......@@ -19,7 +19,6 @@ import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.facade.MenuNavigationFacade;
import fi.insomnia.bortal.facade.MenuitemFacade;
import fi.insomnia.bortal.model.MenuNavigation;
import fi.insomnia.bortal.model.Menuitem;
/**
* Session Bean implementation class Menubean
......@@ -44,30 +43,36 @@ public class Menubean implements MenubeanLocal {
@EJB
private PermissionBeanLocal permbean;
private static final Logger logger = LoggerFactory.getLogger(Menubean.class);
@Override
public MenuNavigation getMenuNavigation(String url) {
return navifacade.find(url, eventbean.getCurrentEvent());
MenuNavigation ret = navifacade.find(url, eventbean.getCurrentEvent());
logger.warn("Children at bean: {}", ret.getChildren());
return ret;
}
@Override
public List<MenuNavigation> getTopnavigations() {
HashMap<Menuitem, MenuNavigation> ret = new HashMap<Menuitem, MenuNavigation>();
for (MenuNavigation navi : navifacade.findToplevels())
{
if ((navi.getEvent() == null && ret.containsKey(navi.getItem())))
continue;
ret.put(navi.getItem(), navi);
}
ArrayList<MenuNavigation> retlist = new ArrayList<MenuNavigation>(ret.values());
if (retlist.isEmpty())
{
initializeMenu();
}
Collections.sort(retlist);
return retlist;
return navifacade.findToplevels();
// HashMap<Menuitem, MenuNavigation> ret = new HashMap<Menuitem,
// MenuNavigation>();
//
// for (MenuNavigation navi : )
// {
//
// ret.put(navi.getItem(), navi);
// }
// ArrayList<MenuNavigation> retlist = new
// ArrayList<MenuNavigation>(ret.values());
// if (retlist.isEmpty())
// {
// initializeMenu();
// }
// logger.info("Returning topmenus: {}", retlist);
// Collections.sort(retlist);
// return retlist;
}
......
......@@ -120,7 +120,7 @@ public class MenuNavigationFacade extends GenericFacade<Integer, MenuNavigation>
Root<MenuNavigation> root = cq.from(MenuNavigation.class);
Path<LanEvent> eventpath = root.get(MenuNavigation_.event);
cq.where(cb.isNull(root.get(MenuNavigation_.parent)), cb.or(cb.equal(eventpath, eventbean.getCurrentEvent()), cb.isNull(eventpath)));
cq.where(cb.isNull(root.get(MenuNavigation_.parent)), cb.or(cb.equal(eventpath, eventbean.getCurrentEvent()), cb.isNull(eventpath)), cb.isTrue(root.get(MenuNavigation_.visible)));
return em.createQuery(cq).getResultList();
}
......
......@@ -8,6 +8,7 @@ import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
......@@ -60,10 +61,10 @@ public class MenuNavigation extends GenericEntity implements Comparable<MenuNavi
@JoinColumn(nullable = true)
private MenuNavigation parent;
@OneToMany(mappedBy = "parent", cascade = ALL)
@OneToMany(mappedBy = "parent", cascade = ALL, fetch = FetchType.EAGER)
@PrivateOwned
@OrderBy("sort")
private List<MenuNavigation> children;
private List<MenuNavigation> children = new ArrayList<MenuNavigation>();
@Transient
transient private IAppPermission privatePerm;
......
......@@ -233,7 +233,7 @@ sidebar.user.list=K\u00e4ytt\u00e4j\u00e4t
sidebar.users=K\u00e4ytt\u00e4j\u00e4t
sidebar.utils.flushCache=Flush Cache
sidebar.utils.testdata=Testdata
topmenu.adminfront=Admintavaraa
topnavi.adminfront=Admintavaraa
menu.poll.index=Kyselyt
menu.index=Etusivu
......@@ -267,9 +267,13 @@ submenu.role.create=Luo rooli
submenu.user.listCardTemplates=Korttiryhm\u00e4t
submenu.user.createCardTemplate=Luo korttiryhm\u00e4
topmenu.game=Insomnia Game
topmenu.poll=Kyselyt
topmenu.rfidshop=Staffshop
topnavi.frontpage=Etusivu
topnavi.placemap=Paikkakartta
topnavi.shop=Kauppa
topnavi.user=
topnavi.game=Insomnia Game
topnavi.poll=Kyselyt
topnavi.rfidshop=Staffshop
user.accountBalance=Tilin saldo
user.accountEventHeader=Tilitapahtumat
......
......@@ -23,6 +23,15 @@ public class JsfMenuitem {
// item = new Menuitem("/page/?id=" + sitepage.getId(), null, null);
// text = sitepage.getName();
// }
public String hetFooter()
{
return navigation.getFooter();
}
public String getHeader()
{
return navigation.getHeader();
}
public void setSelected() {
selected = true;
......
......@@ -25,7 +25,6 @@ public class MenuView {
private String pagename;
private List<JsfMenuitem> submenu;
private List<JsfMenuitem> topmenu;
private MenuNavigation currentPage;
@Inject
private FacesContext context;
......@@ -37,6 +36,7 @@ public class MenuView {
@EJB
private SitePageBeanLocal sitepagebean;
private ArrayList<MenuNavigation> menupath;
private static final Logger logger = LoggerFactory.getLogger(MenuView.class);
public String getPagename() {
......@@ -54,18 +54,26 @@ public class MenuView {
{
if (submenu == null)
{
getTopmenu();
MenuNavigation topPage = menupath.get(menupath.size() - 1);
submenu = new ArrayList<JsfMenuitem>();
for (MenuNavigation item : menubean.getMenuNavigation(getPagename()).getChildren()) {
if (permbean.hasPermission(item.getPermission())) {
JsfMenuitem thisitem = new JsfMenuitem(item);
for (MenuNavigation navi : topPage.getChildren()) {
logger.info("Trying to add item {}", navi.getKey());
if (permbean.hasPermission(navi.getPermission())) {
JsfMenuitem thisitem = new JsfMenuitem(navi);
submenu.add(thisitem);
if (currentPage.equals(item)) {
if (menupath.contains(navi)) {
thisitem.setSelected();
}
}
}
logger.info("Initialized submenu {}", submenu);
}
return submenu;
}
......@@ -77,14 +85,21 @@ public class MenuView {
// if there are no results!
List<MenuNavigation> menuitems = menubean.getTopnavigations();
currentPage = menubean.getMenuNavigation(getPagename());
MenuNavigation topPage = currentPage;
while (topPage.getParent() != null)
menupath = new ArrayList<MenuNavigation>();
MenuNavigation currentPage = menubean.getMenuNavigation(getPagename());
while (currentPage != null)
{
topPage = topPage.getParent();
menupath.add(currentPage);
currentPage = currentPage.getParent();
}
for (MenuNavigation m : menuitems) {
if (m.getPermission() != null && !permbean.hasPermission(m.getPermission()))
{
continue;
}
JsfMenuitem thisitem = new JsfMenuitem(m);
if (m.getItem() == null && m.getSitepage() == null)
{
......@@ -99,12 +114,11 @@ public class MenuView {
}
}
logger.info("Trying to add topmenu {}", m.getKey());
if (thisitem.getOutcome() != null)
{
topmenu.add(thisitem);
if (m.equals(topPage)) {
if (menupath.contains(m)) {
thisitem.setSelected();
}
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!