You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2005/12/07 23:54:33 UTC

svn commit: r354888 - in /portals/jetspeed-2/trunk/applications/j2-admin/src: java/org/apache/jetspeed/portlets/site/ java/org/apache/jetspeed/portlets/site/resources/ webapp/WEB-INF/model/ webapp/WEB-INF/velocity/ webapp/WEB-INF/view/site/

Author: taylor
Date: Wed Dec  7 14:54:26 2005
New Revision: 354888

URL: http://svn.apache.org/viewcvs?rev=354888&view=rev
Log:
a little cleanup on the site manager to make it useful

Added:
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/LinkProxyBean.java
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/NodeInfo.java
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/link-details.vm
Modified:
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PSMLTreeLoader.java
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/model/spring-portlet-configuration.xml
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/velocity/velocity-macros.vm
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-link.vm
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-page.vm
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-subfolder.vm
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/folder-details.vm
    portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/page-details.vm

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/LinkProxyBean.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/LinkProxyBean.java?rev=354888&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/LinkProxyBean.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/LinkProxyBean.java Wed Dec  7 14:54:26 2005
@@ -0,0 +1,223 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.site;
+
+import java.io.Serializable;
+
+import org.apache.jetspeed.om.page.Link;
+import org.apache.jetspeed.om.page.Page;
+import org.apache.jetspeed.page.PageManager;
+import org.apache.portals.bridges.frameworks.ExternalComponentSupport;
+import org.apache.portals.bridges.frameworks.Lookup;
+
+
+/**
+ * LinkProxyBean
+ * 
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: $
+ */
+public class LinkProxyBean 
+    implements 
+        ExternalComponentSupport, 
+        Lookup,
+        Serializable
+{
+    private static final long serialVersionUID = 1;
+    private transient PageManager pageManager = null;
+    private transient Link link;
+    private String lookupKey;
+    private boolean isNew = true;
+
+    private String key;
+    private String title;
+    private String shortTitle;
+    private String version;
+    private String resourceType;
+    private String name;
+    private String url;
+    
+    public LinkProxyBean()
+    {        
+    }
+    
+    /**
+     * @return Returns the resourceType.
+     */
+    public String getResourceType()
+    {
+        return resourceType;
+    }
+    /**
+     * @param resourceType The resourceType to set.
+     */
+    public void setResourceType(String resourceType)
+    {
+        this.resourceType = resourceType;
+    }
+    /**
+     * @return Returns the shortTitle.
+     */
+    public String getShortTitle()
+    {
+        return shortTitle;
+    }
+    /**
+     * @param shortTitle The shortTitle to set.
+     */
+    public void setShortTitle(String shortTitle)
+    {
+        this.shortTitle = shortTitle;
+    }
+        
+    public void setExternalSupport(Object externalSupport)
+    {
+        if (externalSupport instanceof PageManager)
+        {
+            pageManager = (PageManager)externalSupport;
+        }
+    }
+    
+    public void update(Link link)
+    {
+        link.setTitle(this.getTitle());
+        link.setShortTitle(this.getShortTitle());
+        link.setVersion(this.getVersion());
+        link.setUrl(this.url);
+    }
+    
+    public boolean lookup(String key)
+    {
+        boolean result = true;
+        try
+        {
+            if (pageManager != null)
+            {
+                this.link = pageManager.getLink(key);    
+                setTitle(link.getTitle());                
+                setShortTitle(link.getShortTitle());
+                setVersion(link.getVersion());
+                setName(link.getName());
+                setUrl(link.getUrl());
+                setKey(key);
+                isNew = false;
+            }
+        }
+        catch (Exception ne)
+        {        
+            // create a new folder
+            result = false;
+        }
+        return result;
+    }
+    
+    /**
+     * @return Returns the title.
+     */
+    public String getTitle()
+    {
+        return title;
+    }
+    /**
+     * @param title The title to set.
+     */
+    public void setTitle(String title)
+    {
+        this.title = title;
+    }
+    /**
+     * @return Returns the lookupKey.
+     */
+    public String getLookupKey()
+    {
+        return lookupKey;
+    }
+    /**
+     * @param lookupKey The lookupKey to set.
+     */
+    public void setLookupKey(String lookupKey)
+    {
+        this.lookupKey = lookupKey;
+    }
+    /**
+     * @return Returns the isNew.
+     */
+    public boolean isNew()
+    {
+        return isNew;
+    }
+    /**
+     * @param isNew The isNew to set.
+     */
+    public void setNew(boolean isNew)
+    {
+        this.isNew = isNew;
+    }
+    /**
+     * @return Returns the key.
+     */
+    public String getKey()
+    {
+        return key;
+    }
+    /**
+     * @param key The key to set.
+     */
+    public void setKey(String key)
+    {
+        this.key = key;
+    }
+    /**
+     * @return Returns the version.
+     */
+    public String getVersion()
+    {
+        return version;
+    }
+    /**
+     * @param version The version to set.
+     */
+    public void setVersion(String version)
+    {
+        this.version = version;
+    }
+    /**
+     * @return Returns the name.
+     */
+    public String getName()
+    {
+        return name;
+    }
+    /**
+     * @param name The name to set.
+     */
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    
+    public String getUrl()
+    {
+        return url;
+    }
+
+    
+    public void setUrl(String url)
+    {
+        this.url = url;
+    }
+}

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/NodeInfo.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/NodeInfo.java?rev=354888&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/NodeInfo.java (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/NodeInfo.java Wed Dec  7 14:54:26 2005
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2000-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.site;
+
+import java.io.Serializable;
+
+
+/**
+ * Node Info
+ * 
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: $
+ */
+public class NodeInfo implements Serializable
+{
+    private String name;    
+    private String action;
+    private String domain;
+
+    public NodeInfo(String name, String action, String domain)
+    {
+        this.name = name;
+        this.action = action;
+        this.domain = domain;
+    }
+    
+    public String getAction()
+    {
+        return action;
+    }
+    
+    public void setAction(String action)
+    {
+        this.action = action;
+    }
+    
+    public String getName()
+    {
+        return name;
+    }
+    
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    
+    public String getDomain()
+    {
+        return domain;
+    }
+
+    
+    public void setDomain(String domain)
+    {
+        this.domain = domain;
+    }
+    
+}
\ No newline at end of file

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PSMLTreeLoader.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PSMLTreeLoader.java?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PSMLTreeLoader.java (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PSMLTreeLoader.java Wed Dec  7 14:54:26 2005
@@ -131,9 +131,14 @@
     	
     	return linkNode;
     }
-        
+
     public void loadChildren(Folder folder, TreeControlNode parent, Locale locale)
     {
+        loadChildren(folder, parent, locale, -1);
+    }
+    
+    public void loadChildren(Folder folder, TreeControlNode parent, Locale locale, int index)
+    {
         NodeSet childFolders = null;
         NodeSet childPages = null;
         NodeSet childLinks = null;
@@ -164,7 +169,14 @@
                 {
                     Page childPage = (Page) pagesIter.next();                
                     TreeControlNode childNode = createPageNode(childPage, locale, level);
-                    parent.addChild(childNode);
+                    if(index == -1) 
+                    {
+                        parent.addChild(childNode);                        
+                    } 
+                    else 
+                    {
+                        parent.addChild(index, childNode);
+                    }                                        
                 }
             }
             if (childLinks != null)
@@ -174,7 +186,14 @@
                 {
                     Link childLink = (Link) linksIter.next();                
                     TreeControlNode childNode = createLinkNode(childLink, locale, level);
-                    parent.addChild(childNode);
+                    if(index == -1) 
+                    {
+                        parent.addChild(childNode);                        
+                    } 
+                    else 
+                    {
+                        parent.addChild(index, childNode);
+                    }                    
                 }
             }
             parent.setLoaded(true);

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/PageProxyBean.java Wed Dec  7 14:54:26 2005
@@ -47,6 +47,7 @@
     private String version;
     private String resourceType;
     private String name;
