Author: woonsan
Date: Wed Dec 23 15:58:43 2009
New Revision: 893557
URL: http://svn.apache.org/viewvc?rev=893557&view=rev
Log:
JS2-1057: Replacing folder icons by UI and LI with style class names.
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java?rev=893557&r1=893556&r2=893557&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/spaces/PageNavigator.java
Wed Dec 23 15:58:43 2009
@@ -23,6 +23,7 @@
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
+import javax.portlet.MimeResponse;
import javax.portlet.PortletConfig;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
@@ -43,6 +44,7 @@
import org.apache.jetspeed.portalsite.Menu;
import org.apache.jetspeed.portalsite.MenuElement;
import org.apache.jetspeed.portalsite.PortalSiteRequestContext;
+import org.apache.jetspeed.portlet.HeaderPhaseSupportConstants;
import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.spaces.Space;
import org.apache.jetspeed.spaces.Spaces;
@@ -50,6 +52,7 @@
import org.apache.portals.messaging.PortletMessaging;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.w3c.dom.Element;
/**
* Jetspeed Navigator
@@ -73,6 +76,8 @@
private BasePortalURL baseUrlAccess = null;
private String defaultMenu = DEFAULT_SPACE_NAVS_MENU;
private String defaultLinksMenu = DEFAULT_SPACE_LINKS_MENU;
+
+ protected String yuiScriptPath = "/javascript/yui/build/yui/yui-min.js";
public void init(PortletConfig config) throws PortletException
{
@@ -100,8 +105,26 @@
baseUrlAccess = null; // optional
}
+ String param = config.getInitParameter("yuiScriptPath");
+
+ if (param != null) {
+ yuiScriptPath = param;
+ }
}
-
+
+ @Override
+ protected void doHeaders(RenderRequest request, RenderResponse response) {
+ super.doHeaders(request, response);
+ RequestContext rc = (RequestContext)
request.getAttribute(RequestContext.REQUEST_PORTALENV);
+ Element headElem = response.createElement("script");
+ headElem.setAttribute("language", "javascript");
+ String scriptPath = rc.getRequest().getContextPath() + yuiScriptPath;
+ headElem.setAttribute("id",
HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_ELEMENT_ID_YUI_LIBRARY_INCLUDE);
+ headElem.setAttribute("src", scriptPath);
+ headElem.setAttribute("type", "text/javascript");
+ response.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, headElem);
+ }
+
@SuppressWarnings("unchecked")
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp?rev=893557&r1=893556&r2=893557&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/spaces/page-navigator.jsp
Wed Dec 23 15:58:43 2009
@@ -59,6 +59,7 @@
if (folderName == null)
{
folderName = folderUrl;
+
try
{
folderName = folderName.substring(space.getPath().length() +
1);
@@ -68,32 +69,23 @@
}
}
- String namespace = renderResponse.getNamespace();
- String folderId = namespace + folderUrl;
-
- out.write("<div>");
-
- if (depth > 0)
- {
- out.write("<img height='20' width='" + (depth * 16) + "' src='" +
renderRequest.getContextPath() + "/images/tree/noline.gif' align='absmiddle'
/>");
- }
-
- out.write("<img src='" + renderRequest.getContextPath() +
"/images/folder.gif' align='absmiddle' /> ");
- out.write("<a folderId='" + folderId + "' href='#' onclick='return " +
namespace + "toggleFolder(this);'>" + folderName + "</a></div>");
+ out.write("<li path='" + folderUrl + "' class='expanded'>");
+ out.write("<a href='#'>" + folderName + "</a>");
out.write("\n");
List<MenuElement> childElements = (List<MenuElement>)
folderMenu.getElements();
if (childElements != null && !childElements.isEmpty())
{
- out.write("<div id='" + folderId + "' style=\"DISPLAY: none\">");
+ out.write("<ul>");
+ out.write("\n");
for (MenuElement child : childElements)
{
printMenuItem(child, depth + 1, out, renderRequest,
renderResponse, rc, space, pageNavigator);
}
- out.write("</div>");
+ out.write("</ul>");
out.write("\n");
}
}
@@ -101,26 +93,20 @@
{
MenuOption option = (MenuOption)element;
String url = pageNavigator.getAbsoluteUrl(option.getUrl(),
renderResponse, rc);
-
- out.write("<div>");
-
- if (depth > 0)
- {
- out.write("<img height='20' width='" + (depth * 16) + "' src='" +
renderRequest.getContextPath() + "/images/tree/noline.gif' align='absmiddle'
/>");
- }
-
- out.write("<img src='" + renderRequest.getContextPath() +
"/images/page.gif' align='absmiddle' /> ");
- out.write("<a href='" + url + "'>" +
element.getTitle(renderRequest.getLocale()) + "</a>");
-
- out.write("</div>");
+ out.write("<li path='" + option.getUrl() +"'><a href='" + url + "'>" +
element.getTitle(renderRequest.getLocale()) + "</a></li>");
out.write("\n");
}
}
%>
<portlet:defineObjects/>
+
<%
RequestContext rc = (RequestContext)
request.getAttribute(RequestContext.REQUEST_PORTALENV);
+String portalPagePath = rc.getPortalURL().getPath();
+if (portalPagePath == null || "".equals(portalPagePath)) {
+ portalPagePath = "/";
+}
Space space = (Space) renderRequest.getAttribute("space");
Locale locale = renderRequest.getLocale();
PageNavigator pageNavigator = (PageNavigator)
renderRequest.getAttribute("pageNavigator");
@@ -128,29 +114,20 @@
List<MenuElement> linkElements = (List<MenuElement>)
renderRequest.getAttribute("spaceLinkElements");
%>
-<script language="javascript">
-function <portlet:namespace/>toggleFolder(a) {
- var folderId = a.getAttribute("folderId");
- var div = document.getElementById(folderId);
- if (div) {
- div.style.display = (div.style.display == "none" ? "" : "none");
- }
- return false;
-}
-</script>
-
<table>
<tr>
<td class="portlet-section-body"><b><%=space.getTitle() %>
Space</b></td>
</tr>
<tr>
<td class="portlet-section-body">
+ <ul id="<portlet:namespace/>pageNavMenu" class="menu">
<%
for (MenuElement element : menuElements)
{
printMenuItem(element, 0, out, renderRequest, renderResponse, rc, space,
pageNavigator);
}
%>
+ </ul>
</td>
</tr>
<%
@@ -162,12 +139,14 @@
</tr>
<tr>
<td class="portlet-section-body">
+ <ul id="<portlet:namespace/>pageNavLinks" class="menu">
<%
for (MenuElement element : linkElements)
{
printMenuItem(element, 0, out, renderRequest, renderResponse, rc,
space, pageNavigator);
}
%>
+ </ul>
</td>
</tr>
<%
@@ -191,4 +170,43 @@
<%
}
%>
-</table>
\ No newline at end of file
+</table>
+
+<script language="javascript">
+YUI().use('jetui-portal', 'io', 'json', 'node', 'cookie', 'overlay', 'anim',
'plugin', function(Y) {
+
+ var onMenuItemClick = function(e) {
+ var a = e.target;
+ var menuitem = a.get("parentNode");
+ var submenu = menuitem.one("UL");
+ if (submenu) {
+ if (submenu.getStyle("display") == "none") {
+ menuitem.removeClass("closed");
+ menuitem.addClass("expanded");
+ submenu.setStyle("display", "");
+ } else {
+ menuitem.removeClass("expanded");
+ menuitem.addClass("closed");
+ submenu.setStyle("display", "none");
+ }
+
+ e.halt();
+ }
+ };
+
+ var pageNavMenu = Y.Node.one("#<portlet:namespace/>pageNavMenu");
+ pageNavMenu.all("A").each(function(v, k) {
+ v.on("click", onMenuItemClick);
+ });
+
+ var portalPagePath = "<%=portalPagePath%>";
+ var curMenuItem = null;
+ pageNavMenu.all("LI").each(function(v, k) {
+ var path = v.getAttribute("path");
+ if (path && portalPagePath.indexOf(path) == 0) {
+ v.addClass("active");
+ }
+ });
+
+});
+</script>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]