. Fix to issue saving modified workflow configuration overwriting old settings

- http://issues.alfresco.com/browse/WCM-219
. Fix to issue saving removed association(s) from worklow config
 - http://issues.alfresco.com/browse/WCM-141

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4837 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2007-01-15 18:38:24 +00:00
parent ebd204500d
commit d1324409be
4 changed files with 36 additions and 4 deletions

View File

@@ -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<UserWrapper> getInvitedUsers()
{
final FacesContext fc = FacesContext.getCurrentInstance();
List<UserGroupRole> invitedUserRoles = (List<UserGroupRole>)
getInviteUsersWizard().getUserRolesDataModel().getWrappedData();
@@ -497,6 +499,7 @@ public class CreateWebsiteWizard extends BaseWizardBean
return result;
}
// ------------------------------------------------------------------------------
// Define Web Content Workflows page

View File

@@ -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;
}

View File

@@ -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<String, Map<String, AssociationRef>> 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<String, AssociationRef> removedAssocs = assocs.get(assocName);
for (AssociationRef assoc : removedAssocs.values())
{
current.remove(assoc.getTargetRef());
}
}
}
}
wf.setParams(params);
}
wf.setType(this.workflowNode.getType());