+    private String hidden = "f";
     
     public PageProxyBean()
     {        
@@ -94,6 +95,7 @@
         page.setTitle(this.getTitle());
         page.setShortTitle(this.getShortTitle());
         page.setVersion(this.getVersion());
+        page.setHidden(this.hidden.equals("t"));
     }
     
     public boolean lookup(String key)
@@ -108,6 +110,7 @@
                 setShortTitle(page.getShortTitle());
                 setVersion(page.getVersion());
                 setName(page.getName());
+                setHidden(page.isHidden() ? "t" : "f");
                 setKey(key);
                 isNew = false;
             }
@@ -203,5 +206,17 @@
     public void setName(String name)
     {
         this.name = name;
+    }
+
+    
+    public String getHidden()
+    {
+        return hidden;
+    }
+    
+    
+    public void setHidden(String hidden)
+    {
+        this.hidden = hidden;
     }
 }

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteBrowserPortlet.java Wed Dec  7 14:54:26 2005
@@ -23,6 +23,7 @@
 import javax.portlet.PortletConfig;
 import javax.portlet.PortletContext;
 import javax.portlet.PortletException;
+import javax.portlet.PortletRequest;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
 
@@ -30,12 +31,15 @@
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.folder.FolderNotFoundException;
 import org.apache.jetspeed.om.folder.InvalidFolderException;
+import org.apache.jetspeed.om.page.Link;
+import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.page.document.NodeException;
 import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
 import org.apache.portals.messaging.PortletMessaging;
 import org.apache.webapp.admin.TreeControl;
 import org.apache.webapp.admin.TreeControlNode;
 
