-
-
+
-
- #if>
-
-
-
+
+ #if>
+
-
+
|
-
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/report/report_rmr_transferReport.html.ftl b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/report/report_rmr_transferReport.html.ftl
new file mode 100644
index 0000000000..b9d8e99e82
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/bootstrap/report/report_rmr_transferReport.html.ftl
@@ -0,0 +1,72 @@
+
+
+ <#assign isAccession=node.property["rma:transferAccessionIndicator"]>
+
+ <#if isAccession>
+ <#-- FIXME: Label -->
+
Transfer Report
+ <#else>
+ <#-- FIXME: Label -->
+
Transfer Report
+ #if>
+
+
+
+ <#if isAccession>
+ <#-- FIXME: Label -->
+
Accession Report
+ <#else>
+ <#-- FIXME: Label -->
+
Transfer Report
+ #if>
+
+
+ <#-- FIXME: Label -->
+ Transfer Date: |
+ <#-- FIXME: Escape, toString -->
+ ${node.property["cm:created"]} |
+
+
+ <#-- FIXME: Label -->
+ Transfer Location: |
+
+ <#if isAccession>
+ <#-- FIXME: Label -->
+ NARA
+ <#else>
+ <#-- FIXME: String, Escape -->
+ ${node.property["rma:transferLocation"]}
+ #if>
+ |
+
+
+ <#-- FIXME: Label -->
+ Performed By: |
+ <#-- FIXME: String, Escape -->
+ ${node.property["cm:creator"]} |
+
+
+ <#-- FIXME: Label -->
+ Disposition Authority: |
+ <#-- FIXME: Disposition Authority - Check, escape -->
+ |
+
+
+ <#-- FIXME: Label -->
+
Transferred Items
+
+ <#--
+
folder (Unique Folder Identifier: 2013-1385393610833)
+
+
+ -->
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service.properties
index 9af4b56137..56eec14f5d 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service.properties
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/report-service.properties
@@ -1,2 +1,2 @@
report.rmr_destructionReport.name=Destruction Report (${node.rma:identifier} ${node.cm:name}).html
-
+report.rmr_transferReport.name=Transfer Report (${node.rma:identifier} ${node.cm:name}).html
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/reportModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/reportModel.xml
index eb44c18010..52c1f408f9 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/reportModel.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/reportModel.xml
@@ -5,42 +5,43 @@
-
- Records Management Report Model
- Roy Wetherall
- 1.0
+
+ Records Management Report Model
+ Roy Wetherall
+ 1.0
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
- Report
- cm:content
-
-
-
- Report
- rmr:report
-
-
-
+
+
+ Report
+ cm:content
+
+
+ Report
+ rmr:report
+
+
+ Transfer
+ rmr:report
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-report-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-report-context.xml
index 7b67033195..1a8269e9f9 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-report-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-report-context.xml
@@ -3,9 +3,9 @@
-
-
-
+
+
+
alfresco/module/org_alfresco_module_rm/model/reportModel.xml
@@ -16,78 +16,82 @@
alfresco/module/org_alfresco_module_rm/messages/report-model
-
-
-
-
-
-
-
- alfresco.module.org_alfresco_module_rm.messages.report-service
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ alfresco.module.org_alfresco_module_rm.messages.report-service
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -110,12 +114,43 @@
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.execute=RM_ALLOW
+ org.alfresco.module.org_alfresco_module_rm.action.RecordsManagementAction.*=RM_ALLOW
+ org.alfresco.repo.action.executer.ActionExecuter.*=RM_ALLOW
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/ReportModel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/ReportModel.java
index 07a1134d3b..9124058745 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/ReportModel.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/ReportModel.java
@@ -25,12 +25,13 @@ import org.alfresco.service.namespace.QName;
*
* @author Roy Wetherall
*/
-public interface ReportModel
+public interface ReportModel
{
- // Namespace details
- public static final String RMR_URI = "http://www.alfresco.org/model/recordsmanagementreport/1.0";
- public static final String RMR_PREFIX = "rmr";
-
- public static final QName TYPE_REPORT = QName.createQName(RMR_URI, "report");
- public static final QName TYPE_DESTRUCTION_REPORT = QName.createQName(RMR_URI, "destructionReport");
+ // Namespace details
+ public static final String RMR_URI = "http://www.alfresco.org/model/recordsmanagementreport/1.0";
+ public static final String RMR_PREFIX = "rmr";
+
+ public static final QName TYPE_REPORT = QName.createQName(RMR_URI, "report");
+ public static final QName TYPE_DESTRUCTION_REPORT = QName.createQName(RMR_URI, "destructionReport");
+ public static final QName TYPE_TRANSFER_REPORT = QName.createQName(RMR_URI, "transferReport");
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/action/FileTransferAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/action/FileTransferAction.java
new file mode 100644
index 0000000000..8a68bce7c0
--- /dev/null
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/report/action/FileTransferAction.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2005-2013 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see
.
+ */
+package org.alfresco.module.org_alfresco_module_rm.report.action;
+
+import org.alfresco.error.AlfrescoRuntimeException;
+import org.alfresco.module.org_alfresco_module_rm.action.RMActionExecuterAbstractBase;
+import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
+import org.alfresco.module.org_alfresco_module_rm.report.Report;
+import org.alfresco.module.org_alfresco_module_rm.report.ReportModel;
+import org.alfresco.module.org_alfresco_module_rm.report.ReportService;
+import org.alfresco.service.cmr.action.Action;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.namespace.QName;
+import org.alfresco.util.ParameterCheck;
+
+/**
+ * FIXME!!!
+ *
+ * @author Tuna Aksoy
+ * @since 2.2
+ */
+public class FileTransferAction extends RMActionExecuterAbstractBase implements ReportModel
+{
+ /** report service */
+ protected ReportService reportService;
+
+ /** file plan service */
+ protected FilePlanService filePlanService;
+
+ /** report type string value */
+ private String reportType;
+
+ /**
+ * @param reportService report service
+ */
+ public void setReportService(ReportService reportService)
+ {
+ this.reportService = reportService;
+ }
+
+ /**
+ * @param filePlanService file plan service
+ */
+ public void setFilePlanService(FilePlanService filePlanService)
+ {
+ this.filePlanService = filePlanService;
+ }
+
+ /**
+ * @param reportType report type string value
+ */
+ public void setReportType(String reportType)
+ {
+ this.reportType = reportType;
+ }
+
+ /**
+ * @return QName report type
+ */
+ protected QName getReportType()
+ {
+ ParameterCheck.mandatory("this.reportType", reportType);
+ return QName.createQName(reportType, namespaceService);
+ }
+
+ /**
+ * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
+ */
+ @Override
+ protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
+ {
+ // TODO check that the actionedUponNodeRef is in a state to generate a destruction report
+ // ie: is it eligable for destruction .. use fileDestructionReport capability!
+
+ // TODO allow the mimetype of the report to be specified as a parameter
+
+ NodeRef filePlan = filePlanService.getFilePlan(actionedUponNodeRef);
+ if (filePlan == null)
+ {
+ throw new AlfrescoRuntimeException("Unable to file destruction report, because file plan could not be resolved.");
+ }
+
+ Report report = reportService.generateReport(getReportType(), actionedUponNodeRef);
+ reportService.fileReport(filePlan, report);
+ }
+}