Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-dynamicforms/src/java/com/finalist/portlets/responseform
In directory 
james.mmbase.org:/tmp/cvs-serv8199/portlets-dynamicforms/src/java/com/finalist/portlets/responseform

Modified Files:
      Tag: b1_4
        ResponseFormPortlet.java 
Log Message:
CMSC-816 solved


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-dynamicforms/src/java/com/finalist/portlets/responseform
See also: http://www.mmbase.org/jira/browse/CMSC-816


Index: ResponseFormPortlet.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-dynamicforms/src/java/com/finalist/portlets/responseform/ResponseFormPortlet.java,v
retrieving revision 1.8.2.1
retrieving revision 1.8.2.2
diff -u -b -r1.8.2.1 -r1.8.2.2
--- ResponseFormPortlet.java    3 Mar 2008 10:40:59 -0000       1.8.2.1
+++ ResponseFormPortlet.java    17 Mar 2008 14:08:57 -0000      1.8.2.2
@@ -64,6 +64,7 @@
                                                       // Meg
    private static final long MEGABYTE = 1024 * 1024; // 1 Meg
    private static final String FIELD_PREFIX = "field_";
+   // TODO: use these constants (and clean up this mess)
    private static final int TYPE_TEXTBOX = 1;
    private static final int TYPE_TEXTAREA = 2;
    private static final int TYPE_RADIO = 4;
@@ -78,71 +79,66 @@
 
 
    public void processView(ActionRequest request, ActionResponse response) 