+
 /**
  * This portlet is a tree browser user interface for viewing site resoures:
  * pages and folders.
@@ -68,10 +72,14 @@
 
     private TreeControl prepareSiteTree(RenderRequest request)
     {
+        TreeControl control = (TreeControl) request.getPortletSession().getAttribute(SITE_TREE_ATTRIBUTE);
+        
         String refresh = (String)PortletMessaging.consume(request, 
                 PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.MESSAGE_REFRESH);
         
-        TreeControl control = (TreeControl) request.getPortletSession().getAttribute(SITE_TREE_ATTRIBUTE);
+        NodeInfo nodeUpdated = (NodeInfo)PortletMessaging.consume(request,
+                PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.NODE_UPDATED);
+        
         if (refresh != null || control == null)
         {
             Folder root = null;
@@ -100,9 +108,113 @@
                 control = buildTree(root, request.getLocale());
                 request.getPortletSession().setAttribute(SITE_TREE_ATTRIBUTE, control);
             }
+        } 
+        else if(nodeUpdated != null) 
+        {
+            try 
+            {
+                String action = nodeUpdated.getAction();
+                
+                if(/* node.isLoaded() && */ action.equals("delete")) 
+                {
+                    TreeControlNode node = control.findNode(nodeUpdated.getName());
+                    control.removeNode(node);
+                }
+                else if (action.equals("update"))
+                {
+                    TreeControlNode node = control.findNode(nodeUpdated.getName());
+                    String domain = node.getDomain();
+                    if (domain.equals(PSMLTreeLoader.FOLDER_DOMAIN))
+                    {
+                        Folder folder = pageManager.getFolder(node.getName());
+                        if (folder != null)
+                        {
+                            String title = folder.getTitle();
+                            node.setLabel(title);
+                        }
+                    }
+                    else if (domain.equals(PSMLTreeLoader.PAGE_DOMAIN))
+                    {
+                        Page page = pageManager.getPage(node.getName());
+                        if (page != null)
+                        {
+                            String title = page.getTitle();
+                            node.setLabel(title);
+                        }                        
+                    }
+                    else if (domain.equals(PSMLTreeLoader.LINK_DOMAIN))
+                    {
+                        Link link = pageManager.getLink(node.getName());
+                        if (link!= null)
+                        {
+                            String title = link.getTitle();
+                            node.setLabel(title);
+                        }                        
+                    }                    
+                }
+                else if(/* node.isLoaded() && */ action.equals("insert"))
+                {                    
+                    if (nodeUpdated.getDomain().equals(PSMLTreeLoader.FOLDER_DOMAIN))
+                    {
+                        Folder folder = pageManager.getFolder(nodeUpdated.getName());
+                        if (folder != null)
+                        {                        
+                            TreeControlNode parent = control.findNode(folder.getParent().getPath());
+                            if (parent != null)
+                            {
+                                TreeControlNode childNode = loader.createFolderNode(folder, request.getLocale(), "");
+                                parent.addChild(childNode);                            
+                            }
+                        }
+                    }
+                    else if (nodeUpdated.getDomain().equals(PSMLTreeLoader.PAGE_DOMAIN))
+                    {
+                        Page page = pageManager.getPage(nodeUpdated.getName());
+                        if (page != null)
+                        {                        
+                            TreeControlNode parent = control.findNode(page.getParent().getPath());
+                            if (parent != null)
+                            {
+                                TreeControlNode childNode = loader.createPageNode(page, request.getLocale(), "");
+                                parent.addChild(childNode);                            
+                            }
+                        }                    
+                    }
+                    else if (nodeUpdated.getDomain().equals(PSMLTreeLoader.LINK_DOMAIN))
+                    {
+                        Link link = pageManager.getLink(nodeUpdated.getName());
+                        if (link != null)
+                        {                        
+                            TreeControlNode parent = control.findNode(link.getParent().getPath());
+                            if (parent != null)
+                            {
+                                TreeControlNode childNode = loader.createLinkNode(link, request.getLocale(), "");
+                                parent.addChild(childNode);                            
+                            }
+                        }                    
+                    }                    
+                }
+            } 
+            catch(Exception e) 
+            {
+                e.printStackTrace();
+            }
         }
         return control;
     }
+        
+    private int getIndex(TreeControlNode parent, TreeControlNode child) {
+        int myindex = -1;
+        TreeControlNode[] children = parent.findChildren();
+        for (int i = 0; i < children.length; i++) {
+            TreeControlNode node = children[i];
+            if(child == node) {
+                myindex = i;
+                break;
+            }
+        }
+        return myindex;
+    }
     
     public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException,
             IOException
@@ -164,11 +276,17 @@
                             PortletApplicationResources.CURRENT_FOLDER);
                     PortletMessaging.cancel(actionRequest, PortletApplicationResources.SITE_PORTLET,
                             PortletApplicationResources.CURRENT_PAGE);
+                    PortletMessaging.cancel(actionRequest, PortletApplicationResources.SITE_PORTLET,
+                            PortletApplicationResources.CURRENT_LINK);
                     
                     String attrName = PortletApplicationResources.CURRENT_FOLDER;
                     if (domain.equals("PAGE_DOMAIN"))
                     {
                         attrName = PortletApplicationResources.CURRENT_PAGE;
+                    }
+                    else if (domain.equals("LINK_DOMAIN"))
+                    {
+                        attrName = PortletApplicationResources.CURRENT_LINK;
                     }
 
                     PortletMessaging.publish(actionRequest, PortletApplicationResources.SITE_PORTLET, attrName,

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/SiteDetailsPortlet.java Wed Dec  7 14:54:26 2005
@@ -18,6 +18,8 @@
 import java.io.IOException;
 import java.io.NotSerializableException;
 import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 import javax.portlet.ActionRequest;
@@ -37,6 +39,7 @@
 import org.apache.jetspeed.exception.JetspeedException;
 import org.apache.jetspeed.om.folder.Folder;
 import org.apache.jetspeed.om.page.Fragment;
+import org.apache.jetspeed.om.page.Link;
 import org.apache.jetspeed.om.page.Page;
 import org.apache.jetspeed.page.PageManager;
 import org.apache.jetspeed.portlets.pam.PortletApplicationResources;
@@ -69,11 +72,14 @@
         Map externalSupportMap = new HashMap();
         externalSupportMap.put("folderBean", pageManager);
         externalSupportMap.put("pageBean", pageManager);
+        externalSupportMap.put("linkBean", pageManager);
         setExternalSupport(externalSupportMap);
     }
 
     public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
     {
+        System.out.println("*** in doView");
+        
         response.setContentType("text/html");
         
         // Get the messages from the browser
@@ -81,7 +87,13 @@
                 PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_FOLDER);
         String currentPage = (String) PortletMessaging.consume(request,
                 PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_PAGE);
