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]

Reply via email to