tdraier 2005/11/09 12:02:44 CET
Modified files:
core/src/java/org/jahia/content ContentObject.java
core/src/java/org/jahia/services/containers
ContentContainer.java
ContentContainerList.java
core/src/java/org/jahia/services/fields ContentField.java
core/src/java/org/jahia/services/importexport
ContentPickerListener.java
core/src/java/org/jahia/services/pages ContentPage.java
core/src/java/org/jahia/services/workflow
WorkflowEventListener.java
Log:
added linked copy validation checks
Revision Changes Path
1.25 +28 -1 jahia/core/src/java/org/jahia/content/ContentObject.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/content/ContentObject.java.diff?r1=1.24&r2=1.25&f=h
1.22 +4 -2
jahia/core/src/java/org/jahia/services/containers/ContentContainer.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/containers/ContentContainer.java.diff?r1=1.21&r2=1.22&f=h
1.15 +4 -2
jahia/core/src/java/org/jahia/services/containers/ContentContainerList.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/containers/ContentContainerList.java.diff?r1=1.14&r2=1.15&f=h
1.37 +1 -17
jahia/core/src/java/org/jahia/services/fields/ContentField.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/fields/ContentField.java.diff?r1=1.36&r2=1.37&f=h
1.18 +15 -0
jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java.diff?r1=1.17&r2=1.18&f=h
1.41 +2 -2
jahia/core/src/java/org/jahia/services/pages/ContentPage.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/pages/ContentPage.java.diff?r1=1.40&r2=1.41&f=h
1.13 +9 -1
jahia/core/src/java/org/jahia/services/workflow/WorkflowEventListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/workflow/WorkflowEventListener.java.diff?r1=1.12&r2=1.13&f=h
Index: ContentObject.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/content/ContentObject.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- ContentObject.java 3 Nov 2005 13:22:21 -0000 1.24
+++ ContentObject.java 9 Nov 2005 11:02:41 -0000 1.25
@@ -1164,7 +1164,34 @@
ProcessingContext jParams,
StateModificationContext stateModifContext)
throws JahiaException {
- return new ActivationTestResults();
+ return isPickedValidForActivation(languageCodes, jParams,
stateModifContext);
+ }
+
+ public ActivationTestResults isPickedValidForActivation (
+ Set languageCodes,
+ ProcessingContext jParams,
+ StateModificationContext stateModifContext)
+ throws JahiaException {
+ ActivationTestResults activationTestResults = new
ActivationTestResults();
+ ContentObject pickedObject = getPickedObject();
+ if (pickedObject != null) {
+ for (Iterator iterator = languageCodes.iterator();
iterator.hasNext();) {
+ String s = (String) iterator.next();
+ if (pickedObject.getStagingStatus(s) !=
VersioningDifferenceStatus.UNCHANGED) {
+ try {
+ activationTestResults.setStatus
(ActivationTestResults.
+ FAILED_OPERATION_STATUS);
+ activationTestResults.appendError(
+ new IsValidForActivationResults
(getObjectKey().getType(),
+
Integer.parseInt(getObjectKey().getIDInType()),s,
+ "Source object must be validated"));
+ } catch (ClassNotFoundException e) {
+ //...
+ }
+ }
+ }
+ }
+ return activationTestResults;
}
public void setWorkflowState (Set languageCodes,
Index: ContentContainer.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/containers/ContentContainer.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- ContentContainer.java 3 Nov 2005 13:22:26 -0000 1.21
+++ ContentContainer.java 9 Nov 2005 11:02:42 -0000 1.22
@@ -881,8 +881,10 @@
ProcessingContext jParams,
StateModificationContext stateModifContext)
throws JahiaException {
- return ServicesRegistry.getInstance().getJahiaContainersService
().isContainerValidForActivation(
- languageCodes, getID (), jParams.getUser(), null, jParams,
stateModifContext);
+ ActivationTestResults activationTestResults =
super.isValidForActivation(languageCodes, jParams, stateModifContext);
+
activationTestResults.merge(ServicesRegistry.getInstance().getJahiaContainersService
().isContainerValidForActivation(
+ languageCodes, getID (), jParams.getUser(), null, jParams,
stateModifContext));
+ return activationTestResults;
}
Index: ContentContainerList.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/containers/ContentContainerList.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- ContentContainerList.java 3 Nov 2005 13:22:26 -0000 1.14
+++ ContentContainerList.java 9 Nov 2005 11:02:42 -0000 1.15
@@ -547,8 +547,10 @@
ProcessingContext jParams,
StateModificationContext stateModifContext)
throws JahiaException {
- return ServicesRegistry.getInstance().getJahiaContainersService
().isContainerListValidForActivation(
- languageCodes, getID (), jParams.getUser(), null,
stateModifContext);
+ ActivationTestResults activationTestResults =
super.isValidForActivation(languageCodes, jParams, stateModifContext);
+
activationTestResults.merge(ServicesRegistry.getInstance().getJahiaContainersService
().isContainerListValidForActivation(
+ languageCodes, getID (), jParams.getUser(), null,
stateModifContext));
+ return activationTestResults;
}
Index: ContentField.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/fields/ContentField.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- ContentField.java 3 Nov 2005 13:22:26 -0000 1.36
+++ ContentField.java 9 Nov 2005 11:02:42 -0000 1.37
@@ -758,7 +758,7 @@
ProcessingContext jParams,
StateModificationContext stateModifContext)
throws JahiaException {
- ActivationTestResults activationTestResults = new
ActivationTestResults();
+ ActivationTestResults activationTestResults =
super.isValidForActivation(languageCodes, jParams, stateModifContext);
int containerId = this.getContainerID();
ContentContainer contentContainer = null;
@@ -2053,20 +2053,4 @@
}
return super.checkAccess(user, permission);
}
-
- public String getPagePathString(ProcessingContext context, boolean
ignoreMetadata) {
- if ( !this.isMetadata() ){
- return super.getPagePathString(context,ignoreMetadata);
- } else {
- try {
- ContentObject cObj =
ContentObject.getContentObjectFromMetadata(this.getObjectKey());
- if ( cObj != null ){
- return cObj.getPagePathString(context,ignoreMetadata);
- }
- } catch ( Throwable t ){
- logger.warn("Metadata without parent ",t);
- }
- }
- return "";
- }
}
Index: ContentPickerListener.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ContentPickerListener.java 2 Nov 2005 15:39:31 -0000 1.17
+++ ContentPickerListener.java 9 Nov 2005 11:02:42 -0000 1.18
@@ -14,6 +14,8 @@
import org.jahia.services.usermanager.JahiaGroup;
import org.jahia.services.usermanager.JahiaGroupManagerService;
import org.jahia.content.ContentObject;
+import org.jahia.content.ObjectKey;
+import org.jahia.content.events.ContentActivationEvent;
import org.jahia.registries.ServicesRegistry;
import org.jahia.params.ProcessingContext;
import org.jahia.bin.Jahia;
@@ -131,6 +133,19 @@
}
}
+ public void contentActivation(ContentActivationEvent theEvent) {
+ try {
+ ContentObject object = (ContentObject)
ContentObject.getInstance((ObjectKey)theEvent.getObject());
+// for (Iterator iterator =
theEvent.getLanguageCodes().iterator(); iterator.hasNext();) {
+// String lang = (String) iterator.next();
+ WorkflowEvent we = new WorkflowEvent(theEvent.getSource(),
object, theEvent.getUser(), null, false);
+ objectChanged(we);
+// }
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace(); //To change body of catch statement use
File | Settings | File Templates.
+ }
+ }
+
private void setUser(ContentObject picker, JahiaSite site,
ProcessingContext jParams, JahiaUser oldUser) throws JahiaException {
ContentObject container = picker;
while (!(container instanceof ContentContainer) && container !=
null) {
Index: ContentPage.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/pages/ContentPage.java,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- ContentPage.java 3 Nov 2005 13:22:28 -0000 1.40
+++ ContentPage.java 9 Nov 2005 11:02:43 -0000 1.41
@@ -3132,7 +3132,7 @@
ProcessingContext jParams,
StateModificationContext stateModifContext)
throws JahiaException {
- ActivationTestResults activationTestResults = new
ActivationTestResults ();
+ ActivationTestResults activationTestResults =
super.isValidForActivation(languageCodes, jParams, stateModifContext);
EntryLoadRequest stagedLoadRequest = new EntryLoadRequest (
EntryLoadRequest.STAGING_WORKFLOW_STATE, 0, new ArrayList
(), false);
int pageType = getPageType (EntryLoadRequest.STAGED);
@@ -5179,7 +5179,7 @@
}
return pagePath;
}
-
+
/*
* Update all childs content's metadata PAGE_PATH bellow this node
*
Index: WorkflowEventListener.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/workflow/WorkflowEventListener.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- WorkflowEventListener.java 2 Nov 2005 15:55:50 -0000 1.12
+++ WorkflowEventListener.java 9 Nov 2005 11:02:43 -0000 1.13
@@ -14,6 +14,7 @@
import org.jahia.services.usermanager.JahiaUserManagerService;
import org.jahia.services.version.JahiaSaveVersion;
import org.jahia.services.version.StateModificationContext;
+import org.jahia.services.version.ActivationTestResults;
import java.util.HashSet;
import java.util.Iterator;
@@ -80,7 +81,14 @@
boolean versioningActive = site.isVersioningEnabled();
JahiaSaveVersion saveVersion = new JahiaSaveVersion
(true, versioningActive);
StateModificationContext stateModifContext = new
StateModificationContext(mainObject.getObjectKey(), langs,
descendingInSubPages);
- if (!object.getStagingLanguages(false,true).isEmpty()) {
+ ActivationTestResults testActivationResults =
object.isValidForActivation(langs, jParams, stateModifContext);
+ if (!object.getStagingLanguages(false,true).isEmpty() &&
testActivationResults.getStatus() !=
ActivationTestResults.FAILED_OPERATION_STATUS) {
+ ContentObject parent = object.getParent(null);
+ if (parent != null) {
+ if (parent.getPickedObject() != null &&
object.getPickedObject() == null) {
+ break;
+ }
+ }
object.activate(langs, versioningActive,
saveVersion, user, jParams, stateModifContext);
}
break;