mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
SHA-1867 : Unable to create links in Shared Files / My Files root node from the Search Results page
- Added method WebScriptUtil.resolveNodeReference() which will resolve nodeRef git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@132544 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -34,8 +34,13 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.alfresco.repo.nodelocator.CompanyHomeNodeLocator;
|
||||
import org.alfresco.repo.nodelocator.NodeLocatorService;
|
||||
import org.alfresco.repo.nodelocator.SharedHomeNodeLocator;
|
||||
import org.alfresco.repo.nodelocator.SitesHomeNodeLocator;
|
||||
import org.alfresco.repo.nodelocator.UserHomeNodeLocator;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.util.ISO8601DateFormat;
|
||||
import org.json.JSONObject;
|
||||
@@ -149,6 +154,31 @@ public class WebScriptUtil
|
||||
}
|
||||
return new NodeRef(protocol, storeId, nodeId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static NodeRef resolveNodeReference(String reference, NodeLocatorService nodeLocatorService)
|
||||
{
|
||||
NodeRef nodeRef = null;
|
||||
switch (reference)
|
||||
{
|
||||
case "alfresco://company/home":
|
||||
nodeRef = nodeLocatorService.getNode(CompanyHomeNodeLocator.NAME, null, null);
|
||||
break;
|
||||
case "alfresco://user/home":
|
||||
nodeRef = nodeLocatorService.getNode(UserHomeNodeLocator.NAME, null, null);
|
||||
break;
|
||||
case "alfresco://company/shared":
|
||||
nodeRef = nodeLocatorService.getNode(SharedHomeNodeLocator.NAME, null, null);
|
||||
break;
|
||||
case "alfresco://sites/home":
|
||||
nodeRef = nodeLocatorService.getNode(SitesHomeNodeLocator.NAME, null, null);
|
||||
break;
|
||||
default:
|
||||
nodeRef = new NodeRef(reference);
|
||||
break;
|
||||
}
|
||||
|
||||
return nodeRef;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -30,9 +30,8 @@ import java.util.Map;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.web.scripts.links.AbstractLinksWebScript;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.activities.ActivityService;
|
||||
import org.alfresco.service.cmr.links.LinkInfo;
|
||||
import org.alfresco.service.cmr.repository.DocumentLinkService;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
@@ -42,12 +41,9 @@ import org.alfresco.util.ParameterCheck;
|
||||
import org.alfresco.util.PropertyCheck;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.json.JSONStringer;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptException;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
import org.springframework.extensions.webscripts.json.JSONWriter;
|
||||
|
||||
/**
|
||||
@@ -71,6 +67,7 @@ public abstract class AbstractDocLink extends DeclarativeWebScript
|
||||
protected SiteService siteService;
|
||||
protected DocumentLinkService documentLinkService;
|
||||
protected ActivityService activityService;
|
||||
protected ServiceRegistry serviceRegistry;
|
||||
|
||||
private static Log logger = LogFactory.getLog(AbstractDocLink.class);
|
||||
|
||||
@@ -190,4 +187,10 @@ public abstract class AbstractDocLink extends DeclarativeWebScript
|
||||
{
|
||||
this.activityService = activityService;
|
||||
}
|
||||
|
||||
public void setServiceRegistry(ServiceRegistry serviceRegistry)
|
||||
{
|
||||
this.serviceRegistry = serviceRegistry;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -36,6 +36,7 @@ import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.activities.ActivityType;
|
||||
import org.alfresco.repo.content.MimetypeMap;
|
||||
import org.alfresco.repo.security.permissions.AccessDeniedException;
|
||||
import org.alfresco.repo.web.scripts.WebScriptUtil;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.json.simple.JSONArray;
|
||||
@@ -99,7 +100,7 @@ public class DocLinkPost extends AbstractDocLink
|
||||
/* Parse the destination NodeRef parameter */
|
||||
String destinationNodeParam = (String) json.get(PARAM_DESTINATION_NODE);
|
||||
ParameterCheck.mandatoryString("destinationNodeParam", destinationNodeParam);
|
||||
destinationNodeRef = new NodeRef(destinationNodeParam);
|
||||
destinationNodeRef = WebScriptUtil.resolveNodeReference(destinationNodeParam, serviceRegistry.getNodeLocatorService());
|
||||
|
||||
List<NodeRef> nodeRefs = new ArrayList<NodeRef>();
|
||||
if (json.containsKey(PARAM_MULTIPLE_FILES))
|
||||
|
Reference in New Issue
Block a user