Activate a menuitem of static menu from pageload

Forum rules
Please note that response time for technical support is within 3-5 business days.
Post Reply
ednil
Posts: 3
Joined: 21 Sep 2018, 04:29

27 May 2020, 22:03

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.

mert.sincan
Posts: 5281
Joined: 29 Jun 2013, 12:38

03 Jun 2020, 09:49

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,

Post Reply

Return to “Siberia - PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 5 guests