diff --git a/config/alfresco/web-client-config-actions.xml b/config/alfresco/web-client-config-actions.xml
index f4c601cee8..c032748172 100644
--- a/config/alfresco/web-client-config-actions.xml
+++ b/config/alfresco/web-client-config-actions.xml
@@ -380,11 +380,12 @@
wizard:createForm
-
- org.alfresco.web.action.evaluator.EditFormEvaluator
+
+
Write,CreateChildren
+ org.alfresco.web.action.evaluator.EditFormEvaluator
edit_form
/images/icons/edit_form.gif
wizard:editForm
diff --git a/config/alfresco/web-client-config-wcm-actions.xml b/config/alfresco/web-client-config-wcm-actions.xml
index 2da8058c52..d3cad81c51 100644
--- a/config/alfresco/web-client-config-wcm-actions.xml
+++ b/config/alfresco/web-client-config-wcm-actions.xml
@@ -8,6 +8,7 @@
Write
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
edit
/images/icons/edit_icon.gif
#{AVMEditBean.setupEditAction}
@@ -21,6 +22,7 @@
Delete
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
delete
/images/icons/delete.gif
#{AVMBrowseBean.setupContentAction}
@@ -35,6 +37,7 @@
Delete
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
delete
/images/icons/delete.gif
#{AVMBrowseBean.setupContentAction}
@@ -49,6 +52,7 @@
Delete
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
delete
/images/icons/delete.gif
#{AVMBrowseBean.setupContentAction}
@@ -63,6 +67,7 @@
Delete
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
delete
/images/icons/delete.gif
#{AVMBrowseBean.setupContentAction}
@@ -77,6 +82,7 @@
Read
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
submit
/images/icons/submit.gif
#{AVMBrowseBean.setupContentAction}
@@ -91,6 +97,7 @@
Read
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
revert
/images/icons/revert.gif
#{AVMBrowseBean.revertNode}
@@ -161,6 +168,7 @@
Write
+ org.alfresco.web.action.evaluator.WCMWorkflowEvaluator
update
/images/icons/update.gif
#{AVMBrowseBean.setupContentAction}
diff --git a/source/java/org/alfresco/web/action/evaluator/WCMWorkflowEvaluator.java b/source/java/org/alfresco/web/action/evaluator/WCMWorkflowEvaluator.java
new file mode 100644
index 0000000000..007bc3da1c
--- /dev/null
+++ b/source/java/org/alfresco/web/action/evaluator/WCMWorkflowEvaluator.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2005 Alfresco, Inc.
+ *
+ * Licensed under the Mozilla Public License version 1.1
+ * with a permitted attribution clause. You may obtain a
+ * copy of the License at
+ *
+ * http://www.alfresco.org/legal/license.txt
+ *
+ * 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.alfresco.web.action.evaluator;
+
+import javax.faces.context.FacesContext;
+
+import org.alfresco.repo.avm.AVMNodeConverter;
+import org.alfresco.repo.avm.wf.AVMSubmittedAspect;
+import org.alfresco.service.cmr.avm.AVMService;
+import org.alfresco.web.action.ActionEvaluator;
+import org.alfresco.web.bean.repository.Node;
+import org.alfresco.web.bean.repository.Repository;
+
+/**
+ * UI Action Evaluator - return true if the node is not part of an in-progress WCM workflow.
+ *
+ * @author Kevin Roast
+ */
+public class WCMWorkflowEvaluator implements ActionEvaluator
+{
+ /**
+ * @see org.alfresco.web.action.ActionEvaluator#evaluate(org.alfresco.web.bean.repository.Node)
+ */
+ public boolean evaluate(Node node)
+ {
+ AVMService avm = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAVMService();
+ String path = AVMNodeConverter.ToAVMVersionPath(node.getNodeRef()).getSecond();
+ return !avm.hasAspect(-1, path, AVMSubmittedAspect.ASPECT);
+ }
+}
diff --git a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java
index add4244a38..947c5d3332 100644
--- a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java
+++ b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java
@@ -863,7 +863,14 @@ public class AVMBrowseBean implements IContextListener
String[] parts = path.split("[-:]");
String storename = parts[0];
String username = parts[1];
- setupSandboxActionImpl(AVMConstants.buildAVMUserMainStoreName(storename, username), username, false);
+ if (username.equals(AVMConstants.STORE_STAGING.substring(1)))
+ {
+ setupSandboxActionImpl(null, null, false);
+ }
+ else
+ {
+ setupSandboxActionImpl(AVMConstants.buildAVMUserMainStoreName(storename, username), username, false);
+ }
// setup the action node
AVMNodeDescriptor node = avmService.lookup(-1, path, true);
diff --git a/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java b/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java
index bd3af95144..ec9532d430 100644
--- a/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java
+++ b/source/java/org/alfresco/web/bean/wcm/SubmitDialog.java
@@ -471,7 +471,7 @@ public class SubmitDialog extends BaseDialogBean
this.warningItems = new ArrayList(selected.size() >> 1);
for (AVMNodeDescriptor node : selected)
{
- if (hasAssociatedWorkflow(AVMNodeConverter.ToNodeRef(-1, node.getPath())) == false)
+ if (this.avmService.hasAspect(-1, node.getPath(), AVMSubmittedAspect.ASPECT) == false)
{
NodeRef ref = AVMNodeConverter.ToNodeRef(-1, node.getPath());
if (submittedPaths.contains(node.getPath()) == false)
@@ -555,12 +555,6 @@ public class SubmitDialog extends BaseDialogBean
}
}
- private boolean hasAssociatedWorkflow(NodeRef ref)
- {
- // TODO: does not appear to work for AVM - need a specific impl instead
- return (this.workflowService.getWorkflowsForContent(ref, true).size() != 0);
- }
-
/**
* Construct a workflow package as a layered directory over the staging sandbox. The items for
* submission are pushed into the layer and the package constructed around it.
diff --git a/source/web/images/icons/create_webapp.gif b/source/web/images/icons/create_webapp.gif
index acb4beac34..005c9c5d0c 100644
Binary files a/source/web/images/icons/create_webapp.gif and b/source/web/images/icons/create_webapp.gif differ
diff --git a/source/web/images/icons/create_webapp_large.gif b/source/web/images/icons/create_webapp_large.gif
index 60dfc1d99a..fb9ec9bff4 100644
Binary files a/source/web/images/icons/create_webapp_large.gif and b/source/web/images/icons/create_webapp_large.gif differ