mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
RM-735 (DOD Recert: Bugs on the "Edit Custom Metadata" page)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/DEV/DODRECERT@50970 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -20,7 +20,7 @@
|
|||||||
<#list prop.constraints as con>
|
<#list prop.constraints as con>
|
||||||
{
|
{
|
||||||
"name": "${con.constraint.shortName!""}",
|
"name": "${con.constraint.shortName!""}",
|
||||||
"title": "${con.title!""}",
|
"title": "${con.constraint.title!""}",
|
||||||
"type": "${con.constraint.type!""}",
|
"type": "${con.constraint.type!""}",
|
||||||
"parameters":
|
"parameters":
|
||||||
{
|
{
|
||||||
|
@@ -22,19 +22,22 @@ import java.io.IOException;
|
|||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.module.org_alfresco_module_rm.CustomMetadataException;
|
import org.alfresco.module.org_alfresco_module_rm.CustomMetadataException;
|
||||||
|
import org.alfresco.module.org_alfresco_module_rm.PropertyAlreadyExistsMetadataException;
|
||||||
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementAdminService;
|
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementAdminService;
|
||||||
|
import org.alfresco.service.cmr.dictionary.ConstraintDefinition;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
import org.json.JSONTokener;
|
||||||
import org.springframework.extensions.surf.util.ParameterCheck;
|
import org.springframework.extensions.surf.util.ParameterCheck;
|
||||||
import org.springframework.extensions.webscripts.Cache;
|
import org.springframework.extensions.webscripts.Cache;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptException;
|
import org.springframework.extensions.webscripts.WebScriptException;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
import org.json.JSONException;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
import org.json.JSONTokener;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation for Java backed webscript to update RM custom property definitions
|
* Implementation for Java backed webscript to update RM custom property definitions
|
||||||
@@ -125,6 +128,7 @@ public class CustomPropertyDefinitionPut extends BaseCustomPropertyWebScript
|
|||||||
protected QName updatePropertyDefinition(Map<String, Serializable> params) throws CustomMetadataException
|
protected QName updatePropertyDefinition(Map<String, Serializable> params) throws CustomMetadataException
|
||||||
{
|
{
|
||||||
QName result = null;
|
QName result = null;
|
||||||
|
boolean updated = false;
|
||||||
|
|
||||||
String propId = (String)params.get(PROP_ID);
|
String propId = (String)params.get(PROP_ID);
|
||||||
ParameterCheck.mandatoryString("propId", propId);
|
ParameterCheck.mandatoryString("propId", propId);
|
||||||
@@ -139,28 +143,54 @@ public class CustomPropertyDefinitionPut extends BaseCustomPropertyWebScript
|
|||||||
if (params.containsKey(PARAM_CONSTRAINT_REF))
|
if (params.containsKey(PARAM_CONSTRAINT_REF))
|
||||||
{
|
{
|
||||||
String constraintRef = (String)params.get(PARAM_CONSTRAINT_REF);
|
String constraintRef = (String)params.get(PARAM_CONSTRAINT_REF);
|
||||||
|
List<ConstraintDefinition> constraints = rmAdminService.getCustomPropertyDefinitions().get(propQName).getConstraints();
|
||||||
|
|
||||||
if (constraintRef == null)
|
if (constraintRef == null)
|
||||||
{
|
{
|
||||||
result = rmAdminService.removeCustomPropertyDefinitionConstraints(propQName);
|
result = rmAdminService.removeCustomPropertyDefinitionConstraints(propQName);
|
||||||
|
updated = constraints.isEmpty() ? false : true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
boolean exists = false;
|
||||||
|
for (ConstraintDefinition constraintDefinition : constraints)
|
||||||
|
{
|
||||||
|
if (constraintDefinition.getConstraint().getShortName().equalsIgnoreCase(constraintRef))
|
||||||
|
{
|
||||||
|
exists = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (exists == false)
|
||||||
{
|
{
|
||||||
QName constraintRefQName = QName.createQName(constraintRef, namespaceService);
|
QName constraintRefQName = QName.createQName(constraintRef, namespaceService);
|
||||||
result = rmAdminService.setCustomPropertyDefinitionConstraint(propQName, constraintRefQName);
|
result = rmAdminService.setCustomPropertyDefinitionConstraint(propQName, constraintRefQName);
|
||||||
|
updated = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.containsKey(PARAM_LABEL))
|
if (params.containsKey(PARAM_LABEL))
|
||||||
{
|
{
|
||||||
String label = (String)params.get(PARAM_LABEL);
|
String label = (String)params.get(PARAM_LABEL);
|
||||||
|
try
|
||||||
|
{
|
||||||
result = rmAdminService.updateCustomPropertyDefinitionName(propQName, label);
|
result = rmAdminService.updateCustomPropertyDefinitionName(propQName, label);
|
||||||
}
|
}
|
||||||
|
catch (PropertyAlreadyExistsMetadataException ex)
|
||||||
|
{
|
||||||
|
if (updated == false)
|
||||||
|
{
|
||||||
|
String propIdAsString = rmAdminService.getQNameForClientId(label).toPrefixString(namespaceService);
|
||||||
|
throw new PropertyAlreadyExistsMetadataException(propIdAsString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("rawtypes")
|
||||||
protected Map<String, Serializable> getParamsFromUrlAndJson(WebScriptRequest req, JSONObject json)
|
protected Map<String, Serializable> getParamsFromUrlAndJson(WebScriptRequest req, JSONObject json)
|
||||||
throws JSONException
|
throws JSONException
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user