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,28 +50,36 @@
<div class="transferred-item"> <div class="transferred-item">
<#list properties.transferNodes as transferNode> <#list properties.transferNodes as transferNode>
<#if transferNode.properties["isFolder"]> <#if transferNode.properties["isFolder"]>
<span class="nodeName"> <@generateTransferFolderHTML transferNode/>
${transferNode.properties["name"]?html}
</span>
(${message("file.report.unique.folder.identifier")}: ${transferNode.properties["identifier"]?html})
<div class="records">
<#-- FIXME: Records -->
</div>
<#else> <#else>
<div class="record"> <@generateTransferRecordHTML transferNode/>
<span class="nodeName">
${transferNode.properties["name"]?html}
</span>
(${message("file.report.unique.record.identifier")}: ${transferNode.properties["identifier"]?html})
<#if transferNode.properties["isDeclared"]>
${message("file.report.declared.by")}
${transferNode.properties["declaredBy"]?html}
${message("file.report.declared.on")}
${transferNode.properties["declaredOn"]?string(message("file.report.date.format"))?html}
</#if>
</div>
</#if> </#if>
</#list> </#list>
</div> </div>
</body> </body>
</html> </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">
<#list transferNode.properties["records"] as record>
<@generateTransferRecordHTML record/>
</#list>
</div>
</#macro>
<#macro generateTransferRecordHTML transferNode>
<div class="record">
<span class="nodeName">
${transferNode.properties["name"]?html}
</span>
(${message("file.report.unique.record.identifier")}: ${transferNode.properties["identifier"]?html})
<#if transferNode.properties["isDeclared"]>
${message("file.report.declared.by")}
${transferNode.properties["declaredBy"]?html}
${message("file.report.declared.on")}
${transferNode.properties["declaredOn"]?string(message("file.report.date.format"))?html}
</#if>
</div>
</#macro>

View File

@@ -86,28 +86,71 @@ public class TransferReportAction extends BaseReportAction
*/ */
private Map<String, Serializable> getTransferNodeProperties(NodeRef childRef) 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); Map<QName, Serializable> properties = nodeService.getProperties(childRef);
transferNodeProperties.put("name", properties.get(ContentModel.PROP_NAME)); String name = (String) properties.get(ContentModel.PROP_NAME);
transferNodeProperties.put("identifier", properties.get(RecordsManagementModel.PROP_IDENTIFIER)); String identifier = (String) properties.get(RecordsManagementModel.PROP_IDENTIFIER);
boolean isFolder = dictionaryService.isSubClass(nodeService.getType(childRef), ContentModel.TYPE_FOLDER); boolean isFolder = dictionaryService.isSubClass(nodeService.getType(childRef), ContentModel.TYPE_FOLDER);
transferNodeProperties.put("name", name);
transferNodeProperties.put("identifier", identifier);
transferNodeProperties.put("isFolder", isFolder); 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); String declaredBy = (String) properties.get(RecordsManagementModel.PROP_DECLARED_BY);
Date declaredOn = (Date) properties.get(RecordsManagementModel.PROP_DECLARED_AT); 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("declaredBy", declaredBy);
transferNodeProperties.put("declaredOn", declaredOn); transferNodeProperties.put("declaredOn", declaredOn);
transferNodeProperties.put("isDeclared", isDeclared);
} }
return transferNodeProperties; 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 * Gets the disposition authority from the list of the transfer nodes
* *