+        String currentLink = (String) PortletMessaging.consume(request,
+                PortletApplicationResources.SITE_PORTLET, PortletApplicationResources.CURRENT_LINK);
+        List errors = (List) PortletMessaging.consume(request,
+                PortletApplicationResources.SITE_PORTLET, "ERRORS");
         
+        if (errors != null)
+            this.getContext(request).put("ERRORS", errors);
         if (currentFolder != null)
         {
             request.setAttribute("site.folder.key", currentFolder);
@@ -92,14 +104,24 @@
             request.setAttribute("site.page.key", currentPage);
             changePortletView(request, response, "page-view");
         }
+        if (currentLink != null)
+        {
+            request.setAttribute("site.link.key", currentLink);
+            changePortletView(request, response, "link-view");
+        }
+        
+        String newRecordView = request.getParameter("new");
+        if (newRecordView != null)
+        {
+            this.startNewRecord(request, newRecordView);
+        }
         
         String parent = request.getParameter("parent");
         if (parent != null)
         {
-            System.out.println("parent = " + parent);            
             PortletMessaging.publish(request,
                     PortletApplicationResources.SITE_PORTLET, "parent", parent);                                
-        }
+        }        
         super.doView(request, response);
 
     }
@@ -119,7 +141,12 @@
     throws PortletException,
            IOException
     {
-        System.out.println("Processing SAVE action.");
+        String delete = request.getParameter("Delete");
+        if (delete != null)
+        {
+            return this.processDeleteFolderAction(request, response, bean);
+        }
+        
         FolderProxyBean proxy = (FolderProxyBean)bean;
         String key = proxy.getKey();
         try
@@ -128,12 +155,13 @@
             proxy.update(folder);
             pageManager.updateFolder(folder);
             
-            notifyUpdate(request, response, key);            
+            notifyUpdate(request, response, key, new NodeInfo(key, "update", PSMLTreeLoader.FOLDER_DOMAIN));            
             
         }
         catch (JetspeedException e)
         {
-            e.printStackTrace();            
+            this.publishStatusMessage(request, e, "save folder: ");
+            throw new PortletException(e);
         }
         return "folder-view:success";
     }
@@ -147,18 +175,16 @@
         try
         {
             String fullKey = getFullKey(request, key);
-            System.out.println("Saving . " + fullKey);
             Folder folder = pageManager.newFolder(fullKey);
-            
-            
+                        
             proxy.update(folder);
             pageManager.updateFolder(folder);
-            
-            notifyUpdate(request, response, fullKey);            
+            notifyUpdate(request, response, fullKey, new NodeInfo(folder.getPath(), "insert", PSMLTreeLoader.FOLDER_DOMAIN));            
         }
         catch (JetspeedException e)
         {
-            e.printStackTrace();
+            this.publishStatusMessage(request, e, "add folder: ");
+            throw new PortletException(e);
         }
         return "folder-view:success";
     }
@@ -172,7 +198,6 @@
         try
         {
             String fullKey = getFullKey(request, key);
-            System.out.println("Saving . " + fullKey);
             Page page = pageManager.newPage(fullKey);
             // TODO: Get System Wide defaults for decorators
             page.getRootFragment().setName("jetspeed-layouts::VelocityTwoColumns");
@@ -188,11 +213,12 @@
             proxy.update(page);
             pageManager.updatePage(page);
             
-            notifyUpdate(request, response, fullKey);            
+            notifyUpdate(request, response, fullKey, new NodeInfo(page.getPath(), "insert", PSMLTreeLoader.PAGE_DOMAIN));            
         }
         catch (JetspeedException e)
         {
-            e.printStackTrace();
+            this.publishStatusMessage(request, e, "add page: ");
+            throw new PortletException(e);            
         }
         return "folder-view:success";
     }
@@ -205,17 +231,19 @@
         String key = proxy.getKey();
         try
         {
-            String fullKey = getFullKey(request, key);
+            //String fullKey = getFullKey(request, key);
             
-            Folder folder = pageManager.getFolder(fullKey);
+            Folder folder = pageManager.getFolder(key);
             pageManager.removeFolder(folder);
             
-            notifyUpdate(request, response, fullKey);            
+            notifyUpdate(request, response, key, new NodeInfo(key, "delete", PSMLTreeLoader.FOLDER_DOMAIN));            
+            
         }
         catch (JetspeedException e)
         {
-            e.printStackTrace();
-        }
+            this.publishStatusMessage(request, e, "delete folder: ");
+            throw new PortletException(e);
+        }        
         return "folder-view:success";
     }
     
@@ -224,9 +252,11 @@
         String parent = (String)PortletMessaging.consume(request, PortletApplicationResources.SITE_PORTLET, "parent");
         if (parent == null)
         {
+            if (key.startsWith("/"))
+                return key;
             return "/" + key;
         }
