head.jspf

 

<%-- Licensed Materials - Property of IBM, 5724-E76, (C) Copyright IBM Corp. 2001, 2004, 2006 - All Rights reserved.

    NOTE: See notes in Default.jsp for information regarding editing theme JSP fragments.    

--%>
<%--  ******************  BIDI  ******************  
    The following bit of code is to make BIDI support a little easier.
    These variables are meant to suppliment the <portal:bidi ...> tag.
    There are situations where it is easier to use these variables instead of the tag itself.
--%>

<%
    String bidiAlignRight = "right";    // BIDI sensitive value for align="right" attribute     String bidiAlignLeft  = "left";     // BIDI sensitive value for align="left" attribute     String bidiDirAttr    = "";         // BIDI sensitive value for dir="rtl" attribute     String bidiImageRTL   = null;       // BIDI sensitive value for adding _rtl to a graphic     boolean isRTL = false;
%>

<portal-fmt:bidi dir="rtl">
<%
        bidiAlignRight = "left";         // BIDI sensitive value for align="right" attribute         bidiAlignLeft  = "right";        // BIDI sensitive value for align="left" attribute         bidiDirAttr    = "dir=\"rtl\"";  // BIDI sensitive value for dir="rtl" attribute         bidiImageRTL   = "_rtl";         // BIDI sensitive value for adding _rtl to a graphic         isRTL = true;
%>
</portal-fmt:bidi>

<%!
    private static com.ibm.portal.model.NavigationSelectionModelHome navigationSelectionModelHome;
    private static com.ibm.portal.identification.Identification identification;    
    private static com.ibm.portal.model.ContentMetaDataModelHome cmdmHome;   
    public void jspInit()
    {
        try         {
            /* Only perform this JNDI lookup once as this is an expensive call performance wise */

            javax.naming.Context ctx = new javax.naming.InitialContext();
            navigationSelectionModelHome = (com.ibm.portal.model.NavigationSelectionModelHome) ctx.lookup("portal:service/model/NavigationSelectionModel");
            identification = (com.ibm.portal.identification.Identification) ctx.lookup( "portal:service/Identification" );
            cmdmHome = (com.ibm.portal.model.ContentMetaDataModelHome) ctx.lookup("portal:service/model/ContentMetaDataModel"); 
        }
        catch ( javax.naming.NamingException ne )
        {
            // you do not log anything here because if portal ever enters             // this catch statement then there are severe problems that have 
            // occurred while fetching the model home and will already have been             // logged by errors reported by the lookup.
        }
    }
    
    protected Object getMetaData(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) throws com.ibm.portal.ModelException     {
        com.ibm.portal.model.NavigationSelectionModelProvider nsmProvider = navigationSelectionModelHome.getNavigationSelectionModelProvider();
        com.ibm.portal.navigation.NavigationSelectionModel nsm = nsmProvider.getNavigationSelectionModel(request, response);
        com.ibm.portal.model.ContentMetaDataModelProvider cmdmProvider = cmdmHome.getContentMetaDataModelProvider();
        com.ibm.portal.content.ContentMetaDataModel cmdm = cmdmProvider.getContentMetaDataModel(request, response);
        com.ibm.wps.model.ModelUtil modelUtil = com.ibm.wps.model.ModelUtil.from((javax.servlet.http.HttpServletRequest)request, (javax.servlet.http.HttpServletResponse)response);    
        Object cn = nsm.getSelectedNode();
        com.ibm.portal.MetaData md = cmdm.getMetaData(cn);
        Object metaDataValue = md.getValue("com.ibm.portal.applicationGuid");
        return metaDataValue;
    }
    
%>
<head>
<title><portal-fmt:text key="title" bundle="nls.engine"/></title>
<link href='<portal-logic:urlFindInTheme file="images/Portal.ico"/>' rel="shortcut icon">

<%--  ******************  Browser Detection  ******************  
    This section uses the CCPP profile to detect the browser.
    The browser variable is passed to the CSS jsps to implement browser-specific styles.
    Default theme CSS needs only differentiate between IE and Mozilla-based browsers.
    This will be done in the cacheProxyUrlTag when the cacheproxyservlet gets deployed in the build --%>

<%@ page import="javax.ccpp.Profile" %>
<%@ page import="javax.ccpp.Attribute" %>
<%@ page import="javax.ccpp.ProfileFactory" %>

<%
// Determine the browser. For the purposes, you only distinguish IE vs Moz        
 String vendor = null;
 Profile clientProfile = null;
 ProfileFactory profileFactory = ProfileFactory.getInstance();
 if (profileFactory != null) {
    clientProfile = profileFactory.newProfile(request);
    Attribute attribute = clientProfile.getAttribute("Vendor");
    if (attribute != null) {
           vendor =  attribute.toString();
    }
 }
 if("Microsoft".equals(vendor)){pageContext.setAttribute("browser", "ie");}
 else if("Apple".equals(vendor)){pageContext.setAttribute("browser", "safari");}
 else{pageContext.setAttribute("browser", "Moz");}
