mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
. 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:
@@ -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
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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());
|
||||
|
Reference in New Issue
Block a user