mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
- Added support for duplicate named properties and associations
- Marked 'forms' REST API as internal for the time being git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13767 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -34,7 +34,6 @@ import java.util.Map;
|
|||||||
import org.alfresco.repo.forms.FieldDefinition;
|
import org.alfresco.repo.forms.FieldDefinition;
|
||||||
import org.alfresco.repo.forms.FieldGroup;
|
import org.alfresco.repo.forms.FieldGroup;
|
||||||
import org.alfresco.repo.forms.Form;
|
import org.alfresco.repo.forms.Form;
|
||||||
import org.alfresco.repo.jscript.ScriptableHashMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Form JavaScript Object.
|
* Form JavaScript Object.
|
||||||
@@ -85,23 +84,6 @@ public class ScriptForm implements Serializable
|
|||||||
return fieldDefs.toArray(new FieldDefinition[fieldDefs.size()]);
|
return fieldDefs.toArray(new FieldDefinition[fieldDefs.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ScriptableHashMap<Integer, ScriptFieldDefinition> getFieldDefinitionData()
|
|
||||||
{
|
|
||||||
ScriptableHashMap<Integer, ScriptFieldDefinition> result =
|
|
||||||
new ScriptableHashMap<Integer, ScriptFieldDefinition>();
|
|
||||||
List<FieldDefinition> fieldDefs = form.getFieldDefinitions();
|
|
||||||
|
|
||||||
// An Integer-based Map is being used here as we need to allow field definitions
|
|
||||||
// for both properties and associations. It is possible for a property and an
|
|
||||||
// association to coexist with the same name.
|
|
||||||
int i = 0;
|
|
||||||
for (FieldDefinition fd : fieldDefs)
|
|
||||||
{
|
|
||||||
result.put(i++, new ScriptFieldDefinition(fd));
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ScriptFormData getFormData()
|
public ScriptFormData getFormData()
|
||||||
{
|
{
|
||||||
return new ScriptFormData(form.getFormData());
|
return new ScriptFormData(form.getFormData());
|
||||||
|
@@ -22,20 +22,25 @@ function testGetFormForContentNode()
|
|||||||
test.assertNotNull(fieldDefs, "field definitions should not be null.");
|
test.assertNotNull(fieldDefs, "field definitions should not be null.");
|
||||||
test.assertEquals(23, fieldDefs.length);
|
test.assertEquals(23, fieldDefs.length);
|
||||||
|
|
||||||
// This dataHash is now an integer-keyed hash of the field definition data objects.
|
// as we know there are no duplicates we can safely create a map of the
|
||||||
var fieldDefnDataHash = form.fieldDefinitionData;
|
// field definitions for the purposes of this test
|
||||||
test.assertNotNull(fieldDefnDataHash, "field definition data should not be null.");
|
var fieldDefnDataHash = {};
|
||||||
test.assertEquals(23, fieldDefnDataHash.length);
|
var fieldDef = null;
|
||||||
|
for (var x = 0; x < fieldDefs.length; x++)
|
||||||
|
{
|
||||||
|
fieldDef = fieldDefs[x];
|
||||||
|
fieldDefnDataHash[fieldDef.name] = fieldDef;
|
||||||
|
}
|
||||||
|
|
||||||
var nameField = getFieldDefnFromMap('cm:name', fieldDefnDataHash);
|
var nameField = fieldDefnDataHash['cm:name'];
|
||||||
var titleField = getFieldDefnFromMap('cm:title', fieldDefnDataHash);
|
var titleField = fieldDefnDataHash['cm:title'];
|
||||||
var descField = getFieldDefnFromMap('cm:description', fieldDefnDataHash);
|
var descField = fieldDefnDataHash['cm:description'];
|
||||||
var originatorField = getFieldDefnFromMap('cm:originator', fieldDefnDataHash);
|
var originatorField = fieldDefnDataHash['cm:originator'];
|
||||||
var addresseeField = getFieldDefnFromMap('cm:addressee', fieldDefnDataHash);
|
var addresseeField = fieldDefnDataHash['cm:addressee'];
|
||||||
var addresseesField = getFieldDefnFromMap('cm:addressees', fieldDefnDataHash);
|
var addresseesField = fieldDefnDataHash['cm:addressees'];
|
||||||
var subjectField = getFieldDefnFromMap('cm:subjectline', fieldDefnDataHash);
|
var subjectField = fieldDefnDataHash['cm:subjectline'];
|
||||||
var sentDateField = getFieldDefnFromMap('cm:sentdate', fieldDefnDataHash);
|
var sentDateField = fieldDefnDataHash['cm:sentdate'];
|
||||||
var referencesField = getFieldDefnFromMap('cm:references', fieldDefnDataHash);
|
var referencesField = fieldDefnDataHash['cm:references'];
|
||||||
|
|
||||||
test.assertNotNull(nameField, "Expecting to find the cm:name field");
|
test.assertNotNull(nameField, "Expecting to find the cm:name field");
|
||||||
test.assertNotNull(titleField, "Expecting to find the cm:title field");
|
test.assertNotNull(titleField, "Expecting to find the cm:title field");
|
||||||
@@ -66,8 +71,8 @@ function testGetFormForContentNode()
|
|||||||
|
|
||||||
// get the constraint for the name field and check
|
// get the constraint for the name field and check
|
||||||
var constraints = nameField.constraints;
|
var constraints = nameField.constraints;
|
||||||
test.assertEquals(1, constraints.length);
|
test.assertEquals(1, constraints.size());
|
||||||
var constraint = constraints[0];
|
var constraint = constraints.get(0);
|
||||||
test.assertEquals("REGEX", constraint.type);
|
test.assertEquals("REGEX", constraint.type);
|
||||||
var params = constraint.params;
|
var params = constraint.params;
|
||||||
test.assertNotNull(params, "params should not be null.");
|
test.assertNotNull(params, "params should not be null.");
|
||||||
@@ -121,21 +126,6 @@ function testGetFormForContentNode()
|
|||||||
test.assertEquals(testAssociatedDoc, targets);
|
test.assertEquals(testAssociatedDoc, targets);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFieldDefnFromMap(name, fieldDefnDataHash)
|
|
||||||
{
|
|
||||||
var result = '';
|
|
||||||
for (var i = 0; i < fieldDefnDataHash.length; i++)
|
|
||||||
{
|
|
||||||
var candidateFieldDefn = fieldDefnDataHash[i];
|
|
||||||
if (candidateFieldDefn.name == name)
|
|
||||||
{
|
|
||||||
result = candidateFieldDefn;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute tests
|
// Execute tests
|
||||||
testGetFormForNonExistentContentNode();
|
testGetFormForNonExistentContentNode();
|
||||||
testGetFormForContentNode();
|
testGetFormForContentNode();
|
Reference in New Issue
Block a user