%>
<c:set var="isIE" value="${browser eq 'ie'}"/>
<c:set var="isSafari" value="${browser eq 'safari'}"/>
<%--  ******************  CSS  ******************  
    Currently CSS JSPs are called directly and browser and locale are passed as query params.
    When the cacheproxyservlet is deployed in the build, these links will switch to the form:
    <link href='<portal:cacheProxyUrl file="css/themeStyles.jsp"/>?browser=<%=browser%>&locale=<%=request.getLocale() %>' rel="styleSheet" type="text/css">
    
--%>

  <portal-logic:pageMetaData varname="pageMetaData">
  <!-- pageMetadatatag colorPalette: ${pageMetaData.colorPalette} -->
    <c:set var="colorPalette" scope="request">
      <c:out value="${pageMetaData.colorPalette}" default="default"/>
    </c:set>
  </portal-logic:pageMetaData>

<%--link href='<portal-logic:urlFindInTheme file="./styles.jsp"/>?browser=${browser}&locale=<%=request.getLocale() %>&colorpalette=${colorPalette}' rel="styleSheet" type="text/css"--%>
<portal-logic:urlFindInTheme file="./styles.jsp" id="stylesJSP" />
<link href='<portal-core:cacheProxyUrl forwardurl="<%=stylesJSP.toString()%>" />' rel="styleSheet" type="text/css" />

<%--  ******************  JavaScripts  ******************  --%>             
<portal-logic:urlFindInTheme file="./js.jsp" id="jsJSP" />
<script type="text/javascript" src='<portal-core:cacheProxyUrl forwardurl="<%=jsJSP.toString()%>" />'></script>

<%-- Lotus Collaborative Services --%>
<menu:menuinit/>
<pa:peopleinit/>
<%-- Context Menus --%>
<c:set var="contextJsHref">
<c:choose>
    <c:when test="${isIE}"><portal-logic:urlFindInTheme file="psw/com/ibm/psw/wcl/renderers/menu/html/context_ie.js" /></c:when>
    <c:otherwise><portal-logic:urlFindInTheme file="psw/com/ibm/psw/wcl/renderers/menu/html/context_ns6.js" />'</c:otherwise>
</c:choose>
</c:set>
<script type="text/javascript" src='${contextJsHref}'></script>

<%-- This includes a base URL that can be used by other applications.
     This can result in much shorter URLs and decrease overall      page size and bandwidth use --%>
<portal-core:stateBase/>

<%-- Asynchronous menu methods and variables --%>
<%@ page import="com.ibm.portal.ObjectID" %>
<%@ page import="com.ibm.portal.content.ContentNode" %>
<%@ page import="com.ibm.portal.navigation.NavigationNode" %>
<%
com.ibm.portal.model.NavigationSelectionModelProvider nsmProvider = navigationSelectionModelHome.getNavigationSelectionModelProvider();
com.ibm.portal.navigation.NavigationSelectionModel nsm = nsmProvider.getNavigationSelectionModel(request, response);
String pageOidStr = identification.serialize( ( ( com.ibm.portal.Identifiable ) nsm.getSelectedNode() ).getObjectID());
%>

<%-- Content palette flyout and People palette flyout extensions --%>
<%-- javascriptEventController for disabling menus until the page has completely loaded --%>
<% int arrayPosition = 0;%>
<script type="text/javascript">
    var javascriptEventController = new ElementJavascriptEventController(), flyOut = [
        <c-rt:if test = "${themePolicy.renderContentPalette}">
        {
        url: "<portal-navigation:urlGeneration contentNode='ibm.portal.Content Palette' layoutNode='ibm.portal.Content Palette Control' newWindow='true' portletWindowState='Maximized'><portal-navigation:urlParam name='WCN' value='<%=pageOidStr%>' type='render' /><% wpsURL.write(out); %></portal-navigation:urlGeneration>",
        icon: "<portal-logic:urlFindInTheme file='images/toolBar/content.gif'/>",
        activeIcon: "<portal-logic:urlFindInTheme file='images/toolBar/Active_content.gif'/>",
        hoverIcon: "<portal-logic:urlFindInTheme file='images/toolBar/EnabledHover_content.gif'/>",
        active:false, 
        altText:"<portal-fmt:text key='link.palette.portlet' bundle='nls.engine'/>", 
        activeAltText:"<portal-fmt:text key='link.palette.close' bundle='nls.engine'/>"
        }
        <%arrayPosition++;%>
        </c-rt:if>
        <c-rt:if test = "${themePolicy.renderPeoplePalette}">
        <%if(arrayPosition != 0){%>,<%}%>
        {
        url:"<portal-navigation:urlGeneration contentNode='ibm.portal.People Palette' layoutNode='ibm.portal.People Palette Control' newWindow='true' portletWindowState='Maximized'><% wpsURL.write(out); %></portal-navigation:urlGeneration>",
        icon: "<portal-logic:urlFindInTheme file='images/toolBar/people.gif'/>",
        activeIcon: "<portal-logic:urlFindInTheme file='images/toolBar/Active_people.gif'/>",
        hoverIcon: "<portal-logic:urlFindInTheme file='images/toolBar/EnabledHover_people.gif'/>",
        active:false,
        altText:"<portal-fmt:text key='link.palette.people' bundle='nls.engine'/>",
        activeAltText:"<portal-fmt:text key='link.palette.close' bundle='nls.engine'/>"
        }
        <%arrayPosition++;%>
        </c-rt:if>
        <c-rt:if test = "${themePolicy.renderExtensions}">
        <portal-theme-ext:themeExtension id="com.ibm.portal.theme.plugin.Flyouts" >
            <portal-theme-ext:themeExtensionLoop>    
            <%if(arrayPosition != 0){%>,<%}%>{
            url:"<portal-theme-ext:themeExtensionItemUrl />",
            icon: "<portal-theme-ext:themeExtensionItemIconUrl state='STATE_ENABLED' />",
            activeIcon: "<portal-theme-ext:themeExtensionItemIconUrl state='STATE_ACTIVE' />",
            hoverIcon: "<portal-theme-ext:themeExtensionItemIconUrl state='STATE_ENABLED_HOVER' />",
            active:false,
            altText: "<portal-fmt:title varname='<%=(com.ibm.portal.theme.plugin.ThemeItem) themeExtension%>' />",
            activeAltText:"<portal-fmt:text key='link.palette.close' bundle='nls.engine'/>"}
            <%arrayPosition++;%>
            </portal-theme-ext:themeExtensionLoop>                
        </portal-theme-ext:themeExtension>        
        </c-rt:if>
    ];
