From df3e143e1c811a2d27ac83911fd4c84466bcd308 Mon Sep 17 00:00:00 2001 From: Gavin Cornwell Date: Fri, 27 Mar 2009 20:28:40 +0000 Subject: [PATCH] - 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 --- .../repo/forms/script/ScriptForm.java | 18 ------- .../repo/forms/script/test_formService.js | 50 ++++++++----------- 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/source/java/org/alfresco/repo/forms/script/ScriptForm.java b/source/java/org/alfresco/repo/forms/script/ScriptForm.java index 4e4425ec33..6c175a316a 100644 --- a/source/java/org/alfresco/repo/forms/script/ScriptForm.java +++ b/source/java/org/alfresco/repo/forms/script/ScriptForm.java @@ -34,7 +34,6 @@ import java.util.Map; import org.alfresco.repo.forms.FieldDefinition; import org.alfresco.repo.forms.FieldGroup; import org.alfresco.repo.forms.Form; -import org.alfresco.repo.jscript.ScriptableHashMap; /** * Form JavaScript Object. @@ -84,23 +83,6 @@ public class ScriptForm implements Serializable } return fieldDefs.toArray(new FieldDefinition[fieldDefs.size()]); } - - public ScriptableHashMap getFieldDefinitionData() - { - ScriptableHashMap result = - new ScriptableHashMap(); - List 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() { diff --git a/source/java/org/alfresco/repo/forms/script/test_formService.js b/source/java/org/alfresco/repo/forms/script/test_formService.js index a5b5682379..3821adc740 100644 --- a/source/java/org/alfresco/repo/forms/script/test_formService.js +++ b/source/java/org/alfresco/repo/forms/script/test_formService.js @@ -22,20 +22,25 @@ function testGetFormForContentNode() test.assertNotNull(fieldDefs, "field definitions should not be null."); test.assertEquals(23, fieldDefs.length); - // This dataHash is now an integer-keyed hash of the field definition data objects. - var fieldDefnDataHash = form.fieldDefinitionData; - test.assertNotNull(fieldDefnDataHash, "field definition data should not be null."); - test.assertEquals(23, fieldDefnDataHash.length); + // as we know there are no duplicates we can safely create a map of the + // field definitions for the purposes of this test + var fieldDefnDataHash = {}; + 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 titleField = getFieldDefnFromMap('cm:title', fieldDefnDataHash); - var descField = getFieldDefnFromMap('cm:description', fieldDefnDataHash); - var originatorField = getFieldDefnFromMap('cm:originator', fieldDefnDataHash); - var addresseeField = getFieldDefnFromMap('cm:addressee', fieldDefnDataHash); - var addresseesField = getFieldDefnFromMap('cm:addressees', fieldDefnDataHash); - var subjectField = getFieldDefnFromMap('cm:subjectline', fieldDefnDataHash); - var sentDateField = getFieldDefnFromMap('cm:sentdate', fieldDefnDataHash); - var referencesField = getFieldDefnFromMap('cm:references', fieldDefnDataHash); + var nameField = fieldDefnDataHash['cm:name']; + var titleField = fieldDefnDataHash['cm:title']; + var descField = fieldDefnDataHash['cm:description']; + var originatorField = fieldDefnDataHash['cm:originator']; + var addresseeField = fieldDefnDataHash['cm:addressee']; + var addresseesField = fieldDefnDataHash['cm:addressees']; + var subjectField = fieldDefnDataHash['cm:subjectline']; + var sentDateField = fieldDefnDataHash['cm:sentdate']; + var referencesField = fieldDefnDataHash['cm:references']; test.assertNotNull(nameField, "Expecting to find the cm:name 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 var constraints = nameField.constraints; - test.assertEquals(1, constraints.length); - var constraint = constraints[0]; + test.assertEquals(1, constraints.size()); + var constraint = constraints.get(0); test.assertEquals("REGEX", constraint.type); var params = constraint.params; test.assertNotNull(params, "params should not be null."); @@ -121,21 +126,6 @@ function testGetFormForContentNode() 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 testGetFormForNonExistentContentNode(); testGetFormForContentNode(); \ No newline at end of file