Author: bpapez
Date: Thu Aug 16 17:11:52 2007
New Revision: 18189

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18189&repname=
=3Djahia
Log:
New Jahia specific validators added

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/validation=
/JahiaFieldChecks.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/struts/validat=
or-jahia-rules.xml

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/vali=
dation/JahiaFieldChecks.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/validation/JahiaFieldChecks.java&re=
v=3D18189&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/validation=
/JahiaFieldChecks.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/validation=
/JahiaFieldChecks.java Thu Aug 16 17:11:52 2007
@@ -17,17 +17,22 @@
  */
 package org.jahia.engines.validation;
 =

+import java.util.HashMap;
 import java.util.Iterator;
 =

 import javax.servlet.http.HttpServletRequest;
 =

 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.validator.*;
-import org.apache.commons.validator.Field;
-import org.apache.commons.validator.ValidatorAction;
 import org.apache.struts.action.ActionMessages;
 import org.apache.struts.validator.FieldChecks;
 import org.apache.struts.validator.Resources;
+import org.jahia.bin.Jahia;
+import org.jahia.engines.shared.JahiaPageEngineTempBean;
+import org.jahia.engines.shared.Page_Field;
+import org.jahia.exceptions.JahiaSessionExpirationException;
+import org.jahia.params.ParamBean;
+import org.jahia.params.ProcessingContext;
 import org.jahia.services.sites.SiteLanguageSettings;
 =

 /**
@@ -90,6 +95,97 @@
             return true;
         }
     }
+    =

+    /**
+     * Checks if texts for all languages are provided, if a text in at lea=
st
+     * one language was already set.
+     * =

+     * @param bean
+     * @param va
+     * @param field
+     * @param errors
+     * @param request
+     * @return true if text in all languages is given, false if not
+     */
+    public static boolean validateMandatoryMLTextIfSet(
+        Object bean,
+        ValidatorAction va,
+        Field field,
+        ActionMessages errors,
+        HttpServletRequest request) {
+            =

+        Arg mltProperty =3D field.getArg("mltProperty", 0);
+        Object value =3D getPropertyValue(bean, =

+            mltProperty !=3D null && "mltProperty".equals(mltProperty.getN=
ame())? =

+                mltProperty.getKey() : field.getProperty());
+
+        if (!(value instanceof JahiaMltHelper)) {
+            if (value !=3D null) {
+                logger.error(
+                    "property value must be an JahiaMltHelper "
+                        + field.getProperty());
+            }
+            return false;
+        } else {
+            JahiaMltHelper mltHelper =3D (JahiaMltHelper)value;
+            String[] text =3D mltHelper.getText();
+            boolean allEmpty =3D true;
+            if (text !=3D null) {
+                for (int i =3D 0; i < text.length && allEmpty; i++) {
+                    if (text[i] !=3D null && text[i].length() > 0) {
+                        allEmpty =3D false;
+                    }
+                }
+            }
+            if (!allEmpty && !isAllMandatoryLanguagesSet(mltHelper)) {
+                errors.add(
+                    field.getKey(),
+                    Resources.getActionMessage(request, va, field));
+                return false;
+            }
+            return true;
+        }
+    }    =

+
+    /**
+     * Checks if title of a page field is set, only when the selected opti=
on
+     * is not "No link" or "Reset link"
+     * =

+     * @param bean
+     * @param va
+     * @param field
+     * @param errors
+     * @param request
+     * @return true if text in all languages is given, false if not
+     */
+    public static boolean validateMandatoryTitleIfLinkValid(Object bean,
+            ValidatorAction va, Field field, ActionMessages errors,
+            HttpServletRequest request) {
+        boolean fieldValid =3D false;
+        String value =3D (String) getPropertyValue(bean, field.getProperty=
());
+        if (value !=3D null) {
+            fieldValid =3D true;
+        } else {
+            ProcessingContext jParams =3D Jahia.getThreadParamBean();
+            HashMap pageBeans =3D null;
+            if (jParams !=3D null) {
+                pageBeans =3D (HashMap) jParams.getSessionState().getAttri=
bute(
+                    "Page_Field.PageBeans");
+            }
+            if (pageBeans =3D=3D null) {
+                pageBeans =3D new HashMap();
+            }
+
+            JahiaPageEngineTempBean pageBean =3D (JahiaPageEngineTempBean)=
 pageBeans
+                .get(field.getProperty());
+
+            if (pageBean =3D=3D null || Page_Field.RESET_LINK.equals(pageB=
ean.getOperation())) {
+                fieldValid =3D true;
+            }
+        }
+        return fieldValid;
+    }    =

+    =

 =

     /**
      * Checks if texts for all languages do not exceed a specified maximum=
 length.

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/struts/v=
alidator-jahia-rules.xml
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/WEB-INF/etc/struts/validator-jahia-rules.xml&rev=3D=
18189&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/struts/validat=
or-jahia-rules.xml (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/struts/validat=
or-jahia-rules.xml Thu Aug 16 17:11:52 2007
@@ -14,6 +14,30 @@
                          org.apache.struts.action.ActionMessages,
                          javax.servlet.http.HttpServletRequest" =

                      msg=3D"errors.mandlang"/>
+
+        <!-- validator to check whether mandatory languages are set, =

+             if the text was set in at least one language -->             =
        =

+        <validator name=3D"requiredMandatoryLangIfSet" =

+              classname=3D"org.jahia.engines.validation.JahiaFieldChecks" =

+                    method=3D"validateMandatoryMLTextIfSet" =

+           methodParams=3D"java.lang.Object,
+                         org.apache.commons.validator.ValidatorAction,
+                         org.apache.commons.validator.Field,
+                         org.apache.struts.action.ActionMessages,
+                         javax.servlet.http.HttpServletRequest" =

+                     msg=3D"errors.mandlang"/>                     =

+
+        <!-- validator to check whether page or link title has been set, =

+             only if selected option is not "No link" or "Reset link" --> =
      =

+        <validator name=3D"requiredIfLinkValid" =

+              classname=3D"org.jahia.engines.validation.JahiaFieldChecks" =

+                    method=3D"validateMandatoryTitleIfLinkValid" =

+           methodParams=3D"java.lang.Object,
+                         org.apache.commons.validator.ValidatorAction,
+                         org.apache.commons.validator.Field,
+                         org.apache.struts.action.ActionMessages,
+                         javax.servlet.http.HttpServletRequest" =

+                     msg=3D"errors.required"/>                       =

                        =

         <!-- validator to check that the input for each language does not =
exceed a specified maximum length -->
         <validator name=3D"maxlengthAllLang" =


_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to