Author: woonsan
Date: Thu Mar 18 13:23:07 2010
New Revision: 924764
URL: http://svn.apache.org/viewvc?rev=924764&view=rev
Log:
JS2-1131: Allowing to add folders and links in page navigator.
I added a select tag for node type (page | folder | link) on the left of the
name input box. Please review this UI changes.
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/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources.properties
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_en.properties
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_ko.properties
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=924764&r1=924763&r2=924764&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
Thu Mar 18 13:23:07 2010
@@ -42,6 +42,7 @@ import org.apache.jetspeed.Jetspeed;
import org.apache.jetspeed.administration.PortalAdministration;
import org.apache.jetspeed.container.url.BasePortalURL;
import org.apache.jetspeed.om.folder.Folder;
+import org.apache.jetspeed.om.page.Link;
import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.om.portlet.LocalizedField;
import org.apache.jetspeed.page.PageManager;
@@ -66,6 +67,16 @@ import org.w3c.dom.Element;
public class PageNavigator extends GenericServletPortlet
{
+ /**
+ * PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY - session portal site context
attribute key
+ */
+ private static String PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY =
"org.apache.jetspeed.portalsite.PortalSiteSessionContext";
+
+ /**
+ * PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY - request portal site context
attribute key
+ */
+ private static String PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY =
"org.apache.jetspeed.portalsite.PortalSiteRequestContext";
+
public static final String DEFAULT_PAGES_MENU = "pages";
public static final String DEFAULT_LINKS_MENU = "links";
public static final String DEFAULT_SPACE_NAVS_MENU = "space-navigations";
@@ -84,7 +95,8 @@ public class PageNavigator extends Gener
private String defaultLinksMenu = DEFAULT_SPACE_LINKS_MENU;
protected String yuiScriptPath = "/javascript/yui/build/yui/yui-min.js";
-
+
+ @Override
public void init(PortletConfig config) throws PortletException
{
super.init(config);
@@ -133,7 +145,7 @@ public class PageNavigator extends Gener
response.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, headElem);
}
- @SuppressWarnings("unchecked")
+ @Override
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
@@ -141,8 +153,6 @@ public class PageNavigator extends Gener
if (newSpace != null)
{
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACES);
- request.getPortletSession().removeAttribute("pages");
- request.getPortletSession().removeAttribute("links");
request.getPortletSession().removeAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
}
@@ -167,12 +177,33 @@ public class PageNavigator extends Gener
super.doView(request, response);
}
+ @Override
public void processAction(ActionRequest actionRequest, ActionResponse
actionResponse) throws PortletException, IOException
{
- String addPage = actionRequest.getParameter("addPage");
+ String name = actionRequest.getParameter("name");
+ String type = actionRequest.getParameter("type");
String templatePage =
StringUtils.defaultString(actionRequest.getParameter("templatePage"), null);
- if (StringUtils.isBlank(templatePage))
+ SpaceBean space = (SpaceBean)
actionRequest.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
+
+ if (space == null)
+ {
+ log.warn("Space not found in session.");
+ return;
+ }
+
+ if (StringUtils.isBlank(name))
+ {
+ log.warn("Blank name to create a node of type " + type);
+ return;
+ }
+
+ if (StringUtils.isBlank(type))
+ {
+ throw new PortletException("Blank node type: " + type);
+ }
+
+ if ((Page.DOCUMENT_TYPE.equals(type) ||
(Folder.FOLDER_TYPE.equals(type))) && StringUtils.isBlank(templatePage))
{
templatePage =
actionRequest.getPreferences().getValue("defaultTemplatePage", null);
@@ -182,31 +213,54 @@ public class PageNavigator extends Gener
}
}
- if (addPage != null)
+ String spacePath = space.getPath();
+
+ try
{
- SpaceBean space = (SpaceBean)
actionRequest.getPortletSession().getAttribute(SpaceNavigator.ATTRIBUTE_SPACE);
+ RequestContext requestContext = (RequestContext)
actionRequest.getAttribute(RequestContext.REQUEST_PORTALENV);
+
+ String nodeName = name.replace(' ', '_');
- if (space != null)
+ if (Page.DOCUMENT_TYPE.equals(type))
{
- String spacePath = space.getPath();
- try
- {
- String pageName = addPage.replace(' ', '_');
- String path = StringUtils.removeEnd(spacePath, "/") + "/"
+ StringUtils.removeStart(pageName, "/") + Page.DOCUMENT_TYPE;
- Page source = pageManager.getPage(templatePage);
- Page newPage = pageManager.copyPage(source, path);
- newPage.setTitle(addPage);
- pageManager.updatePage(newPage);
- actionRequest.getPortletSession().removeAttribute("pages");
- actionRequest.getPortletSession().removeAttribute("links");
- String redirect = admin.getPortalURL(actionRequest,
actionResponse, path);
- actionResponse.sendRedirect(redirect);
- }
- catch (Exception e)
- {
- log.error("Failed to update page.", e);
- }
+ String path = StringUtils.removeEnd(spacePath, "/") + "/" +
StringUtils.removeStart(nodeName, "/") + Page.DOCUMENT_TYPE;
+ Page source = pageManager.getPage(templatePage);
+ Page newPage = pageManager.copyPage(source, path, false);
+ newPage.setTitle(name);
+ pageManager.updatePage(newPage);
+
+
requestContext.setSessionAttribute(PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY, null);
+
+ String redirect = admin.getPortalURL(actionRequest,
actionResponse, path);
+ actionResponse.sendRedirect(redirect);
+ }
+ else if (Folder.FOLDER_TYPE.equals(type))
+ {
+ String path = StringUtils.removeEnd(spacePath, "/") + "/" +
StringUtils.removeStart(nodeName, "/");
+ Folder folder = pageManager.newFolder(path);
+ folder.setTitle(name);
+ pageManager.updateFolder(folder);
+
+ String defaultPagePath = folder.getPath() + "/" +
Folder.FALLBACK_DEFAULT_PAGE;
+ Page source = pageManager.getPage(templatePage);
+ Page newPage = pageManager.copyPage(source, defaultPagePath,
false);
+ pageManager.updatePage(newPage);
+
+
requestContext.setSessionAttribute(PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY, null);
}
+ else if (Link.DOCUMENT_TYPE.equals(type))
+ {
+ String path = StringUtils.removeEnd(spacePath, "/") + "/" +
StringUtils.removeStart(nodeName, "/") + Link.DOCUMENT_TYPE;
+ Link link = pageManager.newLink(path);
+ link.setTitle(name);
+ pageManager.updateLink(link);
+
+
requestContext.setSessionAttribute(PORTAL_SITE_SESSION_CONTEXT_ATTR_KEY, null);
+ }
+ }
+ catch (Exception e)
+ {
+ log.error("Failed to update page.", e);
}
}
@@ -248,7 +302,7 @@ public class PageNavigator extends Gener
boolean isRootSpace = StringUtils.isBlank(spacePath) ||
Folder.PATH_SEPARATOR.equals(spacePath);
RequestContext rc = (RequestContext)
request.getAttribute(RequestContext.REQUEST_PORTALENV);
- PortalSiteRequestContext psrc = (PortalSiteRequestContext)
rc.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext");
+ PortalSiteRequestContext psrc = (PortalSiteRequestContext)
rc.getAttribute(PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY);
Menu spaceMenu = null;
@@ -355,7 +409,7 @@ public class PageNavigator extends Gener
try
{
RequestContext rc = (RequestContext)
request.getAttribute(RequestContext.REQUEST_PORTALENV);
- PortalSiteRequestContext psrc = (PortalSiteRequestContext)
rc.getAttribute("org.apache.jetspeed.portalsite.PortalSiteRequestContext");
+ PortalSiteRequestContext psrc = (PortalSiteRequestContext)
rc.getAttribute(PORTAL_SITE_REQUEST_CONTEXT_ATTR_KEY);
Menu spaceLinksMenu = null;
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources.properties
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources.properties?rev=924764&r1=924763&r2=924764&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources.properties
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources.properties
Thu Mar 18 13:23:07 2010
@@ -30,7 +30,10 @@ spaces.label.edit.current = Edit Current
spaces.label.save = Save
spaces.label.cancel = Cancel
-spaces.pages.label.add = Add Page
+spaces.pages.label.folder = Folder
+spaces.pages.label.page = Page
+spaces.pages.label.link = Link
+spaces.pages.label.add = Add
spaces.pages.label.rename = Rename
spaces.pages.label.changeUrl = Change URL
spaces.pages.label.delete = Delete
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_en.properties
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_en.properties?rev=924764&r1=924763&r2=924764&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_en.properties
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_en.properties
Thu Mar 18 13:23:07 2010
@@ -30,7 +30,10 @@ spaces.label.edit.current = Edit Current
spaces.label.save = Save
spaces.label.cancel = Cancel
-spaces.pages.label.add = Add Page
+spaces.pages.label.folder = Folder
+spaces.pages.label.page = Page
+spaces.pages.label.link = Link
+spaces.pages.label.add = Add
spaces.pages.label.rename = Rename
spaces.pages.label.changeUrl = Change URL
spaces.pages.label.delete = Delete
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_ko.properties
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_ko.properties?rev=924764&r1=924763&r2=924764&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_ko.properties
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/spaces/resources/SpacesResources_ko.properties
Thu Mar 18 13:23:07 2010
@@ -30,7 +30,10 @@ spaces.label.edit.current = \uc2a4\ud398
spaces.label.save = \uc800\uc7a5
spaces.label.cancel = \ucde8\uc18c
-spaces.pages.label.add = \ud398\uc774\uc9c0 \ucd94\uac00
+spaces.pages.label.folder = \ud3f4\ub354
+spaces.pages.label.page = \ud398\uc774\uc9c0
+spaces.pages.label.link = \ub9c1\ud06c
+spaces.pages.label.add = \ucd94\uac00
spaces.pages.label.rename = \uc774\ub984\ubc14\uafb8\uae30
spaces.pages.label.changeUrl = URL \ubcc0\uacbd
spaces.pages.label.delete = \uc0ad\uc81c
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=924764&r1=924763&r2=924764&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
Thu Mar 18 13:23:07 2010
@@ -167,7 +167,12 @@ for (MenuElement element : linkElements)
</tr>
<tr>
<td class="portlet-section-body">
- <input type="text" name="addPage" class="portlet-form-input-field"
size="15" value="" ><input type="submit" value="<fmt:message
key='spaces.pages.label.add'/>" />
+ <select name="type" class="portlet-form-input-field">
+ <option value=".psml"><fmt:message
key="spaces.pages.label.page"/></option>
+ <option value="folder"><fmt:message
key="spaces.pages.label.folder"/></option>
+ <option value=".link"><fmt:message
key="spaces.pages.label.link"/></option>
+ </select>
+ <input type="text" name="name" class="portlet-form-input-field"
size="15" value="" ><input type="submit" value="<fmt:message
key='spaces.pages.label.add'/>" />
</td>
</tr>
<tr>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]