Como no sobrecargar form.get.head.ftl en Alfresco

En el blog de Michal Wróbel y su magnífico artículo “How to perform form field validation in Alfresco Share?” se explica la forma de usar los eventos para validaciones de campos en formulario de Alfresco Share. Lo hace sobreescribiendo la restricción obligatoria (mandatory constraint).

El problema viene cuando creamos un módulo para Alfresco Share con su fichero JAR correspondiente y lo instalamos en un Alfresco Share donde hay otro fichero form.get.head.ftl ya que el del JAR anulará al anterior con lo que no funcionarán las validaciones.

Para esto he decidido usar otra forma de tener cargado el fichero .js que necesitamos para las validaciones, por ejemplo form_validation_module.js dentro de nuestra instalación. La forma es usando la referencia a ficheros javascript de la configuración de los “forms” de forma que podamos tener y cargar los ficheros por cada módulo que tengamos sin tener que tocar el fichero original.

De esta forma, podremos tener el mismo fichero form_validation_module.js en la misma ubicación tomcat/webapps/share/components/form pero ahora lo referenciamos no en form.get.head.ftl sino dentro de nuestro fichero de configuración de los campos, por ejemplo module-form-config.xml de esta forma:


   
       
           
               
           

       
   


   
       
           
               
                   
               
               
                   
                       
                            <constraint type="mandatory"
                                validation-handler=”Alfresco.forms.validation.prueba”/>
                       
                   
               
           
       
   

Lo único que cambia del anterior método es que aquí no hace falta referenciar la parte ${page.url.context}/res y que hay que añadir “-min” al fichero si lo vamos a “compactar”.

De esta forma tendrémos más seguridad a la hora de desplegar distintos módulos para Alfresco Share donde haya otros ya instalados.

2 replies on “Como no sobrecargar form.get.head.ftl en Alfresco”

  1. Jesus Baez dice:

    Hola Fegor.

    He tratado de declarar una validación de la manera que se describe en el blog de Michal Wróbel, sin embargo la validación no es incluida en la definición del formulario de share (vamos que no se incluye la validacion), en este enlace hablan sobre el tema http://forums.alfresco.com/forum/developer-discussions/alfresco-share-development/share-form-validation-handler-07132012-0021.
    Al parecer en versiones anteriores a la 4.0 este método de declaración funcionaba pero en versiones recientes no.

    Saludos

  2. Efectivamente Jesús, a partir de la 4.0 y la 4.1 sobre todo, todo esto cambia debido a la constante evolución del sistema SpringSurf.

    No obstante solo es cuestión de investigarlo un poco. 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *