From e7d77dbcebd007910166699ee8a2feaa95c93594 Mon Sep 17 00:00:00 2001 From: Erik Winlof Date: Wed, 17 Feb 2010 12:20:36 +0000 Subject: [PATCH] Rule webscripts - Modified parsing of rule webscripts so an attribute "parameterValues" may contain an empty object - Its now possible to create a rule (however action/conditions with multi parameters will fail on parsing on server: SAIL-306) - Started to use constraints webscripts and removed old testdata webscripts - Made rule-details component on folder rules page display values form server git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@18676 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rules/testdata-constraints.get.desc.xml | 5 - .../rules/testdata-constraints.get.json.ftl | 95 ------------------- .../scripts/rule/AbstractRuleWebScript.java | 73 +++++++------- 3 files changed, 38 insertions(+), 135 deletions(-) delete mode 100644 config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.desc.xml delete mode 100644 config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.json.ftl diff --git a/config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.desc.xml deleted file mode 100644 index f1038350da..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.desc.xml +++ /dev/null @@ -1,5 +0,0 @@ - - Rule constratints testdat - - /api/testdata/ruleconstraints - diff --git a/config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.json.ftl deleted file mode 100644 index 57bb45709e..0000000000 --- a/config/alfresco/templates/webscripts/org/alfresco/rules/testdata-constraints.get.json.ftl +++ /dev/null @@ -1,95 +0,0 @@ -{ - "data" : - [ - { - "name" : "scripts", - "values" : - [ - { - "value" : "a-script.js", - "displayLabel" : "a-script.js" - }, - { - "value" : "another-script.js", - "displayLabel" : "another-script.js" - }, - { - "value" : "add-tags-script.js", - "displayLabel" : "add-tags-script.js" - } - ] - }, - { - "name" : "aspects", - "values" : - [ - { - "value" : "taggable", - "displayLabel" : "Taggable" - }, - { - "value" : "versionable", - "displayLabel" : "Versionable" - } - ] - }, - { - "name" : "types", - "values" : - [ - { - "value" : "content", - "displayLabel" : "Content" - }, - { - "value" : "document", - "displayLabel" : "Document" - }, - { - "value" : "manual", - "displayLabel" : "Manual" - } - ] - }, - { - "name" : "property-evaluators", - "values" : - [ - { - "value" : "EQUALS", - "displayLabel" : "Is equal to" - }, - { - "value" : "CONTAINS", - "displayLabel" : "Contains" - }, - { - "value" : "BEGINS", - "displayLabel" : "Starts with" - }, - { - "value" : "ENDS", - "displayLabel" : "Ends with" - }, - { - "value" : "GREATER_THAN", - "displayLabel" : "Greater than" - }, - { - "value" : "LESS_THAN", - "displayLabel" : "Less than" - }, - { - "value" : "GREATER_THAN_EQUAL", - "displayLabel" : "Greater than or equals" - }, - { - "value" : "LESS_THAN_EQUAL", - "displayLabel" : "Less than or equals" - } - ] - } - - ] -} - \ No newline at end of file diff --git a/source/java/org/alfresco/repo/web/scripts/rule/AbstractRuleWebScript.java b/source/java/org/alfresco/repo/web/scripts/rule/AbstractRuleWebScript.java index 3ae87ef6bd..a8cb438010 100755 --- a/source/java/org/alfresco/repo/web/scripts/rule/AbstractRuleWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/rule/AbstractRuleWebScript.java @@ -387,55 +387,58 @@ public abstract class AbstractRuleWebScript extends DeclarativeWebScript // get parameters names JSONArray names = jsonParameterValues.names(); - - for (int i = 0; i < names.length(); i++) - { - String propertyName = names.getString(i); - Object propertyValue = jsonParameterValues.get(propertyName); - - // get parameter repository type - QName typeQName = getPropertyType(propertyName); - - if (typeQName == null) + + if (names != null) + { + for (int i = 0; i < names.length(); i++) { - if (propertyValue.toString().equals("true") || propertyValue.toString().equals("false")) - { - typeQName = DataTypeDefinition.BOOLEAN; - } - else - { - typeQName = DataTypeDefinition.TEXT; - } - } + String propertyName = names.getString(i); + Object propertyValue = jsonParameterValues.get(propertyName); - Serializable value = null; + // get parameter repository type + QName typeQName = getPropertyType(propertyName); - if (typeQName.equals(DataTypeDefinition.ANY)) - { - try + if (typeQName == null) { - value = dateFormate.parse(propertyValue.toString()); + if (propertyValue.toString().equals("true") || propertyValue.toString().equals("false")) + { + typeQName = DataTypeDefinition.BOOLEAN; + } + else + { + typeQName = DataTypeDefinition.TEXT; + } } - catch (ParseException e) + + Serializable value = null; + + if (typeQName.equals(DataTypeDefinition.ANY)) { try { - value = Long.valueOf(propertyValue.toString()); + value = dateFormate.parse(propertyValue.toString()); } - catch (NumberFormatException e1) + catch (ParseException e) { - // do nothing + try + { + value = Long.valueOf(propertyValue.toString()); + } + catch (NumberFormatException e1) + { + // do nothing + } } } - } - if (value == null) - { - // convert to correct repository type - value = (Serializable)DefaultTypeConverter.INSTANCE.convert(dictionaryService.getDataType(typeQName), propertyValue); - } + if (value == null) + { + // convert to correct repository type + value = (Serializable)DefaultTypeConverter.INSTANCE.convert(dictionaryService.getDataType(typeQName), propertyValue); + } - parameterValues.put(propertyName, value); + parameterValues.put(propertyName, value); + } } return parameterValues;