-        if (!parent.endsWith("/"))
+        if (!parent.endsWith("/") && !key.startsWith("/"))
             parent += "/";
 
         return parent + key;        
@@ -236,7 +266,12 @@
     throws PortletException,
            IOException
     {
-        System.out.println("Processing SAVE Page action.");
+        String delete = request.getParameter("Delete");
+        if (delete != null)
+        {
+            return this.processDeletePageAction(request, response, bean);
+        }
+        
         PageProxyBean proxy = (PageProxyBean)bean;
         String key = proxy.getKey();
         try
@@ -245,27 +280,151 @@
             proxy.update(page);
             pageManager.updatePage(page);
 
-            notifyUpdate(request, response, proxy.getKey());
+            notifyUpdate(request, response, proxy.getKey(), new NodeInfo(key, "update", PSMLTreeLoader.PAGE_DOMAIN));
             
         }
         catch (JetspeedException e)
         {
-            e.printStackTrace();            
+            this.publishStatusMessage(request, e, "save page: ");
+            throw new PortletException(e);
         }
         return "page-view:success";
     }
 
-    private void notifyUpdate(ActionRequest request, ActionResponse response, String selected)
+    public String processSaveLinkAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        String delete = request.getParameter("Delete");
+        if (delete != null)
+        {
+            return this.processDeleteLinkAction(request, response, bean);
+        }
+        
+        LinkProxyBean proxy = (LinkProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {            
+            Link link = pageManager.getLink(key);
+            proxy.update(link);
+            pageManager.updateLink(link);
+
+            notifyUpdate(request, response, proxy.getKey(), new NodeInfo(key, "update", PSMLTreeLoader.LINK_DOMAIN));
+            
+        }
+        catch (JetspeedException e)
+        {
+            this.publishStatusMessage(request, e, "save link: ");
+            throw new PortletException(e);
+        }
+        return "link-view:success";
+    }
+
+    public String processAddLinkAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        LinkProxyBean proxy = (LinkProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            String fullKey = getFullKey(request, key);
+            Link link = pageManager.newLink(fullKey);
+            
+            
+            proxy.update(link);
+            pageManager.updateLink(link);
+            
+            notifyUpdate(request, response, fullKey, new NodeInfo(link.getPath(), "insert", PSMLTreeLoader.LINK_DOMAIN));            
+        }
+        catch (JetspeedException e)
+        {
+            this.publishStatusMessage(request, e, "add link: ");
+            throw new PortletException(e);
+        }
+        return "link-view:success";
+    }
+    
+    private void notifyUpdate(ActionRequest request, ActionResponse response, String selected, NodeInfo nodeInfo)
     throws NotSerializableException
     {
         PortletMessaging.publish(request,
                 PortletApplicationResources.SITE_PORTLET,
-                PortletApplicationResources.MESSAGE_REFRESH, "true");
+                PortletApplicationResources.NODE_UPDATED, nodeInfo);
+        
+        
 //        PortletMessaging.publish(request,
 //                PortletApplicationResources.SITE_PORTLET,
-//                PortletApplicationResources.MESSAGE_SELECTED, proxy
-//                        .getLookupKey());
+//                PortletApplicationResources.MESSAGE_REFRESH, "true");
         changePortletView(request, response, "folder-view");
         
     }
+    
+    public String processDeletePageAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        PageProxyBean proxy = (PageProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            String fullKey = getFullKey(request, key);
+            
+            Page page = pageManager.getPage(fullKey);
+            pageManager.removePage(page);
+            
+            notifyUpdate(request, response, fullKey, new NodeInfo(fullKey, "delete", PSMLTreeLoader.PAGE_DOMAIN));            
+        }
+        catch (JetspeedException e)
+        {
+            this.publishStatusMessage(request, e, "delete page: ");
+            throw new PortletException(e);
+        }
+        return "folder-view:success";
+    }
+
+    public String processDeleteLinkAction(ActionRequest request, ActionResponse response, Object bean) 
+    throws PortletException,
+           IOException
+    {
+        LinkProxyBean proxy = (LinkProxyBean)bean;
+        String key = proxy.getKey();
+        try
+        {
+            //String fullKey = getFullKey(request, key);
+            
+            Link link = pageManager.getLink(key);
+            pageManager.removeLink(link);
+            
+            notifyUpdate(request, response, key, new NodeInfo(key, "delete", PSMLTreeLoader.LINK_DOMAIN));            
+        }
+        catch (JetspeedException e)
+        {
+            this.publishStatusMessage(request, e, "delete link: ");
+            throw new PortletException(e);
+        }
+        return "folder-view:success";
+    }
+    
+    public void publishStatusMessage(PortletRequest request, Throwable e, String message)
+    {
+        String msg = message + ": " + e.toString();
+        Throwable cause = e.getCause();
+        if (cause != null)
+        {
+            msg = msg + ", " + cause.getMessage();
+        }
+        List errors = new LinkedList();
+        try
+        {
+            errors.add(msg);
+            PortletMessaging.publish(request, PortletApplicationResources.SITE_PORTLET, "ERRORS", errors);
+        }
+        catch (Exception ee)
+        {
+            System.err.println("Failed to publish message: " + e);
+        }        
+    }
+ 
+    
 }

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources.properties Wed Dec  7 14:54:26 2005
@@ -29,6 +29,9 @@
 Theme = Theme
 ResourceType = Resource Type
 Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
 
 # Page titles
 page.details = Page Details

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ca.properties Wed Dec  7 14:54:26 2005
@@ -26,9 +26,26 @@
 # Folder titles
 folder.details = Detalls de carpeta
 Title = T\u00edtol
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+
+# Page titles
+page.details = Page Details
+Version = Version
 
 # buttons and navigations
 save = Gravar
 add.page = Afegir p\u00e0gina
 add.subfolder = Afegir subcarpeta
 add.docset = Afegir conjunt documents (docset)
