diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml
index c1e03ffe59..68d40cedff 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-freeze-context.xml
@@ -53,4 +53,23 @@
+
+
+
+
+
+ HOLD
+ HOLD_CONTAINER_CHILD
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties
index 0900e8a80a..e56b72bcee 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/messages/capability-service.properties
@@ -62,6 +62,7 @@ capability.group.holdControls.title=Hold Controls
capability.ExtendRetentionPeriodOrFreeze.title=Extend Retention Period or Freeze
capability.Unfreeze.title=Unfreeze
capability.ViewUpdateReasonsForFreeze.title=View Update Reasons for Freeze
+capability.CreateHold.title=Create Hold
# Audit
capability.group.audit.title=Audit
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml
index 951abbd776..e87e5d81d2 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml
@@ -102,13 +102,18 @@
- Hold Container
+ Hold Container
rma:recordsManagementContainer
rma:countable
-
+
+
+ Hold Container Child
+ rma:recordsManagementContainer
+
+
Transfer Container
rma:recordsManagementContainer
@@ -738,7 +743,7 @@
Original Name
d:text
true
-
+
@@ -751,7 +756,7 @@
-
+
@@ -1139,7 +1144,7 @@
-
+
Countable aspect
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml
index d8837a25e7..92345a652e 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/model/recordsPermissionModel.xml
@@ -89,6 +89,7 @@
+
@@ -171,6 +172,7 @@
+
@@ -448,6 +450,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml
index 657ef77e6f..ded4df5ea0 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-ui-evaluators-context.xml
@@ -782,4 +782,15 @@
+
+
+
+
+ HOLD
+ HOLD_CONTAINER_CHILD
+
+
+
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json b/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json
index 63bdbfce25..276df24eec 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/security/rm-default-roles-bootstrap.json
@@ -138,7 +138,8 @@
"FileUnfiledRecords",
"RejectRecords",
"LinkToRecords",
- "FileTransferReport"
+ "FileTransferReport",
+ "CreateHold"
]
},
{
@@ -205,8 +206,8 @@
"FileUnfiledRecords",
"RejectRecords",
"LinkToRecords",
- "FileTransferReport"
+ "FileTransferReport",
+ "CreateHold"
]
}
-]
-
+]
\ No newline at end of file
diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary-v2/rm-filters.lib.js b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary-v2/rm-filters.lib.js
index e43b5a60bc..20815fa64f 100644
--- a/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary-v2/rm-filters.lib.js
+++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary-v2/rm-filters.lib.js
@@ -153,6 +153,7 @@ Filters.getFilterParams = function RecordsManagementFilter_getFilterParams(filte
case "transfers":
case "holds":
+ filterParams.variablePath = false;
if (filterData == null)
{
filterParams.query = "";
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanComponentKind.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanComponentKind.java
index 2edfad0d4b..acdf9a3136 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanComponentKind.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanComponentKind.java
@@ -23,18 +23,19 @@ package org.alfresco.module.org_alfresco_module_rm.fileplan;
*
* Helpful when trying to determine the characteristics of a kind
* of file plan component.
- *
+ *
* @author Roy Wetherall
*/
public enum FilePlanComponentKind
{
- FILE_PLAN_COMPONENT,
- FILE_PLAN,
- RECORD_CATEGORY,
- RECORD_FOLDER,
- RECORD,
- TRANSFER,
- HOLD,
+ FILE_PLAN_COMPONENT,
+ FILE_PLAN,
+ RECORD_CATEGORY,
+ RECORD_FOLDER,
+ RECORD,
+ TRANSFER,
+ HOLD,
+ HOLD_CONTAINER_CHILD,
DISPOSITION_SCHEDULE,
UNFILED_RECORD_CONTAINER,
UNFILED_RECORD_CONTAINER_CHILD;
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java
index f2a6a68e25..6d3b16d27b 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java
@@ -218,6 +218,10 @@ public class FilePlanServiceImpl extends ServiceBaseImpl
{
result = FilePlanComponentKind.HOLD;
}
+ else if (instanceOf(nodeRef, TYPE_HOLD_CONTAINER_CHILD))
+ {
+ result = FilePlanComponentKind.HOLD_CONTAINER_CHILD;
+ }
else if (getTransferService().isTransfer(nodeRef) == true)
{
result = FilePlanComponentKind.TRANSFER;
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java
index 9c0a295373..94ab8458c9 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/jscript/app/JSONConversionComponent.java
@@ -260,6 +260,11 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JSONC
result = "hold-container";
break;
}
+ case HOLD_CONTAINER_CHILD:
+ {
+ result = "hold-container-child";
+ break;
+ }
case TRANSFER:
{
result = "transfer-container";
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java
index 2f161b12a3..296ee54637 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java
@@ -65,7 +65,8 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel
// Hold container
public static final QName TYPE_HOLD_CONTAINER = QName.createQName(RM_URI, "holdContainer");
-
+ public static final QName TYPE_HOLD_CONTAINER_CHILD = QName.createQName(RM_URI, "holdContainerChild");
+
// Transfer container
public static final QName TYPE_TRANSFER_CONTAINER = QName.createQName(RM_URI, "transferContainer");
@@ -255,9 +256,9 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel
public static final QName PROP_RECORD_REJECTION_USER_ID = QName.createQName(RM_URI, "recordRejectionUserId");
public static final QName PROP_RECORD_REJECTION_DATE = QName.createQName(RM_URI, "recordRejectionDate");
public static final QName PROP_RECORD_REJECTION_REASON = QName.createQName(RM_URI, "recordRejectionReason");
-
+
// Countable aspect
public static final QName ASPECT_COUNTABLE = QName.createQName(RM_URI, "countable");
public static final QName PROP_COUNT = QName.createQName(RM_URI, "count");
-
+
}
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v22/RMv22CapabilityPatch.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v22/RMv22CapabilityPatch.java
index 73199bcb9d..00f47a7865 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v22/RMv22CapabilityPatch.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/patch/v22/RMv22CapabilityPatch.java
@@ -37,7 +37,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
*/
public class RMv22CapabilityPatch extends AbstractModulePatch
{
-
+
/** File plan service */
private FilePlanService filePlanService;
@@ -119,7 +119,7 @@ public class RMv22CapabilityPatch extends AbstractModulePatch
}
}
}
-
+
/**
* @see org.alfresco.module.org_alfresco_module_rm.patch.AbstractModulePatch#applyInternal()
*/
@@ -145,6 +145,10 @@ public class RMv22CapabilityPatch extends AbstractModulePatch
"FileDestructionReport",
FilePlanRoleService.ROLE_ADMIN,
FilePlanRoleService.ROLE_RECORDS_MANAGER);
+ addCapability(filePlan,
+ "CreateHold",
+ FilePlanRoleService.ROLE_ADMIN,
+ FilePlanRoleService.ROLE_RECORDS_MANAGER);
}
}
}