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