mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Fixed persistence of boolean properties, checkbox control was not sending false when unchecked and sending 'on' as value when selected
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14335 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -77,6 +77,7 @@ public class NodeHandler extends AbstractHandler
|
|||||||
{
|
{
|
||||||
private static final Log logger = LogFactory.getLog(NodeHandler.class);
|
private static final Log logger = LogFactory.getLog(NodeHandler.class);
|
||||||
|
|
||||||
|
protected static final String ON = "on";
|
||||||
protected static final String PROP = "prop";
|
protected static final String PROP = "prop";
|
||||||
protected static final String ASSOC = "assoc";
|
protected static final String ASSOC = "assoc";
|
||||||
protected static final String DATA_KEY_SEPARATOR = "_";
|
protected static final String DATA_KEY_SEPARATOR = "_";
|
||||||
@@ -912,6 +913,14 @@ public class NodeHandler extends AbstractHandler
|
|||||||
// persist the List
|
// persist the List
|
||||||
value = list;
|
value = list;
|
||||||
}
|
}
|
||||||
|
else if (propDef.getDataType().getName().equals(DataTypeDefinition.BOOLEAN))
|
||||||
|
{
|
||||||
|
// check for browser representation of true, that being "on"
|
||||||
|
if (value instanceof String && ON.equals(value))
|
||||||
|
{
|
||||||
|
value = Boolean.TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (propDef.getDataType().getName().equals(DataTypeDefinition.LOCALE))
|
else if (propDef.getDataType().getName().equals(DataTypeDefinition.LOCALE))
|
||||||
{
|
{
|
||||||
value = I18NUtil.parseLocale((String)value);
|
value = I18NUtil.parseLocale((String)value);
|
||||||
@@ -1003,32 +1012,50 @@ public class NodeHandler extends AbstractHandler
|
|||||||
// with the current node.
|
// with the current node.
|
||||||
for (String nextTargetNode : nodeRefs)
|
for (String nextTargetNode : nodeRefs)
|
||||||
{
|
{
|
||||||
if (NodeRef.isNodeRef(nextTargetNode))
|
if (nextTargetNode.length() > 0)
|
||||||
{
|
{
|
||||||
if (assocSuffix.equals(ASSOC_DATA_ADDED_SUFFIX))
|
if (NodeRef.isNodeRef(nextTargetNode))
|
||||||
{
|
{
|
||||||
if (assocDef.isChild())
|
if (assocSuffix.equals(ASSOC_DATA_ADDED_SUFFIX))
|
||||||
{
|
{
|
||||||
assocCommands.add(new AddChildAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
if (assocDef.isChild())
|
||||||
fullQNameFromJSON));
|
{
|
||||||
|
assocCommands.add(new AddChildAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
||||||
|
fullQNameFromJSON));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assocCommands.add(new AddAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
||||||
|
fullQNameFromJSON));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (assocSuffix.equals(ASSOC_DATA_REMOVED_SUFFIX))
|
||||||
|
{
|
||||||
|
if (assocDef.isChild())
|
||||||
|
{
|
||||||
|
assocCommands.add(new RemoveChildAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
||||||
|
fullQNameFromJSON));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
assocCommands.add(new RemoveAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
||||||
|
fullQNameFromJSON));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
assocCommands.add(new AddAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
if (logger.isWarnEnabled())
|
||||||
fullQNameFromJSON));
|
{
|
||||||
}
|
StringBuilder msg = new StringBuilder();
|
||||||
}
|
msg.append("fieldName ")
|
||||||
else if (assocSuffix.equals(ASSOC_DATA_REMOVED_SUFFIX))
|
.append(fieldName)
|
||||||
{
|
.append(" does not have one of the expected suffixes [")
|
||||||
if (assocDef.isChild())
|
.append(ASSOC_DATA_ADDED_SUFFIX)
|
||||||
{
|
.append(", ")
|
||||||
assocCommands.add(new RemoveChildAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
.append(ASSOC_DATA_REMOVED_SUFFIX)
|
||||||
fullQNameFromJSON));
|
.append("] and has been ignored.");
|
||||||
}
|
logger.warn(msg.toString());
|
||||||
else
|
}
|
||||||
{
|
|
||||||
assocCommands.add(new RemoveAssocCommand(nodeRef, new NodeRef(nextTargetNode),
|
|
||||||
fullQNameFromJSON));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1036,28 +1063,13 @@ public class NodeHandler extends AbstractHandler
|
|||||||
if (logger.isWarnEnabled())
|
if (logger.isWarnEnabled())
|
||||||
{
|
{
|
||||||
StringBuilder msg = new StringBuilder();
|
StringBuilder msg = new StringBuilder();
|
||||||
msg.append("fieldName ")
|
msg.append("targetNode ")
|
||||||
.append(fieldName)
|
.append(nextTargetNode)
|
||||||
.append(" does not have one of the expected suffixes [")
|
.append(" is not a valid NodeRef and has been ignored.");
|
||||||
.append(ASSOC_DATA_ADDED_SUFFIX)
|
|
||||||
.append(", ")
|
|
||||||
.append(ASSOC_DATA_REMOVED_SUFFIX)
|
|
||||||
.append("] and has been ignored.");
|
|
||||||
logger.warn(msg.toString());
|
logger.warn(msg.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (logger.isWarnEnabled())
|
|
||||||
{
|
|
||||||
StringBuilder msg = new StringBuilder();
|
|
||||||
msg.append("targetNode ")
|
|
||||||
.append(nextTargetNode)
|
|
||||||
.append(" is not a valid NodeRef and has been ignored.");
|
|
||||||
logger.warn(msg.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user