mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
REPO-210 : Review requirement to support isFavorite as an optional top level property.
This commit is contained in:
@@ -130,6 +130,7 @@ import org.alfresco.service.cmr.model.FileExistsException;
|
||||
import org.alfresco.service.cmr.model.FileFolderService;
|
||||
import org.alfresco.service.cmr.model.FileInfo;
|
||||
import org.alfresco.service.cmr.model.FileNotFoundException;
|
||||
import org.alfresco.service.cmr.preference.PreferenceService;
|
||||
import org.alfresco.service.cmr.repository.AssociationExistsException;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ContentData;
|
||||
@@ -808,7 +809,15 @@ public class NodesImpl implements Nodes
|
||||
String path = parameters.getParameter(PARAM_RELATIVE_PATH);
|
||||
NodeRef nodeRef = validateOrLookupNode(nodeId, path);
|
||||
|
||||
return getFolderOrDocumentFullInfo(nodeRef, null, null, parameters);
|
||||
Node node = getFolderOrDocumentFullInfo(nodeRef, null, null, parameters);
|
||||
|
||||
// calculate if node is a favorite node for the current user
|
||||
List<Node> currentList = new ArrayList<Node>(1);
|
||||
currentList.add(node);
|
||||
isFavorite(currentList);
|
||||
|
||||
return node;
|
||||
|
||||
}
|
||||
|
||||
private Node getFolderOrDocumentFullInfo(NodeRef nodeRef, NodeRef parentNodeRef, QName nodeTypeQName, Parameters parameters)
|
||||
@@ -1369,6 +1378,8 @@ public class NodesImpl implements Nodes
|
||||
sourceEntity = getFolderOrDocumentFullInfo(parentNodeRef, null, null, null, mapUserInfo);
|
||||
}
|
||||
|
||||
isFavorite(nodes);
|
||||
|
||||
return CollectionWithPagingInfo.asPaged(paging, nodes, pagingResults.hasMoreItems(), pagingResults.getTotalResultCount().getFirst(), sourceEntity);
|
||||
}
|
||||
|
||||
@@ -3338,6 +3349,56 @@ public class NodesImpl implements Nodes
|
||||
}
|
||||
return duplicate;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param nodes
|
||||
*/
|
||||
private void isFavorite(List<Node> nodes)
|
||||
{
|
||||
PreferenceService preferenceService = (PreferenceService) sr.getService(ServiceRegistry.PREFERENCE_SERVICE);
|
||||
String currentUserName = AuthenticationUtil.getFullyAuthenticatedUser();
|
||||
Map<String, Serializable> preferences = preferenceService.getPreferences(currentUserName);
|
||||
Set<NodeRef> preferencesSet = new HashSet<>();
|
||||
|
||||
for (Serializable nodesFavorites : preferences.values())
|
||||
{
|
||||
StringTokenizer st = new StringTokenizer((String) nodesFavorites, ",");
|
||||
while (st.hasMoreTokens())
|
||||
{
|
||||
String nodeRefStr = st.nextToken();
|
||||
nodeRefStr = nodeRefStr.trim();
|
||||
|
||||
if (!NodeRef.isNodeRef((String) nodeRefStr))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
NodeRef nodeRef = new NodeRef((String) nodeRefStr);
|
||||
|
||||
if (nodeService.exists(nodeRef))
|
||||
{
|
||||
|
||||
preferencesSet.add(nodeRef);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!preferencesSet.isEmpty())
|
||||
{
|
||||
for (Node node : nodes)
|
||||
{
|
||||
if (preferencesSet.contains(node.getNodeRef()))
|
||||
{
|
||||
node.setFavorite(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @author Jamal Kaabi-Mofrad
|
||||
|
@@ -99,6 +99,7 @@ public class Node implements Comparable<Node>
|
||||
//optional SearchEntry (only ever returned from a search)
|
||||
protected SearchEntry search = null;
|
||||
protected String location;
|
||||
private Boolean favorite;
|
||||
|
||||
public Node(NodeRef nodeRef, NodeRef parentNodeRef, Map<QName, Serializable> nodeProps, Map<String, UserInfo> mapUserInfo, ServiceRegistry sr)
|
||||
{
|
||||
@@ -331,6 +332,16 @@ public class Node implements Comparable<Node>
|
||||
{
|
||||
this.isLocked = isLocked;
|
||||
}
|
||||
|
||||
public Boolean getFavorite()
|
||||
{
|
||||
return favorite;
|
||||
}
|
||||
|
||||
public void setFavorite(Boolean favorite)
|
||||
{
|
||||
this.favorite = favorite;
|
||||
}
|
||||
|
||||
public List<String> getAllowableOperations()
|
||||
{
|
||||
|
Reference in New Issue
Block a user