+remove = Remove
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_en.properties Wed Dec  7 14:54:26 2005
@@ -31,6 +31,11 @@
 Theme = Theme
 ResourceType = Resource Type
 Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+Hidden = Hidden 
+link.details = Link Details
 
 # Page titles
 page.details = Page Details

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_es.properties Wed Dec  7 14:54:26 2005
@@ -26,9 +26,25 @@
 # Folder titles
 folder.details = Detalles de carpeta
 Title = T\u00edtulo
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+
+# Page titles
+page.details = Page Details
+Version = Version
 
 # buttons and navigations
 save = Grabar
 add.page = A\u00f1adir p\u00e1gina
 add.subfolder = A\u00f1adir subcarpeta
 add.docset = A\u00f1adir conjunto documentos (docset)
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_fr.properties Wed Dec  7 14:54:26 2005
@@ -6,6 +6,18 @@
 # Folder titles
 folder.details = Folder Details
 Title = Title
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+
+# Page titles
+page.details = Page Details
+Version = Version
 
 # buttons and navigations
 save = Sauver
@@ -13,3 +25,8 @@
 add.subfolder = Add SubFolder
 edit.menus = Menus
 edit.security = Securite
+remove = Remove
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_hu.properties Wed Dec  7 14:54:26 2005
@@ -30,6 +30,14 @@
 DefaultPage = Alap\u00e9rtelmezett oldal
 Theme = T\u00e9ma
 ResourceType = Er\u0151forr\u00e1s tipusa
+Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+
+# Page titles
+page.details = Page Details
+Version = Version
 
 # buttons and navigations
 save = Ment\u00e9s

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_it.properties Wed Dec  7 14:54:26 2005
@@ -26,6 +26,18 @@
 # Folder titles
 folder.details = Cartella dettagli
 Title = Titolo
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+
+# Page titles
+page.details = Page Details
+Version = Version
 
 # buttons and navigations
 save = Salva
@@ -34,3 +46,8 @@
 add.docset = Aggiungi Docset
 edit.menus = Menus
 edit.security = Security
+remove = Remove
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_ja.properties Wed Dec  7 14:54:26 2005
@@ -29,6 +29,9 @@
 Theme = \u30c6\u30fc\u30de
 ResourceType = \u30ea\u30bd\u30fc\u30b9\u30bf\u30a4\u30d7
 Name = \u540d\u524d
+Url = \u540d\u524d
+Hidden = Hidden 
+link.details = Link Details
 
 # Page titles
 page.details = \u30da\u30fc\u30b8\u306e\u8a73\u7d30

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/site/resources/SiteResources_zh.properties Wed Dec  7 14:54:26 2005
@@ -24,6 +24,18 @@
 # Folder titles
 folder.details = \u6587\u4ef6\u5939\u8be6\u7ec6\u5185\u5bb9
 Title = \u6807\u9898
+ShortTitle = Short Title
+DefaultPage = Default Page
+Theme = Theme
+ResourceType = Resource Type
+Name = Name
+Url = Url
+Hidden = Hidden 
+link.details = Link Details
+
+# Page titles
+page.details = Page Details
+Version = Version
 
 # buttons and navigations
 save = \u4fdd\u5b58
@@ -31,3 +43,8 @@
 add.subfolder = \u6dfb\u52a0\u5b50\u6587\u4ef6\u5939
 edit.menus = \u83dc\u5355
 edit.security = \u5b89\u5168