</script>

<script type="text/javascript">
<c-rt:set var="pageNoActionsText" ><portal-fmt:text bundle='nls.engine' key='info.emptymenu' /></c-rt:set>

function showMainMenu_<%=pageOidStr%>()
{
    asynchContextMenuOnMouseClickHandler( "menu_<%=pageOidStr%>_main", <%=!isRTL%>, '<portal-navigation:url themeTemplate="mainMenu"></portal-navigation:url>', "main-menu-border", "main-menu", "main-menu-item", "main-menu-item-selected", null,'<portal-logic:urlFindInTheme file="images/banner/launch_loading.gif" />' );
}

var pageMenuURL = '<portal-navigation:url theme="pageContextMenu" />';

function showPageMenu( launcher )
{
    <%--var menu = getPageMenu( "<%=pageOidStr%>", "<%=!isRTL%>" );
    if ( menu.items.length > 0 )
    {
        return showContextMenu( menu.name, launcher );     
    }
    else     {
         return false;
    }--%>
    
    asynchContextMenuOnMouseClickHandler( 'menu_<%=pageOidStr%>',<%=!isRTL%>,pageMenuURL, "main-menu-border", "main-menu", "main-menu-item", "main-menu-item-selected", '<c-rt:out value="${pageNoActionsText}" escapeXml="true" />','<portal-logic:urlFindInTheme file="images/context_loading.gif" />' );
}

function accessibleShowPageMenu( evt )
{
    keyCode = -1;
    if ( evt && evt.which )
    {    
        keyCode = evt.which;
    }
    else if ( window.event )
    {
        keyCode = window.event.keyCode     }    

    if ( keyCode == 13 )
    {
        <%--var menu = getPageMenu( "<%=pageOidStr%>", "<%=!isRTL%>" );
        if ( menu.items.length > 0 )
        {
            return showContextMenu( menu.name, launcher );     
        }--%>
        
        asynchContextMenuOnMouseClickHandler( 'menu_<%=pageOidStr%>',<%=!isRTL%>,pageMenuURL, "main-menu-border", "main-menu", "main-menu-item", "main-menu-item-selected", '<c-rt:out value="${pageNoActionsText}" escapeXml="true" />','<portal-logic:urlFindInTheme file="images/context_loading.gif" />' );
    }
    else     {
         return true;
    }
}

function showPageAffordance()
{
    if ( asynchContextMenu_menuCurrentlyLoading != null )
        return;    

    <%--var menu = getPageMenu( "<%=pageOidStr%>", "<%=!isRTL%>" );
    if ( menu.items.length > 0 )
    {--%>
        document.getElementById( 'menu_<%=pageOidStr%>' ).style.cursor = 'pointer';
        document.getElementById( 'menu_<%=pageOidStr%>_img' ).src="<portal-logic:urlFindInTheme file="images/topNav/menu_selected.gif" />";
    <%--}--%>
}

function hidePageAffordance()
{
    if ( asynchContextMenu_menuCurrentlyLoading != null )
        return;
    <%--var menu = getPageMenu( "<%=pageOidStr%>", "<%=!isRTL%>" );
    if ( menu.items.length > 0 )
    {--%>
        document.getElementById( 'menu_<%=pageOidStr%>' ).style.cursor = 'default';
        document.getElementById( 'menu_<%=pageOidStr%>_img' ).src="<portal-logic:urlFindInTheme file="images/topNav/menu_selected_disabled.gif" />";    
    <%--}--%>
}
</script>

<%--@ include file="./head_pageMenu.jspf" --%>

</head>