throws PortletException, IOException {
-      Map<String, String> errorMessages = new Hashtable<String, String>();
-      Map<String, String> parameterMap = new HashMap<String, String>();
+
+               Map errorMessages = new Hashtable();
+               Map parameterMap = new HashMap();
       DataSource attachment = processUserRequest(request, errorMessages, 
parameterMap);
-      String action = request.getParameter(ACTION_PARAM);
-      Map<String, String> formfields = new HashMap<String, String>();
+               String action = request.getParameter("action");
+               Map formfields = new HashMap();
       StringBuffer data = new StringBuffer();
 
-      if (action == null) {
+               if (action == null)
          response.setPortletMode(CmscPortletMode.EDIT_DEFAULTS);
-      }
       else if (action.equals("edit")) {
          PortletPreferences preferences = request.getPreferences();
-         String contentelement = preferences.getValue(CONTENTELEMENT, null);
-
+                       String contentelement = 
preferences.getValue("contentelement", null);
          if (contentelement != null) {
             if (parameterMap.size() > 0) {
                CloudProvider cloudProvider = 
CloudProviderFactory.getCloudProvider();
                Cloud cloud = cloudProvider.getCloud();
                Node responseForm = cloud.getNode(contentelement);
-               NodeList formfieldList = 
SearchUtil.findRelatedOrderedNodeList(responseForm, "formfield", "posrel",
-                     "posrel.pos");
+                                       NodeList formfieldList = 
SearchUtil.findRelatedOrderedNodeList(responseForm, "formfield", "posrel", 
"posrel.pos");
                NodeIterator formfieldIterator = formfieldList.nodeIterator();
                String userEmailAddress = null;
+                                       String number;
+                                       String textValue;
 
-               while (formfieldIterator.hasNext()) {
+                                       while ( formfieldIterator.hasNext()) {
                   Node formfield = formfieldIterator.nextNode();
-                  String number = formfield.getStringValue("number");
+                                               number = 
formfield.getStringValue("number");
                   String label = formfield.getStringValue("label");
                   int type = formfield.getIntValue("type");
                   String regex = formfield.getStringValue("regex");
                   boolean isMandatory = formfield.getBooleanValue("mandatory");
                   boolean sendEmail = formfield.getBooleanValue("sendemail");
-                  String fieldIdentifier = FIELD_PREFIX + number;
-                  String value = parameterMap.get(fieldIdentifier);
-                  String textValue = null;
+
+                                               String fieldIdentifier = (new 
StringBuilder()).append("field_").append(number).toString();
+                                               String value = ((String) 
parameterMap.get(fieldIdentifier)).trim();
+                                               textValue = null;
+
                   if (sendEmail) {
                      userEmailAddress = value;
                   }
-                  if (type == TYPE_TEXTAREA && value != null && value.length() 
>= TEXTAREA_MAXLENGTH) {
-                     value = value.substring(0, TEXTAREA_MAXLENGTH - 1);
+                                               if (type == 2 && value != null 
&& value.length() >= 1024) {
+                                                       value = 
value.substring(0, 1023);
                   }
-                  if (isMandatory
-                        && (((type == TYPE_RADIO || type == TYPE_CHECKBOX) && 
(value == null)) || (((type == TYPE_TEXTBOX)
-                              || (type == TYPE_TEXTAREA) || (type == 
TYPE_ATTACHEMENT)) && value.equals("")))) {
+                                               if (isMandatory && ((type == 4 
|| type == 6) && value == null || (type == 1 || type == 2 || type == 7) && 
value.equals(""))) {
                      errorMessages.put(fieldIdentifier, 
"view.formfield.empty");
                   }
-                  if (!regex.equals("")
-                        && (((type == TYPE_TEXTBOX) || (type == 
TYPE_TEXTAREA)) && !isEmailAddress(value))) {
-                   errorMessages.put(fieldIdentifier, 
"view.formfield.invalid");
-                  }
-                  
-                  if ((type == TYPE_TEXTBOX) && sendEmail) {   //If data is 
used as email address, then it should be valid 
-                      if (!isEmailAddress(userEmailAddress))
+                                               if (!regex.equals("") && (type 
== 1 || type == 2) && !value.matches(regex)) {
                          errorMessages.put(fieldIdentifier, 
"view.formfield.invalid");
                   }
                   
-                  if (type == TYPE_CHECKBOX) {
-                     textValue = (value == null) ? CHECKBOX_NO : CHECKBOX_YES;
+                                               if (type == 6) {
+                                                       textValue = value != 
null ? "ja" : "nee";
                   }
-                  else if (type == TYPE_RADIO) {
-                     textValue = (value == null) ? RADIO_EMPTY : value;
+                                               else if (type == 4) { 
+                                                       textValue = value != 
null ? value : "[niets gekozen]";
                   }
                   else {
-                     textValue = (StringUtil.isEmptyOrWhitespace(value)) ? 
TEXTBOX_EMPTY : value;
+                                                       textValue = 
StringUtil.isEmptyOrWhitespace(value) ? "[niet ingevuld]" : value;
                   }
+
                   addFormFieldsData(data, label, textValue);
                   formfields.put(number, textValue);
                }
@@ -158,34 +154,29 @@
                      errorMessages.put("sendemail", "view.error.sendemail");
                   }
                   else {
-                      // if the responseform email has been sent, send also 
the email to the user
-                      sent = sendUserEmail(responseForm, userEmailAddress, 
emailData, parameterMap);
-                      if (!sent) {
-                         errorMessages.put("sendemail", 
"view.error.sendemail");
-                      }
+                                                       
sendUserEmail(responseForm, userEmailAddress, emailData, parameterMap);
                   }
                }
             }
+                               
request.getPortletSession().setAttribute("parameterMap", parameterMap);
+
             if (errorMessages.size() > 0) {
-               request.getPortletSession().setAttribute(ERRORMESSAGES, 
errorMessages);
-               request.getPortletSession().setAttribute(PARAMETER_MAP, 
parameterMap);
-            }
-            else {
+                                       
request.getPortletSession().setAttribute("errormessages", errorMessages);
+                               } else {
                request.getPortletSession().setAttribute("confirm", "confirm");
             }
-         }
-         else {
+                       } else {
             getLogger().error("No contentelement");
          }
-         // switch to View mode
+
          response.setPortletMode(PortletMode.VIEW);
-      }
-      else {
-         getLogger().error("Unknown action: '" + action + "'");
+               } else {
+                       getLogger().error((new StringBuilder()).append("Unknown 
action: '").append(action).append("'").toString());
       }
    }
 
 
+
    private void addFormFieldsData(StringBuffer data, String label, String 
textValue) {
       data.append(label);
       data.append(": ");
@@ -194,6 +185,30 @@
    }
 
 
+
+
+
+
+       public void processEdit(ActionRequest request, ActionResponse response) 
throws PortletException, IOException {
+               super.processEdit(request, response);
+               String action = request.getParameter("action");
+               if (action == null) {
+                       response.setPortletMode(PortletMode.EDIT);
+               }
+               else if (action.equals("delete")) {
+                       String deleteNumber = 
request.getParameter("deleteNumber");
+                       CloudProvider cloudProvider = 
CloudProviderFactory.getCloudProvider();
+                       Cloud cloud = cloudProvider.getCloud();
+                       Node element = cloud.getNode(deleteNumber);
+                       element.delete(true);
+               }
+       }
+
+
+
+   
+
+
    private void saveResponseForm(Cloud cloud, Map<String, String> formfields, 
Node responseForm) {
 
       NodeManager savedFormMgr = cloud.getNodeManager("savedform");
@@ -226,7 +241,6 @@
          if (ServerUtil.isLive()) {
             PublishUtil.publishOrUpdateNode(savedFieldValue);
          }
-
       }
    }
 
@@ -359,23 +373,6 @@
    }
 
 
-   public void processEdit(ActionRequest request, ActionResponse response) 
throws PortletException, IOException {
-      super.processEdit(request, response);
-
-      String action = request.getParameter(ACTION_PARAM);
-      if (action == null) {
-         response.setPortletMode(PortletMode.EDIT);
-      }
-      else if (action.equals("delete")) {
-         String deleteNumber = request.getParameter("deleteNumber");
-         CloudProvider cloudProvider = CloudProviderFactory.getCloudProvider();
-         Cloud cloud = cloudProvider.getCloud();
-         Node element = cloud.getNode(deleteNumber);
-         element.delete(true);
-      }
-   }
-
-
    private DataSource processUserRequest(ActionRequest request, Map<String, 
String> errorMessages,
          Map<String, String> parameterMap) {
       List<FileItem> fileItems = null;
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to