head.jspf

 

<%-- 
  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 )
    {
      // We 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 our purposes, we 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>