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