Date form control

cancel
Showing results for 
Search instead for 
Did you mean: 
sanjaybandhniya
Intermediate

Date form control

I have created customized content model  where 2 date control are there.

1)FromDate 2)ToDate

Now I want populate ToDate whenever FromDate change(base on some logic) and another is validation where ToDate should not be greater than FromDate(I have achieved this thing using validation-handler but the problem is it calling on every field of that form on keyup event).

Have any one implemented this type of thing?

share-config-custom.xml :

<field id="mbs:dosRangeTo" set="chargeBatchDocument" mandatory="true">
      <control template="/org/alfresco/components/form/controls/dos_to_date.ftl"/>
      <constraint-handlers>
         <constraint type="MANDATORY" validation-handler="Alfresco.forms.validation.validateMyDate" event="keyup"                message="From Date Should not be greater than To Date"/>
      </constraint-handlers>
</field>

JS File:

Alfresco.forms.validation.validateMyDate = function validateMyDate(field, args,event, form, silent, message)

{
      var isCorrect = true;

      var fromDate = field.form.prop_mbs_dosRangeFrom.value;
      var toDate = field.form.prop_mbs_dosRangeTo.value;
      if ((Date.parse(toDate) > Date.parse(fromDate))) {
         YAHOO.util.Dom.setStyle(field.id+"-cntrl-date", "border", "2px solid red");
         isCorrect = false;
   } else {
      YAHOO.util.Dom.setStyle(field.id+"-cntrl-date", "border", "");
      isCorrect = true;
   }
return isCorrect;
};

4 Replies
krutik_jayswal
Senior Member II

Re: Date form control

As dos_to_date.ftl component is not oob alfresco component, so you need to add content of it.

 

You can use daterange control of alfresco.If required you can customize it as well.It is saving from date and to date separated by pipe("|"), so you will be able to validate it inside the, validation handler.

sanjaybandhniya
Intermediate

Re: Date form control

I have create validation handler and it work but it calling on   keyup event of every field of form not for that particular field.

krutik_jayswal
Senior Member II

Re: Date form control

Validation handler is component of form and not the component of any particular field.So whenever any field will gget changed it will try to validate all fields(by calling all validation handler).Validation handler will get called at the time of form submission as well.

If you would like to do something apart from validation you can do it inside, date-range.js file.Use Extension mechanism for extending it.

edagher
Active Member

Re: Date form control

Hello, 

I'm trying to do the pretty much the same thing as  Sanjay, input Start date and End date and validate the end date is greater than start date. I'm trying to use the daterange.ftl control, it shows normally in my form however the icon form datepicker is kind of disabled, it doesn't open the datepicker to select a date and therefore it's impossible to fill in the date. For some reason, whenever i put the daterange.ftl,all datepickers would stop working within the form.

Any idea what could be the issue?

In my aspect, here's the property

<property name="lrwf:daterange">
<title>Date Range</title>
<type>d:date</type>
</property>

In share-config-custom.xml: 

<field id="lrwf:daterange">
<control template="/org/alfresco/components/form/controls/daterange.ftl" />
</field>

Thank you!