diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml index 5a4e3964eb..bbd0ea6863 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-recordfolder-context.xml @@ -33,6 +33,7 @@ RECORD_CATEGORY RECORD_FOLDER UNFILED_RECORD_CONTAINER + UNFILED_RECORD_CONTAINER_CHILD 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 21c6b126e4..cfac18e9db 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 @@ -95,7 +95,12 @@ Unfiled Record Container rma:recordsManagementContainer - + + + Unfiled Record Container Child + rma:recordsManagementContainer + + Hold Container rma:recordsManagementContainer 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 9f59ba76d3..657ef77e6f 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 @@ -217,6 +217,7 @@ RECORD_CATEGORY RECORD_FOLDER RECORD + UNFILED_RECORD_CONTAINER_CHILD @@ -331,6 +332,7 @@ RECORD_CATEGORY RECORD_FOLDER RECORD + UNFILED_RECORD_CONTAINER_CHILD @@ -345,6 +347,7 @@ RECORD_CATEGORY RECORD_FOLDER UNFILED_RECORD_CONTAINER + UNFILED_RECORD_CONTAINER_CHILD 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 76629e21ad..2edfad0d4b 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 @@ -36,5 +36,6 @@ public enum FilePlanComponentKind TRANSFER, HOLD, DISPOSITION_SCHEDULE, - UNFILED_RECORD_CONTAINER; + 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 0c39199086..134afccbea 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 @@ -230,6 +230,10 @@ public class FilePlanServiceImpl extends ServiceBaseImpl { result = FilePlanComponentKind.UNFILED_RECORD_CONTAINER; } + else if (instanceOf(nodeRef, TYPE_UNFILED_RECORD_CONTAINER_CHILD) == true) + { + result = FilePlanComponentKind.UNFILED_RECORD_CONTAINER_CHILD; + } } return result; 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 c58f983423..9c0a295373 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 @@ -27,7 +27,6 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanComponentKind import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.service.cmr.model.FileInfo; -import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.security.AccessStatus; import org.alfresco.service.namespace.QName; @@ -156,9 +155,6 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JSONC rmNodeValues.put("type", useShortQName ? type.toPrefixString(namespaceService) : type.toString()); } - // Find out if it is an unfiled record container child - rmNodeValues.put("isUnfileRecordContainerChild", isUnfileRecordContainerChild(nodeRef)); - // Set the indicators array setIndicators(rmNodeValues, nodeRef); @@ -168,25 +164,6 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JSONC return rmNodeValues; } - private boolean isUnfileRecordContainerChild(NodeRef nodeRef) - { - boolean isUnfileRecordContainerChild = false; - - List parentAssocs = nodeService.getParentAssocs(nodeRef); - if (parentAssocs.size() == 1) - { - NodeRef parentNodeRef = parentAssocs.iterator().next().getParentRef(); - FilePlanComponentKind filePlanComponentKind = filePlanService.getFilePlanComponentKind(parentNodeRef); - - if (filePlanComponentKind != null && filePlanComponentKind.equals(FilePlanComponentKind.RECORD_CATEGORY) == false) - { - isUnfileRecordContainerChild = true; - } - } - - return isUnfileRecordContainerChild; - } - @SuppressWarnings("unchecked") private void setIndicators(JSONObject rmNodeValues, NodeRef nodeRef) { @@ -288,6 +265,11 @@ public class JSONConversionComponent extends org.alfresco.repo.jscript.app.JSONC result = "transfer-container"; break; } + case UNFILED_RECORD_CONTAINER_CHILD: + { + result = "unfiled-record-container-child"; + break; + } default: { break; 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 44e39bea27..2f161b12a3 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 @@ -59,7 +59,10 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel // Unfiled record container public static final QName TYPE_UNFILED_RECORD_CONTAINER = QName.createQName(RM_URI, "unfiledRecordContainer"); - + + // Unfiled record container child + public static final QName TYPE_UNFILED_RECORD_CONTAINER_CHILD = QName.createQName(RM_URI, "unfiledRecordContainerChild"); + // Hold container public static final QName TYPE_HOLD_CONTAINER = QName.createQName(RM_URI, "holdContainer"); diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java index 49e4a4699d..4971eae6b7 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java @@ -119,8 +119,8 @@ public class RecordsManagementContainerType extends BaseBehaviourBean NodeRef parentRef = childAssocRef.getParentRef(); QName parentType = nodeService.getType(parentRef); boolean isContentSubType = dictionaryService.isSubClass(childType, ContentModel.TYPE_CONTENT); - boolean isUnfiledRecordContainerSubType = dictionaryService.isSubClass(parentType, RecordsManagementModel.TYPE_UNFILED_RECORD_CONTAINER); - if (isContentSubType == true && isUnfiledRecordContainerSubType == true) + boolean isUnfiledRecordContainerChild = parentType.equals(RecordsManagementModel.TYPE_UNFILED_RECORD_CONTAINER_CHILD); + if (isContentSubType == true && isUnfiledRecordContainerChild == true) { if (nodeService.hasAspect(child, ASPECT_FILE_PLAN_COMPONENT) == false) {