navigation.jsp

 

<%@page import="com.ibm.portal.navigation.NavigationNode"%>
<%@ page session="false" buffer="none" %> 
<%@ page trimDirectiveWhitespaces="true" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ include file="../includePortalTaglibs.jspf" %>
<%@ page import="java.util.List, java.util.ArrayList" %>

<%-- 
    The following variables are defined in bootstrap.jspf for performance reasons and reused here:
        * selectionPath
        * deviceClass
        * isMobile --%>

<%-- the current toolbar mode ("closed", "open" or "minimized") --%>
<c:set var="toolbarMode"><r:dataSource uri="utb:state" mode="download"></r:dataSource></c:set>

<%-- the page is in edit mode if the toolbar is either open or minimized --%>
<c:set var="inEditMode" value="${toolbarMode eq 'minimized' or toolbarMode eq 'open'}"/>

<c:set var="startLevel" value="${param.startLevel}" />
<c:set var="selectedNodeID" value="${wp.identification[wp.selectionModel.selected]}" />
<c:set var="selectionPathLength" value="${fn:length(selectionPath)}" />
<c:set var="primeNavigation" value="${ccConfig['cc.primeNavigation'] and inEditMode}" />


<%
    // Check if pages need to be hidden
    ServletContext servletCtx = getServletConfig().getServletContext();

    List navHiddenMetadata = (List) servletCtx.getAttribute("navHiddenMetadata");
    
    request.setAttribute("navHiddenMetadataStr", navHiddenMetadata.toString());
%>

<c:forEach var="node" items="${wp.navigationModel.children[wp.navigationModel.root]}" varStatus="status" step="1">
    <c:set var="currentPageCUN" value="${fn:trim(node.contentNode.objectID.uniqueName)}"></c:set>
        
    <%-- myco.footer is defined in WCM -->
    <c:if test="${empty node.metadata['topNav'] && !fn:contains(navHiddenMetadataStr, currentPageCUN) && currentPageCUN ne 'myco.footer'}">
      
        <%     List<NavigationNode> childNodes = new ArrayList<NavigationNode>();    %>

        <c:if test="${wp.navigationModel.hasChildren[node]}">
            <c:forEach var="childNode" items="${wp.navigationModel.children[node]}">
                <c:set var="childNode" value="${childNode}" scope="request"></c:set>
                <c:if test="${empty childNode.metadata['topNav'] && !childNode.metadata['com.ibm.portal.Hidden'] && !(isMobile && childNode.metadata['com.ibm.portal.mobile.Hidden'])}">
                    <%    childNodes.add((NavigationNode)request.getAttribute("childNode")); %> 
                </c:if>
            </c:forEach>
        </c:if>        

        <% request.setAttribute("childNodes", childNodes); %>
        <c:choose>
            <c:when test="${not empty childNodes}">
                <li class="dropdown">

                    <a href="#" 
                       class="dropdown-toggle" 
                       data-toggle="dropdown" 
                       title='<portal-fmt:description varname="${node}"/>'>
                           <portal-fmt:title varname="${node}"/><b class="caret"></b>
                    </a>

                    <ul class="dropdown-menu">

                    <c:forEach var="childNode" items="${childNodes}">
                        <li><a onclick="javascript:return checkDirtyFlag();" 
                                  href='<portal-navigation:navigationUrl type="link" keepNavigationalState="false" varname="${childNode}"/>' 
                                  title='<portal-fmt:description varname="${childNode}"/>'>
                                  <portal-fmt:title varname="${childNode}"/>
                                  </a>
                        </li>
                    </c:forEach>

                    </ul>
                </li>    
            </c:when>
            <c:otherwise>
               <c:if test="${deviceClass == 'smartphone' && currentPageCUN ne 'myco.public.government'}">
                    <li class="<c:if test="${wp.selectionModel[node] != null}">active</c:if>"><a  onclick="javascript:return checkDirtyFlag();" href='<portal-navigation:navigationUrl type="link" keepNavigationalState="false" varname="${node}"/>' title='<portal-fmt:description varname="${node}"/>'><portal-fmt:title varname="${node}"/></a></li>
               </c:if>
               <c:if test="${deviceClass != 'smartphone'}">
                    <li class="<c:if test="${wp.selectionModel[node] != null}">active</c:if>"><a  onclick="javascript:return checkDirtyFlag();" href='<portal-navigation:navigationUrl type="link" keepNavigationalState="false" varname="${node}"/>' title='<portal-fmt:description varname="${node}"/>'><portal-fmt:title varname="${node}"/></a></li>
               </c:if>
            </c:otherwise>
        </c:choose>
        
    </c:if>
</c:forEach>