Share 3.4 Autocalcular campos formulario

cancel
Showing results for 
Search instead for 
Did you mean: 
rhakaro
Member II

Share 3.4 Autocalcular campos formulario

Hola a todos!

Tengo un problema, y necesitaría un poco de ayuda (más que nada, a ver si alguien puede enfocarme en cómo solucionarlo).

He creado un tipo de contenido custom, que tiene tres campos, dos de tipo fecha (fecha1 y fecha2) y otro de tipo texto (dias). También he creado los formularios correspondientes en "share-form-config-custom.xml"

El caso es que necesito que el campo fecha2 sea la suma de la fecha que se escriba en fecha1 más los días que se introduzcan en dias.

De momento he hecho algo así:


…….
…….
<show id="custom:fecha1" />
<show id="custom:dias" />
<show id="custom:fecha2" />

<appearance>
   ……
   ……
    <field id="custom:fecha1">
    <field id="custom:dias">

   <field id="custom:fecha2" set="contrato">
      <control template="/org/alfresco/components/form/controls/calculoFecha.ftl" />
   </field>
</appearance>
…….
…….

La duda la tengo en cómo obtengo los valores de los campos fecha1 y dias, para sumarlos y ponerlos en fecha2 (dentro de la plantilla flt "calculoFecha.ftl".

Creo que voy por el buen camino, me falta un poco de conocimiento sobre FTL, y la verdad no encuentro mucha información buscando por internet.

¿Alguna sugerencia?

Muchas gracias, un saludo!!!
3 Replies
cybermakoki
Member II

Re: Share 3.4 Autocalcular campos formulario

Hola rhakaro!

Creo que con el tag control-param puedes pasarle parámetros a la plantilla.

Podrias probar a hacer algo asi:

 <field id="custom:fecha2">
                  <control template="/org/alfresco/components/form/controls/calculoFecha.ftl" />
                     <control-param name="">xxx</control-param>                  
                  </control>
               </field>

para mirar algún ejemplo de esto te puedes fijar en las plantillas que ya tiene alfresco en

$ALF_HOME$/tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/form/controls

Suerte!!
rhakaro
Member II

Re: Share 3.4 Autocalcular campos formulario

Hola cibermakoki!

Muchas gracias por responder. Estoy en ello desde ayer. El paso de parámetros es tal como comentaste. En cuanto sepa cómo pasar un valor de formulario (en vez de un valor constante como ahora) y consiga sumar fecha y días en FTL posteo la respuesta.

Espero que no se me complique mucho Smiley Wink

Un saludo!
rhakaro
Member II

Re: Share 3.4 Autocalcular campos formulario

Hola de nuevo,

Al final no he sido capaz de hacer que los campos se calculen dinámicamente. Lo que he hecho es montarme unas cuantas funciones de javascript en FTL´s customizadas, para que se ejecuten en los eventos onblur() de los campos.

Me explico mejor:

- Defino mi formulario de esta forma:

<appearance>
   ……
   ……
    <field id="custom:fecha1">
        <control template="/org/alfresco/components/form/controls/calculoFechaInput.ftl" />
    </field>
    <field id="custom:dias">
        <control template="/org/alfresco/components/form/controls/numDiasInput.ftl" />
    </field>   

   <field id="custom:fecha2" set="contrato" />
</appearance>

Las plantillas FTL que veis, son copias de las que vienen por defecto en alfresco (date.ftl, y text.ftl). Con la única diferencia que las dos primeras (calculoFechaInput y numDiasInput) tienen un evento "onblur()" y una función javascript que cogen los valores de cada uno de estos campos, suman los días a la fecha y vuelcan el resultado en el campo fecha2.

Si alguien está interesado en conocer el código, lo posteo sin problemas. No lo hago porque no es algo inherente a la solución (cómo se calculan fehas en javascript o cómo se definen eventos sería para otro post).

Un saludo y muchas gracias!!