Page 1 of 1
Activate a menuitem of static menu from pageload
Posted: 27 May 2020, 22:03
by ednil
Is it possible to activate a menuitem (static menu) on page load ?
I'd like to activate a menuitem from static menu, when a page is access directly from url.
Tks.
Re: Activate a menuitem of static menu from pageload
Posted: 03 Jun 2020, 09:49
by mert.sincan
Hi,
Please make the following changes;
Code: Select all
//SiberiaMenuRenderer.java
...
@Override
protected void encodeScript(FacesContext context, AbstractMenu abstractMenu) throws IOException {
SiberiaMenu menu = (SiberiaMenu) abstractMenu;
String clientId = menu.getClientId(context);
HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String pathname = req.getContextPath() + req.getServletPath();
ResponseWriter rw = context.getResponseWriter();
rw.startElement("script", null);
rw.writeAttribute("id", clientId + "_s", null);
rw.writeAttribute("type", "text/javascript", null);
rw.write("PrimeFaces.cw(\"Siberia\",\"");
rw.write(menu.resolveWidgetVar());
rw.write("\",{id:\"");
rw.write(clientId);
rw.write("\",");
// attrs
rw.write("pathname:\"");
rw.write(pathname);
rw.write("\"");
rw.write("});");
rw.endElement("script");
}
...
Code: Select all
//layout.js
...
restoreMenuState: function() {
var link = $('a[href^="' + this.cfg.pathname + '"]');
if (link) {
var menuitem = link.closest('li');
var parentMenu = menuitem.closest('ul');
menuitem.addClass('active-menuitem');
if (parentMenu.length) {
while (!parentMenu.hasClass('layout-menu')) {
var parentMenuItem = parentMenu.closest('li');
parentMenuItem.addClass('active-menuitem');
parentMenu.show();
parentMenu = parentMenuItem.closest('ul');
if (!parentMenu.length) {
break;
}
}
}
}
var sidebarCookie = $.cookie('siberia_menu_static');
if(sidebarCookie) {
this.wrapper.addClass('layout-static layout-static-active');
}
},
...
Best Regards,