. 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()}); new String[] {buf.toString()});
} }
/**
* @return the invited users for the project - as UserWrapper instances
*/
public List<UserWrapper> getInvitedUsers() public List<UserWrapper> getInvitedUsers()
{ {
final FacesContext fc = FacesContext.getCurrentInstance(); final FacesContext fc = FacesContext.getCurrentInstance();
List<UserGroupRole> invitedUserRoles = (List<UserGroupRole>) List<UserGroupRole> invitedUserRoles = (List<UserGroupRole>)
getInviteUsersWizard().getUserRolesDataModel().getWrappedData(); getInviteUsersWizard().getUserRolesDataModel().getWrappedData();
@@ -497,6 +499,7 @@ public class CreateWebsiteWizard extends BaseWizardBean
return result; return result;
} }
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
// Define Web Content Workflows page // Define Web Content Workflows page

View File

@@ -230,8 +230,13 @@ public class FormDetailsDialog extends BaseDialogBean
} }
if (this.workflowSelectedValue != null && this.workflowSelectedValue.length != 0) if (this.workflowSelectedValue != null && this.workflowSelectedValue.length != 0)
{ {
WorkflowDefinition def = this.workflowService.getDefinitionByName(this.workflowSelectedValue[0]); // test to make sure we don't lose the existing workflow configuration
form.setWorkflow(new CreateWebsiteWizard.WorkflowWrapper(def.getName(), def.getTitle(), def.getDescription())); 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; return outcome;
} }

View File

@@ -18,6 +18,7 @@ package org.alfresco.web.bean.wcm;
import java.io.Serializable; import java.io.Serializable;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -26,6 +27,8 @@ import java.util.regex.PatternSyntaxException;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import org.alfresco.error.AlfrescoRuntimeException; 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.WorkflowDefinition;
import org.alfresco.service.cmr.workflow.WorkflowService; import org.alfresco.service.cmr.workflow.WorkflowService;
import org.alfresco.service.cmr.workflow.WorkflowTaskDefinition; 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.app.Application;
import org.alfresco.web.bean.dialog.BaseDialogBean; import org.alfresco.web.bean.dialog.BaseDialogBean;
import org.alfresco.web.bean.repository.Node; 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.repository.TransientNode;
import org.alfresco.web.bean.workflow.WorkflowUtil; import org.alfresco.web.bean.workflow.WorkflowUtil;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@@ -169,6 +173,26 @@ public class FormWorkflowDialog extends BaseDialogBean
current.addAll((List)value); 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.setParams(params);
} }
wf.setType(this.workflowNode.getType()); wf.setType(this.workflowNode.getType());

View File

@@ -102,7 +102,7 @@
<c:when test="${r.workflow == null}"> <c:when test="${r.workflow == null}">
<span style="font-style:italic">${msg.none}</span> <span style="font-style:italic">${msg.none}</span>
</c:when> </c:when>
<c:otherwise>{r.workflow.title}</c:otherwise> <c:otherwise>${r.workflow.title}</c:otherwise>
</c:choose> </c:choose>
</td> </td>
</tr> </tr>