diff --git a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java index c8a7c3b41f..d0e2535ea2 100644 --- a/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java +++ b/source/java/org/alfresco/web/bean/wcm/CreateWebsiteWizard.java @@ -473,9 +473,11 @@ public class CreateWebsiteWizard extends BaseWizardBean new String[] {buf.toString()}); } + /** + * @return the invited users for the project - as UserWrapper instances + */ public List getInvitedUsers() { - final FacesContext fc = FacesContext.getCurrentInstance(); List invitedUserRoles = (List) getInviteUsersWizard().getUserRolesDataModel().getWrappedData(); @@ -497,6 +499,7 @@ public class CreateWebsiteWizard extends BaseWizardBean return result; } + // ------------------------------------------------------------------------------ // Define Web Content Workflows page diff --git a/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java b/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java index 11ae0c978e..d25793b545 100644 --- a/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/FormDetailsDialog.java @@ -230,8 +230,13 @@ public class FormDetailsDialog extends BaseDialogBean } if (this.workflowSelectedValue != null && this.workflowSelectedValue.length != 0) { - WorkflowDefinition def = this.workflowService.getDefinitionByName(this.workflowSelectedValue[0]); - form.setWorkflow(new CreateWebsiteWizard.WorkflowWrapper(def.getName(), def.getTitle(), def.getDescription())); + // test to make sure we don't lose the existing workflow configuration + String wfSelected = this.workflowSelectedValue[0]; + if (form.getWorkflow() == null || form.getWorkflow().getName().equals(wfSelected) == false) + { + WorkflowDefinition def = this.workflowService.getDefinitionByName(wfSelected); + form.setWorkflow(new CreateWebsiteWizard.WorkflowWrapper(def.getName(), def.getTitle(), def.getDescription())); + } } return outcome; } diff --git a/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java b/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java index fc011382eb..dfbc1450cf 100644 --- a/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/FormWorkflowDialog.java @@ -18,6 +18,7 @@ package org.alfresco.web.bean.wcm; import java.io.Serializable; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.regex.Pattern; @@ -26,6 +27,8 @@ import java.util.regex.PatternSyntaxException; import javax.faces.context.FacesContext; import org.alfresco.error.AlfrescoRuntimeException; +import org.alfresco.service.cmr.repository.AssociationRef; +import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.workflow.WorkflowDefinition; import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.cmr.workflow.WorkflowTaskDefinition; @@ -33,6 +36,7 @@ import org.alfresco.service.namespace.QName; import org.alfresco.web.app.Application; import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.repository.Node; +import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.repository.TransientNode; import org.alfresco.web.bean.workflow.WorkflowUtil; import org.apache.commons.logging.Log; @@ -169,6 +173,26 @@ public class FormWorkflowDialog extends BaseDialogBean current.addAll((List)value); } } + // remove any deleted associations + Map> assocs = this.workflowNode.getRemovedAssociations(); + for (String assocName : assocs.keySet()) + { + QName assocQName = Repository.resolveToQName(assocName); + + // get the associations removed and create list of targets + if (params.containsKey(assocQName)) + { + List current = (List)params.get(assocQName); + if (current != null) + { + Map removedAssocs = assocs.get(assocName); + for (AssociationRef assoc : removedAssocs.values()) + { + current.remove(assoc.getTargetRef()); + } + } + } + } wf.setParams(params); } wf.setType(this.workflowNode.getType()); diff --git a/source/web/jsp/wcm/create-website-wizard/summary.jsp b/source/web/jsp/wcm/create-website-wizard/summary.jsp index 6281e2d921..c255d3a819 100644 --- a/source/web/jsp/wcm/create-website-wizard/summary.jsp +++ b/source/web/jsp/wcm/create-website-wizard/summary.jsp @@ -102,7 +102,7 @@ ${msg.none} - {r.workflow.title} + ${r.workflow.title}