RM-1099 (Refactor Transfer and Accession reports)

* Finished off the transfer report template for folders and records

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@58540 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2013-12-03 14:05:25 +00:00
parent cbc2f69012
commit 41fdb5864c
2 changed files with 78 additions and 27 deletions

View File

@@ -50,14 +50,26 @@
<div class="transferred-item">
<#list properties.transferNodes as transferNode>
<#if transferNode.properties["isFolder"]>
<@generateTransferFolderHTML transferNode/>
<#else>
<@generateTransferRecordHTML transferNode/>
</#if>
</#list>
</div>
</body>
</html>
<#macro generateTransferFolderHTML transferNode>
<span class="nodeName">
${transferNode.properties["name"]?html}
</span>
(${message("file.report.unique.folder.identifier")}: ${transferNode.properties["identifier"]?html})
<div class="records">
<#-- FIXME: Records -->
<#list transferNode.properties["records"] as record>
<@generateTransferRecordHTML record/>
</#list>
</div>
<#else>
</#macro>
<#macro generateTransferRecordHTML transferNode>
<div class="record">
<span class="nodeName">
${transferNode.properties["name"]?html}
@@ -70,8 +82,4 @@
${transferNode.properties["declaredOn"]?string(message("file.report.date.format"))?html}
</#if>
</div>
</#if>
</#list>
</div>
</body>
</html>
</#macro>

View File

@@ -86,28 +86,71 @@ public class TransferReportAction extends BaseReportAction
*/
private Map<String, Serializable> getTransferNodeProperties(NodeRef childRef)
{
Map<String, Serializable> transferNodeProperties = new HashMap<String, Serializable>(3);
Map<String, Serializable> transferNodeProperties = new HashMap<String, Serializable>(6);
Map<QName, Serializable> properties = nodeService.getProperties(childRef);
transferNodeProperties.put("name", properties.get(ContentModel.PROP_NAME));
transferNodeProperties.put("identifier", properties.get(RecordsManagementModel.PROP_IDENTIFIER));
String name = (String) properties.get(ContentModel.PROP_NAME);
String identifier = (String) properties.get(RecordsManagementModel.PROP_IDENTIFIER);
boolean isFolder = dictionaryService.isSubClass(nodeService.getType(childRef), ContentModel.TYPE_FOLDER);
transferNodeProperties.put("name", name);
transferNodeProperties.put("identifier", identifier);
transferNodeProperties.put("isFolder", isFolder);
if (isFolder == false)
if (isFolder == true)
{
transferNodeProperties.put("records", (ArrayList<TransferNode>) getRecords(childRef));
}
else
{
boolean isDeclared = nodeService.hasAspect(childRef, RecordsManagementModel.ASPECT_DECLARED_RECORD);
String declaredBy = (String) properties.get(RecordsManagementModel.PROP_DECLARED_BY);
Date declaredOn = (Date) properties.get(RecordsManagementModel.PROP_DECLARED_AT);
transferNodeProperties.put("isDeclared", isDeclared);
boolean isDeclared = nodeService.hasAspect(childRef, RecordsManagementModel.ASPECT_DECLARED_RECORD);
transferNodeProperties.put("declaredBy", declaredBy);
transferNodeProperties.put("declaredOn", declaredOn);
transferNodeProperties.put("isDeclared", isDeclared);
}
return transferNodeProperties;
}
/**
* Helper method to get the list of records (with their properties) within a folder
*
* @param childRef Node reference of the folder
* @return List of records within the specified folder
*/
private List<TransferNode> getRecords(NodeRef childRef)
{
List<TransferNode> records = new ArrayList<TransferNode>(4);
List<ChildAssociationRef> assocs = nodeService.getChildAssocs(childRef, ContentModel.ASSOC_CONTAINS, RegexQNamePattern.MATCH_ALL);
for (ChildAssociationRef child : assocs)
{
NodeRef record = child.getChildRef();
if (nodeService.hasAspect(record, RecordsManagementModel.ASPECT_RECORD))
{
Map<String, Serializable> transferNodeProperties = new HashMap<String, Serializable>(6);
Map<QName, Serializable> properties = nodeService.getProperties(record);
String name = (String) properties.get(ContentModel.PROP_NAME);
String identifier = (String) properties.get(RecordsManagementModel.PROP_IDENTIFIER);
String declaredBy = (String) properties.get(RecordsManagementModel.PROP_DECLARED_BY);
Date declaredOn = (Date) properties.get(RecordsManagementModel.PROP_DECLARED_AT);
boolean isDeclared = nodeService.hasAspect(record, RecordsManagementModel.ASPECT_DECLARED_RECORD);
transferNodeProperties.put("name", name);
transferNodeProperties.put("identifier", identifier);
transferNodeProperties.put("declaredBy", declaredBy);
transferNodeProperties.put("declaredOn", declaredOn);
transferNodeProperties.put("isDeclared", isDeclared);
records.add(new TransferNode(record, transferNodeProperties));
}
}
return records;
}
/**
* Gets the disposition authority from the list of the transfer nodes
*