tdraier 2005/10/28 12:47:35 CEST
Modified files:
core/src/java/org/jahia/data/beans ContainerListBean.java
Log:
avoid paste loops
Revision Changes Path
1.18 +14 -2
jahia/core/src/java/org/jahia/data/beans/ContainerListBean.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/beans/ContainerListBean.java.diff?r1=1.17&r2=1.18&f=h
Index: ContainerListBean.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/beans/ContainerListBean.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ContainerListBean.java 27 Sep 2005 10:57:59 -0000 1.17
+++ ContainerListBean.java 28 Oct 2005 10:47:35 -0000 1.18
@@ -3,6 +3,7 @@
import org.jahia.content.ContentObject;
import org.jahia.content.ContentObjectKey;
import org.jahia.content.JahiaObject;
+import org.jahia.content.ObjectKey;
import org.jahia.data.containers.JahiaContainer;
import org.jahia.data.containers.JahiaContainerDefinition;
import org.jahia.data.containers.JahiaContainerList;
@@ -24,6 +25,7 @@
import org.jahia.services.pages.JahiaPage;
import org.jahia.services.usermanager.JahiaUser;
import org.jahia.services.workflow.WorkflowService;
+import org.jahia.services.version.EntryLoadRequest;
import org.jahia.utils.InsertionSortedMap;
import java.util.*;
@@ -410,8 +412,18 @@
JahiaContainerDefinition sDef =
((ContentContainer)clipSource).getJahiaContainer(processingContext,
processingContext.getEntryLoadRequest()).getDefinition();
JahiaContainerDefinition dDef =
jahiaContainerList.getDefinition();
if
(ServicesRegistry.getInstance().getImportExportService().isCompatible(dDef,
sDef)) {
- curActionURIBean = new ActionURIBean("paste", "",
"clipboard('"+((ParamBean)processingContext).getRequest().getContextPath()+"','"+jahiaContainerList.getContentContainerList().getObjectKey()+"','paste',"
+ processingContext.getPageID()+")");
-
actionURIs.put(curActionURIBean.getName(),curActionURIBean);
+ ContentObject current =
jahiaContainerList.getContentContainerList();
+ ObjectKey objectKey = current.getObjectKey();
+ while (current != null) {
+ if
(current.getObjectKey().equals(clipSource.getObjectKey())) {
+ break;
+ }
+ current =
current.getParent(EntryLoadRequest.STAGED);
+ }
+ if (current == null) {
+ curActionURIBean = new ActionURIBean("paste",
"",
"clipboard('"+((ParamBean)processingContext).getRequest().getContextPath()+"','"+objectKey
+"','paste'," + processingContext.getPageID()+")");
+
actionURIs.put(curActionURIBean.getName(),curActionURIBean);
+ }
}
} catch (ClassNotFoundException e) {
}