Index: main/plugin-cms/plugin.xml
===================================================================
--- main/plugin-cms/plugin.xml (revision 19001)
+++ main/plugin-cms/plugin.xml (working copy)
@@ -289,6 +289,10 @@
class="org.ametys.cms.workflow.SetCurrentStepFunction">
+
+
+
Index: main/plugin-cms/src/org/ametys/cms/workflow/SetCurrentStepFunction.java
===================================================================
--- main/plugin-cms/src/org/ametys/cms/workflow/SetCurrentStepFunction.java (revision 19001)
+++ main/plugin-cms/src/org/ametys/cms/workflow/SetCurrentStepFunction.java (working copy)
@@ -20,7 +20,6 @@
import org.apache.avalon.framework.activity.Initializable;
import org.ametys.cms.repository.WorkflowAwareContent;
-import org.ametys.cms.workflow.AbstractContentWorkflowComponent;
import org.ametys.plugins.workflow.Workflow;
import com.opensymphony.module.propertyset.PropertySet;
@@ -48,9 +47,9 @@
if (content != null)
{
+ // Save the current step
Step currentStep = (Step) _workflow.getCurrentSteps(content.getWorkflowId()).iterator().next();
content.setCurrentStepId(currentStep.getStepId());
-
content.saveChanges();
}
}
Index: main/plugin-cms/src/org/ametys/cms/workflow/CreateContentFunction.java
===================================================================
--- main/plugin-cms/src/org/ametys/cms/workflow/CreateContentFunction.java (revision 19001)
+++ main/plugin-cms/src/org/ametys/cms/workflow/CreateContentFunction.java (working copy)
@@ -37,7 +37,6 @@
import org.ametys.plugins.repository.RepositoryConstants;
import org.ametys.plugins.repository.RepositoryIntegrityViolationException;
import org.ametys.plugins.repository.collection.AmetysObjectCollection;
-import org.ametys.plugins.repository.version.VersionableAmetysObject;
import org.ametys.plugins.workflow.store.JackrabbitWorkflowStore;
import com.opensymphony.module.propertyset.PropertySet;
@@ -125,9 +124,6 @@
session.save();
- // Creates the first version
- ((VersionableAmetysObject) content).checkpoint();
-
_observationManager.notify(new Event(getUser(transientVars), ObservationConstants.CONTENT_ADDED, content));
// Content created
Index: main/plugin-cms/src/org/ametys/cms/workflow/CreateVersionFunction.java
===================================================================
--- main/plugin-cms/src/org/ametys/cms/workflow/CreateVersionFunction.java (revision 0)
+++ main/plugin-cms/src/org/ametys/cms/workflow/CreateVersionFunction.java (revision 0)
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2012 Anyware Services
+ *
+ * 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.ametys.cms.workflow;
+
+import java.util.Map;
+
+import org.ametys.cms.repository.WorkflowAwareContent;
+import org.ametys.plugins.repository.version.VersionableAmetysObject;
+
+import com.opensymphony.module.propertyset.PropertySet;
+import com.opensymphony.workflow.FunctionProvider;
+import com.opensymphony.workflow.WorkflowException;
+
+/**
+ * Creates a new version
+ *
+ */
+public class CreateVersionFunction extends AbstractContentWorkflowComponent implements FunctionProvider
+{
+ @Override
+ public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException
+ {
+ WorkflowAwareContent content = getContent(transientVars);
+
+ if (content != null)
+ {
+ // Create a new version
+ if (content instanceof VersionableAmetysObject)
+ {
+ ((VersionableAmetysObject) content).checkpoint();
+ }
+ }
+ }
+}
Index: main/plugin-cms/src/org/ametys/cms/workflow/EditContentFunction.java
===================================================================
--- main/plugin-cms/src/org/ametys/cms/workflow/EditContentFunction.java (revision 19001)
+++ main/plugin-cms/src/org/ametys/cms/workflow/EditContentFunction.java (working copy)
@@ -62,7 +62,6 @@
import org.ametys.plugins.repository.metadata.ModifiableRichText;
import org.ametys.plugins.repository.metadata.UnknownMetadataException;
import org.ametys.plugins.repository.metadata.jcr.JCRCompositeMetadata;
-import org.ametys.plugins.repository.version.VersionableAmetysObject;
import org.ametys.runtime.upload.Upload;
import org.ametys.runtime.upload.UploadManager;
import org.ametys.runtime.util.I18nizableText;
@@ -162,9 +161,6 @@
// Commit changes
modifiableContent.saveChanges();
- // Create a new version
- ((VersionableAmetysObject) modifiableContent).checkpoint();
-
// Notify the observers of the modification.
_observationManager.notify(new Event(getUser(transientVars), ObservationConstants.CONTENT_MODIFIED, modifiableContent));
Index: main/plugin-cms/src/org/ametys/cms/workflow/ContentWorkflowAction.java
===================================================================
--- main/plugin-cms/src/org/ametys/cms/workflow/ContentWorkflowAction.java (revision 19001)
+++ main/plugin-cms/src/org/ametys/cms/workflow/ContentWorkflowAction.java (working copy)
@@ -84,10 +84,6 @@
lockManager.addLockToken(lockHolder.getProperty(RepositoryConstants.METADATA_LOCKTOKEN).getString());
}
-
- Step currentStep = (Step) _workflow.getCurrentSteps(content.getWorkflowId()).iterator().next();
- content.setCurrentStepId(currentStep.getStepId());
- content.saveChanges();
}
catch (RepositoryException e)
{