Author: kevinshen
Date: 2009-05-05 04:47:34 +0200 (Tue, 05 May 2009)
New Revision: 34950

Modified:
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site.properties
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_nl.properties
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_zh.properties
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/PortletUtil.java
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/PageDelete.java
   
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
Log:
CMSC-1306 When removing page, all nodeparameter should be checked on 
click-trough settings to that page

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site.properties
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site.properties
  2009-05-04 20:29:28 UTC (rev 34949)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site.properties
  2009-05-05 02:47:34 UTC (rev 34950)
@@ -53,3 +53,6 @@
 toolbar.properties=Properties
 toolbar.publish=Publish
 toolbar.showtree=Show Tree
+
+pagedelete.unlink.title=Unlink from pages
+pagedelete.unlink.info=The page is click-through linked by the following 
page(s).
\ No newline at end of file

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_nl.properties
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_nl.properties
       2009-05-04 20:29:28 UTC (rev 34949)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_nl.properties
       2009-05-05 02:47:34 UTC (rev 34950)
@@ -53,4 +53,7 @@
 toolbar.preview=Voorbeeld
 toolbar.properties=Eigenschappen
 toolbar.publish=Publiceer
-toolbar.showtree=Toon paginaboom
\ No newline at end of file
+toolbar.showtree=Toon paginaboom
+
+pagedelete.unlink.title=Unlink from pages
+pagedelete.unlink.info=The page is click-through linked by the following 
page(s).
\ No newline at end of file

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_zh.properties
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_zh.properties
       2009-05-04 20:29:28 UTC (rev 34949)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/resources/cmsc-site_zh.properties
       2009-05-05 02:47:34 UTC (rev 34950)
@@ -52,4 +52,7 @@
 toolbar.preview=预览
 toolbar.properties=属性
 toolbar.publish=发布
-toolbar.showtree=显示树
\ No newline at end of file
+toolbar.showtree=显示树
+
+pagedelete.unlink.title=被引用的页面
+pagedelete.unlink.info=本页面被其他页面通过portlet引用方式引用的页面列表.
\ No newline at end of file

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/PortletUtil.java
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/PortletUtil.java
  2009-05-04 20:29:28 UTC (rev 34949)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/PortletUtil.java
  2009-05-05 02:47:34 UTC (rev 34950)
@@ -741,5 +741,24 @@
          nodes.add(node);
       }
    }
-
+   /**
+    * using the click-through links at that page
+    */
+   public static NodeList findLinkedPorlets(Node page) {
+      NodeManager nodeParameterManager = 
page.getCloud().getNodeManager(NODEPARAMETER);
+      NodeQuery query = nodeParameterManager.createQuery();
+      SearchUtil.addEqualConstraint(query, 
nodeParameterManager.getField("value"), page.getNumber());
+      NodeList nodeParameterList = query.getList();
+      
+      NodeList linkedPortletList =  page.getCloud().createNodeList();
+      if(nodeParameterList.size() > 0) {
+         for(int i = 0 ; i < nodeParameterList.size() ; i++) {
+            Node nodeParameterNode = nodeParameterList.getNode(i);
+            NodeList portletNodeList = 
nodeParameterNode.getRelatedNodes(PORTLET);
+            Node portletNode = portletNodeList.getNode(0);
+            linkedPortletList.add(portletNode);
+         }
+      }
+      return linkedPortletList;
+   }
 }

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/PageDelete.java
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/PageDelete.java
     2009-05-04 20:29:28 UTC (rev 34949)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/forms/PageDelete.java
     2009-05-05 02:47:34 UTC (rev 34950)
@@ -9,20 +9,33 @@
  */
 package com.finalist.cmsc.navigation.forms;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
 import org.mmbase.bridge.Cloud;
 import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.Relation;
 
+import com.finalist.cmsc.mmbase.RelationUtil;
 import com.finalist.cmsc.navigation.NavigationUtil;
+import com.finalist.cmsc.navigation.PortletUtil;
 import com.finalist.cmsc.security.SecurityUtil;
 import com.finalist.cmsc.security.UserRole;
+import com.finalist.cmsc.services.sitemanagement.SiteManagement;
 import com.finalist.cmsc.struts.MMBaseFormlessAction;
 
 public class PageDelete extends MMBaseFormlessAction {
 
+   /** porlet name **/
+   private static final String FIELD_NAME = "name";
+   /** page builder name **/
+   private static final String PAGE = "page";
+
    /** name of submit button in jsp to confirm removal */
    private static final String ACTION_REMOVE = "remove";
 
@@ -32,10 +45,9 @@
 
    @Override
    public ActionForward execute(ActionMapping mapping, HttpServletRequest 
request, Cloud cloud) throws Exception {
-
+      String objectnumber = getParameter(request, "number", true);
+      Node pageNode = cloud.getNode(objectnumber);
       if (isRemoveAction(request)) {
-         String objectnumber = getParameter(request, "number", true);
-         Node pageNode = cloud.getNode(objectnumber);
 
          UserRole role = NavigationUtil.getRole(pageNode.getCloud(), pageNode, 
false);
          boolean isWebMaster = (role != null && 
SecurityUtil.isWebmaster(role));
@@ -50,12 +62,31 @@
       if (isCancelAction(request)) {
          return mapping.findForward(SUCCESS);
       }
+      //CMSC-1306
+      if(PortletUtil.findLinkedPorlets(pageNode).size() > 0) {
+         NodeList porlets = PortletUtil.findLinkedPorlets(pageNode);
+         Map<String,Integer> hashMap = new HashMap<String,Integer>();
+         for(int i = 0 ; i < porlets.size() ; i++) {
+            Node portlet = porlets.getNode(i);
+            Node page = portlet.getRelatedNodes(PAGE).getNode(0);
+            Relation relation 
=RelationUtil.getRelation(portlet.getCloud().getNodeManager("portletrel"), 
page.getNumber(), portlet.getNumber());
+            String portletName = relation.getStringValue(FIELD_NAME);
+            String url = SiteManagement.getPath(page.getNumber(), true);
+            if(!url.endsWith("/")) {
+               url += "/";
+            }
+            url += "_md_"+portletName+"/edit_defaults";
+            hashMap.put(url, page.getNumber());
+         }
 
+         request.setAttribute("pageMap", hashMap);
+         return mapping.findForward("linkedlist");
+      }
+      
       // neither remove or cancel, show confirmation page
       return mapping.findForward("pagedelete");
    }
 
-
    private boolean isRemoveAction(HttpServletRequest request) {
       return getParameter(request, ACTION_REMOVE) != null;
    }

Modified: 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
===================================================================
--- 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
      2009-05-04 20:29:28 UTC (rev 34949)
+++ 
CMSContainer/trunk/CMSContainer/cmsc/sitemanagement/src/webapp/WEB-INF/struts-site.xml
      2009-05-05 02:47:34 UTC (rev 34950)
@@ -60,6 +60,7 @@
                 unknown="false" validate="false">
             <forward name="pagedelete" path="/editors/site/pagedelete.jsp" 
redirect="false"/>
             <forward name="success" path="/editors/site/refreshpages.jsp" 
redirect="false"/>
+            <forward name="linkedlist" path="/editors/site/linkedlist.jsp" 
redirect="false"/>
         </action>
 
         <action path="/editors/site/Navigator" 
type="com.finalist.cmsc.navigation.forms.NavigatorAction"

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to