+remove = Remove
+add.link = Add Link
+doc.order = Document Order
+menus = Menus
+security = Security

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/model/spring-portlet-configuration.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/model/spring-portlet-configuration.xml?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/model/spring-portlet-configuration.xml (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/model/spring-portlet-configuration.xml Wed Dec  7 14:54:26 2005
@@ -18,6 +18,12 @@
 			<value>site.page.key</value>
 		</property>
     </bean>    
+    <bean id="linkBean" singleton='false' class="org.apache.jetspeed.portlets.site.LinkProxyBean">
+        <description>Link bean</description>
+		<property name="lookupKey">
+			<value>site.link.key</value>
+		</property>
+    </bean>    
     
 <!-- Views -->
     <bean id="portlet-views" class="java.util.HashMap">
@@ -30,10 +36,13 @@
   	   	  <entry key="page-view">
   	   	  	<value>/WEB-INF/view/site/page-details.vm</value>
   	   	  </entry>          
+  	   	  <entry key="link-view">
+  	   	  	<value>/WEB-INF/view/site/link-details.vm</value>
+  	   	  </entry>          				 
   	   	  <entry key="add-page">
   	   	  	<value>/WEB-INF/view/site/add-page.vm</value>
   	   	  </entry>
-  	   	  <entry key="add-subfolder">
+  	   	  <entry key="add-folder">
   	   	  	<value>/WEB-INF/view/site/add-subfolder.vm</value>
   	   	  </entry>
   	   	  <entry key="add-link">
@@ -71,12 +80,19 @@
   	   	  <entry key="page-view">
   	   	  	<value>pageBean</value>
   	   	  </entry>          
+  	   	  <entry key="link-view">
+  	   	  	<value>linkBean</value>
+  	   	  </entry>				 
   	   	  <entry key="add-page">
   	   	  	<value>pageBean</value>
   	   	  </entry>          
   	   	  <entry key="add-folder">
   	   	  	<value>folderBean</value>
   	   	  </entry>          
+  	   	  <entry key="add-link">
+  	   	  	<value>linkBean</value>
+  	   	  </entry>
+				 
   	   	</map>
   	   </constructor-arg>    	
     </bean>
@@ -98,6 +114,13 @@
   	   	  <entry key="add-folder">
   	   	  	<value>folderBean</value>
   	   	  </entry>          
+  	   	  <entry key="link-view">
+  	   	  	<value>linkBean</value>
+  	   	  </entry>
+  	   	  <entry key="add-link">
+  	   	  	<value>linkBean</value>
+  	   	  </entry>				 
+				 
   	   	</map>
   	   </constructor-arg>    	
     </bean>
@@ -118,6 +141,9 @@
   	   	  <entry key="page-view:success">
   	   	  	<value>page-view,mode:view</value>
   	   	  </entry>                      
+  	   	  <entry key="link-view:success">
+  	   	  	<value>link-view,mode:view</value>
+  	   	  </entry>                      				 
   	   	</map>  	   	
   	   </constructor-arg>    	
     </bean>    

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/velocity/velocity-macros.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/velocity/velocity-macros.vm?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/velocity/velocity-macros.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/velocity/velocity-macros.vm Wed Dec  7 14:54:26 2005
@@ -94,3 +94,46 @@
     <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
   </tr>
 #end
+
+#macro (form4CheckBoxCell $label $value $id)
+   <tr colspan="4" align="right">
+    <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
+    <td nowrap class="portlet-form-field-label" align="right">&nbsp;</td>
+    <td class="portlet-form-input-field" align="left">
+      <input type="checkbox" name="$id" #if ($value=="true") checked=1 #end>&nbsp;$label</input>
+    </td>
+    <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
+    </tr>
+#end
+
+#macro(checkBox $name $checkedValue $uncheckedValue $currentValue $label) 
+    <script type="text/javascript"> 
+      function ${name}_listener(cb) 
+      { 
+         var valueElement = document.getElementById('${name}'); 
+         if(cb.checked) 
+         { 
+             valueElement.value = '$checkedValue'; 
+         } 
+         else 
+         { 
+            valueElement.value = '$uncheckedValue'; 
+         } 
+ 
+      } 
+    </script> 
+    #if($currentValue == $checkedValue) 
+        #set($isChecked = true) 
+    #else 
+        #set($isChecked = false) 
+    #end     
+   <tr colspan="4" align="right">
+    <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
+    <td nowrap class="portlet-form-field-label" align="right">&nbsp;</td>
+    <td class="portlet-form-input-field" align="left">
+      <input type="checkbox" name="${name}_checkBox" id="${name}_checkBox" value="-1" #if($isChecked)checked#end onClick="${name}_listener(this)">$!label</>
+      <input type="hidden" name="${name}" id="${name}" value="${currentValue}" />       
+    </td>
+    <td width="5%" class="portlet-form-label" align="left">&nbsp;</td>
+    </tr>    
+#end

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-link.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-link.vm?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-link.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-link.vm Wed Dec  7 14:54:26 2005
@@ -2,6 +2,19 @@
 
 <h2 class="portlet-section-header">$MESSAGES.getString('add.link')</h2>
 
-<a href="$forward.getView('folder-view')">$MESSAGES.getString('folder.details')</a>
+<form action="$renderResponse.createActionURL()" method="post">
+<input type='hidden' name='portlet.action' value='processAddLinkAction'/>
+<table>
+    #formField('Name' "$!linkBean.Key" "40" 'key' $MESSAGES $ERRORS)
+	    #formField('Title' "$!linkBean.Title" "40" 'title' $MESSAGES $ERRORS)
+    #formField('ShortTitle' "$!linkBean.ShortTitle" "40" 'shortTitle' $MESSAGES $ERRORS)
+	    #formField('Url' "$!linkBean.Url" "80" 'url' $MESSAGES $ERRORS)    
+    #formField('Version' "$!linkBean.Version" "40" 'version' $MESSAGES $ERRORS)
+   	<input type='hidden' name='bridges.view.view' value='add-link'/>
+	
+</table>
+<br/>
+<input type="submit" name="Save" value="$MESSAGES.getString('save')" />
+</form>
 
 #ErrorMessages($ERRORS)

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-page.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-page.vm?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-page.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-page.vm Wed Dec  7 14:54:26 2005
@@ -10,7 +10,7 @@
 	#formField('Title' "$!pageBean.Title" "40" 'title' $MESSAGES $ERRORS)
     #formField('ShortTitle' "$!pageBean.ShortTitle" "40" 'shortTitle' $MESSAGES $ERRORS)
     #formField('Version' "$!pageBean.Version" "40" 'version' $MESSAGES $ERRORS)
-	<input type='hidden' name='bridges.view.view' value='add-page'/>
+ 	<input type='hidden' name='bridges.view.view' value='add-page'/> 
 	
 </table>
 <br/>

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-subfolder.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-subfolder.vm?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-subfolder.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/add-subfolder.vm Wed Dec  7 14:54:26 2005
@@ -12,6 +12,5 @@
 </table>
 <br/>
 <input type="submit" name="Save" value="$MESSAGES.getString('save')" />
-<a href="$forward.getView('folder-view')">$MESSAGES.getString('folder.details')</a>
 </form>
 #ErrorMessages($ERRORS)

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/folder-details.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/folder-details.vm?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/folder-details.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/folder-details.vm Wed Dec  7 14:54:26 2005
@@ -1,5 +1,3 @@
-<script language="javascript" src="${request.contextPath}/javascript/pam.js"></script>
-
 #set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
 
 #if ($!folderBean.isNew())
@@ -17,18 +15,25 @@
 </table>
 <br/>
 <input type="submit" name="Save" value="$MESSAGES.getString('save')" />
+#if ($!folderBean.Path != "/")
+<input type="submit" name="Delete" value="$MESSAGES.getString('remove')" />
+#end
 <!-- <a href="#" onClick='return checkSubmit("Remove","${pa.name}")'>$MESSAGES.getString('remove')</a> -->
-#set ($sub = $forward.getView('add-subfolder'))
+#set ($sub = $forward.getView('add-folder'))
 $sub.setParameter('parent', $!folderBean.Key)
+$sub.setParameter('new', 'add-folder')
 #set ($page = $forward.getView('add-page'))
 $page.setParameter('parent', $!folderBean.Key)
+$page.setParameter('new', 'add-page')
+#set ($link = $forward.getView('add-link'))
+$link.setParameter('parent', $!folderBean.Key)
+$link.setParameter('new', 'add-link')
 <a href="$sub">[$MESSAGES.getString('add.subfolder')]</a>
 <a href="$page">[$MESSAGES.getString('add.page')]</a>
-<a href="$forward.getView('add-link')">[$MESSAGES.getString('add.link')]</a>
-<a href="$forward.getView('doc-order')">[$MESSAGES.getString('doc.order')]</a>
-<a href="$forward.getView('menus')">[$MESSAGES.getString('menus')]</a>
-<a href="$forward.getView('security')">[$MESSAGES.getString('security')]</a>
+<a href="$link">[$MESSAGES.getString('add.link')]</a>
+</table>
 </form>
 
 #ErrorMessages($ERRORS)
-#end
\ No newline at end of file
+#end
+

Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/link-details.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/link-details.vm?rev=354888&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/link-details.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/link-details.vm Wed Dec  7 14:54:26 2005
@@ -0,0 +1,22 @@
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($!linkBean.isNew())
+
+#else
+<h2 class="portlet-section-header">$MESSAGES.getString('link.details')</h2>
+
+<form action="$renderResponse.createActionURL()" method="post">
+<input type='hidden' name='portlet.action' value='processSaveLinkAction'/>
+<table>
+    #formField('Title' "$!linkBean.Title" "40" 'title' $MESSAGES $ERRORS)
+    #formField('ShortTitle' "$!linkBean.ShortTitle" "40" 'shortTitle' $MESSAGES $ERRORS)
+	    #formField('Url' "$!linkBean.Url" "80" 'url' $MESSAGES $ERRORS)        
+    #formField('Version' "$!linkBean.Version" "40" 'version' $MESSAGES $ERRORS)
+</table>
+<br/>
+<input type="submit" name="Save" value="$MESSAGES.getString('save')" />
+<input type="submit" name="Delete" value="$MESSAGES.getString('remove')" />
+</form>
+
+#ErrorMessages($ERRORS)
+#end

Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/page-details.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/page-details.vm?rev=354888&r1=354887&r2=354888&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/page-details.vm (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/site/page-details.vm Wed Dec  7 14:54:26 2005
@@ -1,7 +1,8 @@
-<script language="javascript" src="${request.contextPath}/javascript/pam.js"></script>
-
 #set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
 
+#set($rc = $renderRequest.getAttribute("org.apache.jetspeed.request.RequestContext"))
+#set($req = $rc.Request)
+
 #if ($!pageBean.isNew())
 
 #else
@@ -13,12 +14,12 @@
     #formField('Title' "$!pageBean.Title" "40" 'title' $MESSAGES $ERRORS)
     #formField('ShortTitle' "$!pageBean.ShortTitle" "40" 'shortTitle' $MESSAGES $ERRORS)
     #formField('Version' "$!pageBean.Version" "40" 'version' $MESSAGES $ERRORS)
+    #checkBox("hidden" "t" "f" $pageBean.Hidden $MESSAGES.getString('Hidden')) 
 </table>
 <br/>
 <input type="submit" name="Save" value="$MESSAGES.getString('save')" />
-<!-- <a href="#" onClick='return checkSubmit("Remove","${pa.name}")'>$MESSAGES.getString('remove')</a> -->
-<a href="$forward.getView('security')">[$MESSAGES.getString('security')]</a>
+<input type="submit" name="Delete" value="$MESSAGES.getString('remove')" />
+<a href="$req.ContextPath/portal$!pageBean.Key">[View Page]</a>
 </form>
-
 #ErrorMessages($ERRORS)
-#end
\ No newline at end of file
+#end



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org