RM-563 (Add group id and title to Capability API and definitions)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@44008 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2012-11-26 20:51:40 +00:00
parent fcd664ffe3
commit 97c5c54bb1
4 changed files with 92 additions and 51 deletions

View File

@@ -4,19 +4,21 @@
<#if groupedCapabilities??> <#if groupedCapabilities??>
"groupedCapabilities": "groupedCapabilities":
[ [
<#assign keys = groupedCapabilities?keys> <#list groupedCapabilities?keys as groupedCapabilityKey>
<#list keys as key>
{ {
"${key}": "${groupedCapabilityKey}":
<#assign capabilitiesMap = groupedCapabilities[key]>
<#assign capabilitiesKeys = capabilitiesMap?keys>
{ {
<#list capabilitiesKeys as capabilitiesKey> <#assign groupedCapability = groupedCapabilities[groupedCapabilityKey]>
"${capabilitiesKey}": "${capabilitiesMap[capabilitiesKey]}" groupTitle: "${groupedCapability.groupTitle}",
<#if capabilitiesKey_has_next>,</#if> capabilities:
</#list> {
<#assign capabilities = groupedCapability.capabilities>
<#list capabilities?keys as capabilityKey>
"${capabilityKey}": "${capabilities[capabilityKey]}"<#if capabilityKey_has_next>,</#if>
</#list>
}
} }
}<#if key_has_next>,</#if> }<#if groupedCapabilityKey_has_next>,</#if>
</#list> </#list>
] ]
<#else> <#else>

View File

@@ -95,12 +95,4 @@ public interface CapabilityService
* @return * @return
*/ */
AccessStatus getCapabilityAccessState(NodeRef nodeRef, String capabilityName); AccessStatus getCapabilityAccessState(NodeRef nodeRef, String capabilityName);
/**
* Gets all the capabilities grouped by their ids. The map key is the group id of a capability and the
* value is another map with the key being the capability name and the value being the capability title
*
* @return Map of capabilities grouped by their ids
*/
Map<String, Map<String, String>> getGroupedCapabilities();
} }

View File

@@ -28,7 +28,6 @@ import java.util.Set;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AccessStatus; import org.alfresco.service.cmr.security.AccessStatus;
import org.alfresco.util.ParameterCheck; import org.alfresco.util.ParameterCheck;
import org.apache.commons.lang.StringUtils;
/** /**
* @author Roy Wetherall * @author Roy Wetherall
@@ -170,35 +169,4 @@ public class CapabilityServiceImpl implements CapabilityService
} }
return result; return result;
} }
/**
* @see org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService#getGroupedCapabilities()
*/
@Override
public Map<String, Map<String, String>> getGroupedCapabilities()
{
Map<String, Map<String, String>> groupedCapabilities = new HashMap<String, Map<String, String>>(capabilities.size());
for (Capability capability : getCapabilities(true))
{
String groupTitle = capability.getGroupTitle();
if (StringUtils.isNotBlank(groupTitle))
{
String capabilityName = capability.getName();
String capabilityTitle = capability.getTitle();
if (groupedCapabilities.containsKey(groupTitle))
{
groupedCapabilities.get(groupTitle).put(capabilityName, capabilityTitle);
}
else
{
Map<String, String> capabilityList = new HashMap<String, String>(13);
capabilityList.put(capabilityName, capabilityTitle);
groupedCapabilities.put(groupTitle, capabilityList);
}
}
}
return groupedCapabilities;
}
} }

View File

@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -96,7 +97,33 @@ public class CapabilitiesGet extends DeclarativeWebScript
Map<String, Object> model = new HashMap<String, Object>(1); Map<String, Object> model = new HashMap<String, Object>(1);
if (grouped == true) if (grouped == true)
{ {
model.put("groupedCapabilities", capabilityService.getGroupedCapabilities()); // Construct the map which is needed to build the model
Map<String, GroupedCapabilities> groupedCapabilitiesMap = new HashMap<String, GroupedCapabilities>(13);
Set<Capability> capabilities = capabilityService.getCapabilities();
for (Capability capability : capabilities)
{
String capabilityGroupTitle = capability.getGroupTitle();
if (StringUtils.isNotBlank(capabilityGroupTitle))
{
String capabilityGroupId = capability.getGroupId();
String capabilityName = capability.getName();
String capabilityTitle = capability.getTitle();
if (groupedCapabilitiesMap.containsKey(capabilityGroupId))
{
groupedCapabilitiesMap.get(capabilityGroupId).addCapability(capabilityName, capabilityTitle);
}
else
{
GroupedCapabilities groupedCapabilities = new GroupedCapabilities(capabilityGroupId, capabilityGroupTitle, capabilityName, capabilityTitle);
groupedCapabilities.addCapability(capabilityName, capabilityTitle);
groupedCapabilitiesMap.put(capabilityGroupId, groupedCapabilities);
}
}
}
model.put("groupedCapabilities", groupedCapabilitiesMap);
} }
else else
{ {
@@ -123,4 +150,56 @@ public class CapabilitiesGet extends DeclarativeWebScript
return model; return model;
} }
/**
* Class to represent grouped capabilities for use in a Freemarker template
*
*/
public class GroupedCapabilities
{
private String capabilityGroupId;
private String capabilityGroupTitle;
private String capabilityName;
private String capabilityTitle;
private Map<String, String> capabilities;
public GroupedCapabilities(String capabilityGroupId, String capabilityGroupTitle, String capabilityName, String capabilityTitle)
{
this.capabilityGroupId = capabilityGroupId;
this.capabilityGroupTitle = capabilityGroupTitle;
this.capabilityName = capabilityName;
this.capabilityTitle = capabilityTitle;
this.capabilities = new HashMap<String, String>(5);
}
public String getGroupId()
{
return this.capabilityGroupId;
}
public String getGroupTitle()
{
return this.capabilityGroupTitle;
}
public String getCapabilityName()
{
return this.capabilityName;
}
public String getCapabilityTitle()
{
return this.capabilityTitle;
}
public Map<String, String> getCapabilities()
{
return this.capabilities;
}
public void addCapability(String capabilityName, String capabilityTitle)
{
this.capabilities.put(capabilityName, capabilityTitle);
}
}
} }