Merged V3.2 to HEAD

16740: Fix for ETHREEOH-2563 and ETHREEOH-2899.
   16741: Fix for ETHREEOH-1781 - web-client-config-custom.xml.unicode.sample has incorrect comment.
   16757: Merged DEV-TEMPORARY to V3.2
      16730: ETHREEOH-2749: Entering a search containing a single quote breaks the script that performs next/previous page in OpenSearch JSF component
      16731: ETHREEOH-2411: Error message appears when trying to create advanced workflow with long description
      16732: ETHREEOH-1944: Navigation via shortcuts brings up incorrect dialogs
   16761: Merged DEV-TEMPORARY to V3.2
      16750: ETHREEOH-2405: system error if user goto Web Projects space from any web project which was deleted by another user.
   16762: Displaying error title when error text is displayed
   16763: Merged DEV-TEMPORARY to V3.2
      16756: ETHREEOH-258: System Error message appears while clicking "Manage Task" icon in "My Completed Task" component for the task, if the user to whom the workflow was assign to is deleted.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16911 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2009-10-14 11:08:21 +00:00
parent 94f41494f6
commit ba3f9629b5
7 changed files with 91 additions and 20 deletions

View File

@@ -33,6 +33,7 @@ import javax.faces.context.FacesContext;
import org.alfresco.config.Config;
import org.alfresco.config.ConfigService;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.web.app.servlet.FacesHelper;
import org.alfresco.web.bean.NavigationBean;
import org.alfresco.web.bean.dialog.DialogManager;
@@ -536,9 +537,17 @@ public class AlfrescoNavigationHandler extends NavigationHandler
// see if there is any navigation config for the node type
ConfigService configSvc = Application.getConfigService(context);
NavigationConfigElement navigationCfg = null;
try
{
Config nodeConfig = configSvc.getConfig(dispatchNode);
NavigationConfigElement navigationCfg = (NavigationConfigElement)nodeConfig.
navigationCfg = (NavigationConfigElement)nodeConfig.
getConfigElement(NavigationElementReader.ELEMENT_NAVIGATION);
}
catch (InvalidNodeRefException e)
{
if (logger.isDebugEnabled()) logger.debug("Invalid node reference: " + dispatchNode);
}
if (navigationCfg != null)
{

View File

@@ -33,6 +33,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Stack;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
@@ -97,6 +98,8 @@ public class DocumentDetailsDialog extends BaseDetailsBean implements Navigatio
private static final String ML_VERSION_PANEL_ID = "ml-versions-panel";
private final static String DOC_DETAILS_STACK = "_alfDocDetailsStack";
transient protected LockService lockService;
transient protected VersionService versionService;
transient protected CheckOutCheckInService cociService;
@@ -140,6 +143,53 @@ public class DocumentDetailsDialog extends BaseDetailsBean implements Navigatio
this.workflowProperties = null;
}
@Override
@SuppressWarnings("unchecked")
public void init(Map<String, String> parameters)
{
super.init(parameters);
//Remember active node.
Stack stack = getRecentNodeRefsStack();
stack.push(getNode().getNodeRef().getId());
}
@Override
@SuppressWarnings("unchecked")
public void restored()
{
super.restored();
Stack stack = getRecentNodeRefsStack();
if (stack.isEmpty() == false)
{
browseBean.setupContentAction((String) stack.peek(), true);
}
}
@Override
@SuppressWarnings("unchecked")
public String cancel()
{
Stack stack = getRecentNodeRefsStack();
if (stack.isEmpty() == false)
{
stack.pop();
}
return super.cancel();
}
@SuppressWarnings("unchecked")
private Stack getRecentNodeRefsStack()
{
FacesContext fc = FacesContext.getCurrentInstance();
Stack stack = (Stack) fc.getExternalContext().getSessionMap().get(DOC_DETAILS_STACK);
if (stack == null)
{
stack = new Stack();
fc.getExternalContext().getSessionMap().put(DOC_DETAILS_STACK, stack);
}
return stack;
}
/**
* Returns the URL to download content for the current document
*
@@ -692,6 +742,7 @@ public class DocumentDetailsDialog extends BaseDetailsBean implements Navigatio
}
// prepare for showing details for this node
getRecentNodeRefsStack().clear();
this.browseBean.setupContentAction(next.getId(), false);
break;
}
@@ -731,6 +782,7 @@ public class DocumentDetailsDialog extends BaseDetailsBean implements Navigatio
}
// prepare for showing details for this node
getRecentNodeRefsStack().clear();
this.browseBean.setupContentAction(previous.getId(), false);
break;
}

View File

@@ -1060,9 +1060,9 @@ public class AVMBrowseBean implements IContextListener
public boolean getIsManagerRole()
{
Node wpNode = getWebsite();
if (wpNode != null)
if (wpNode != null && nodeService.exists(wpNode.getNodeRef()))
{
return getWebProjectService().isContentManager(wpNode.getNodeRef());
return getWebProjectService().isContentManager(wpNode.getNodeRef());
}
return false;
}
@@ -1070,7 +1070,7 @@ public class AVMBrowseBean implements IContextListener
public boolean getIsManagerOrPublisherRole()
{
Node wpNode = getWebsite();
if (wpNode != null)
if (wpNode != null && nodeService.exists(wpNode.getNodeRef()))
{
User user = Application.getCurrentUser(FacesContext.getCurrentInstance());
String userRole = getWebProjectService().getWebUserRole(wpNode.getNodeRef(), user.getUserName());
@@ -1095,7 +1095,6 @@ public class AVMBrowseBean implements IContextListener
this.showAllSandboxes = value;
}
/**
* @return true if the website has had a deployment attempt
*/
@@ -1112,14 +1111,21 @@ public class AVMBrowseBean implements IContextListener
Map request = context.getExternalContext().getRequestMap();
if (request.get(REQUEST_BEEN_DEPLOYED_RESULT) == null)
{
// see if there are any deployment attempts for the staging area
NodeRef webProjectRef = this.getWebsite().getNodeRef();
String store = (String)getNodeService().getProperty(webProjectRef,
if (!nodeService.exists(this.getWebsite().getNodeRef()))
{
result = false;
}
else
{
// see if there are any deployment attempts for the staging area
NodeRef webProjectRef = this.getWebsite().getNodeRef();
String store = (String)getNodeService().getProperty(webProjectRef,
WCMAppModel.PROP_AVMSTORE);
List<NodeRef> deployAttempts = DeploymentUtil.findDeploymentAttempts(store);
// add a placeholder object in the request so we don't evaluate this again for this request
result = new Boolean(deployAttempts != null && deployAttempts.size() > 0);
List<NodeRef> deployAttempts = DeploymentUtil.findDeploymentAttempts(store);
// add a placeholder object in the request so we don't evaluate this again for this request
result = new Boolean(deployAttempts != null && deployAttempts.size() > 0);
}
request.put(REQUEST_BEEN_DEPLOYED_RESULT, result);
}
else

View File

@@ -317,7 +317,7 @@ public abstract class BaseAssociationEditor extends UIInput
String targetType = assocDef.getTargetClass().getName().toString();
boolean allowMany = assocDef.isTargetMany();
populateAssocationMaps((Node)getValue());
populateAssocationMaps((Node)getValue(), nodeService);
if (isDisabled())
{
@@ -655,8 +655,9 @@ public abstract class BaseAssociationEditor extends UIInput
* Populates all the internal Maps with the appropriate association reference objects
*
* @param node The Node we are dealing with
* @param nodeService The NodeService
*/
protected abstract void populateAssocationMaps(Node node);
protected abstract void populateAssocationMaps(Node node, NodeService nodeService);
/**
* Renders the existing associations in a read-only form

View File

@@ -73,10 +73,10 @@ public class UIAssociationEditor extends BaseAssociationEditor
}
/**
* @see org.alfresco.web.ui.repo.component.property.BaseAssociationEditor#populateAssocationMaps(org.alfresco.web.bean.repository.Node)
* @see org.alfresco.web.ui.repo.component.property.BaseAssociationEditor#populateAssocationMaps(org.alfresco.web.bean.repository.Node, org.alfresco.service.cmr.repository.NodeService)
*/
@SuppressWarnings("unchecked")
protected void populateAssocationMaps(Node node)
protected void populateAssocationMaps(Node node, NodeService nodeService)
{
// we need to remember the original set of associations (if there are any)
// and place them in a map keyed by the noderef of the child node
@@ -92,8 +92,11 @@ public class UIAssociationEditor extends BaseAssociationEditor
{
AssociationRef assoc = (AssociationRef)iter.next();
// add the association to the map
this.originalAssocs.put(assoc.getTargetRef().toString(), assoc);
if (nodeService.exists(assoc.getTargetRef()))
{
// add the association to the map
this.originalAssocs.put(assoc.getTargetRef().toString(), assoc);
}
}
}
}

View File

@@ -70,10 +70,10 @@ public class UIChildAssociationEditor extends BaseAssociationEditor
}
/**
* @see org.alfresco.web.ui.repo.component.property.BaseAssociationEditor#populateAssocationMaps(org.alfresco.web.bean.repository.Node)
* @see org.alfresco.web.ui.repo.component.property.BaseAssociationEditor#populateAssocationMaps(org.alfresco.web.bean.repository.Node, org.alfresco.service.cmr.repository.NodeService)
*/
@SuppressWarnings("unchecked")
protected void populateAssocationMaps(Node node)
protected void populateAssocationMaps(Node node, NodeService nodeService)
{
// we need to remember the original set of associations (if there are any)
// and place them in a map keyed by the noderef of the child node