You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Edward Elhauge <ee...@uncanny.net> on 2009/02/04 02:05:24 UTC

More control over Cform Date Conversion

Hi,

I've run into a problem where my users want more detailed control over
Date field validation. In the version that we're running (2.1.8)
we don't have a "lenient" attribute for base="date" widgets.

So the user can type in "33/60/9z" as a date, which get converted into
"10/30/2011". Not what was expected.

What I'd like would be to a small:
  <fd:validation> <fd:javascript>
  ...
  </fd:javascript> </fd:validation>
section to throw an error in those cases.

Unfortunately this.value inside that javascript callback is already in a
Date format.

My question is:
  How do I get access to the users original text input
  within the fd:validation section?

  If there is no way to get access to the raw text, do I need to write
  my own validator to replace "FormattingDateConvertor" ?

-- 
        Edward Elhauge <ee...@uncanny.net>
"The right dose differentiates a poison and a remedy." -- Paracelsus (1493 - 1541)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: More control over Cform Date Conversion

Posted by Edward Elhauge <ee...@uncanny.net>.
* Simone Gianni <si...@apache.org> wrote on [2009-02-03 17:25]:
> Hi Edward,
> the problem is in conversion, not in validation. When a form value is 
> filled by the user, it is a plain string. Then it arrives to Cocoon, 
> that parse the string to convert it to the proper type, for example a 
> date. After that conversion has been performed successfully, then 
> validation is performed on the obtained converted value, for example the 
> Date object.
> 
> So, it is not possible to check the string value from a validator, 
> unless you are trying on a string field :)

That's what I figured when I started poking about, but I was hoping
that the original user input was tucked away somewhere in the Widget.
 
> You should be able to take the java source code of the date converter 
> from a recent 2.1.x version of Cocoon, a version that supports the 
> lenient attribute, and backport it to the 2.1.8 version.

So I basically have to roll my own replacement "FormattingDateConvertor",
which I can crib from a more recent version.
 
> Hope this helps,
> Simone

Yes, thank you. Knowing that you can stop looking is a BIG help.

Cheers,

Ed Elhauge
 
> Edward Elhauge wrote:
> >Hi,
> >
> >I've run into a problem where my users want more detailed control over
> >Date field validation. In the version that we're running (2.1.8)
> >we don't have a "lenient" attribute for base="date" widgets.
> >
> >So the user can type in "33/60/9z" as a date, which get converted into
> >"10/30/2011". Not what was expected.
> >
> >What I'd like would be to a small:
> >  <fd:validation> <fd:javascript>
> >  ...
> >  </fd:javascript> </fd:validation>
> >section to throw an error in those cases.
> >
> >Unfortunately this.value inside that javascript callback is already in a
> >Date format.
> >
> >My question is:
> >  How do I get access to the users original text input
> >  within the fd:validation section?
> >
> >  If there is no way to get access to the raw text, do I need to write
> >  my own validator to replace "FormattingDateConvertor" ?
> >
> >  
> 
> 
> -- 
> Simone Gianni            CEO Semeru s.r.l.           Apache Committer
> http://www.simonegianni.it/
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
---end quoted text---

-- 
        Edward Elhauge <ee...@uncanny.net>
"The right dose differentiates a poison and a remedy." -- Paracelsus (1493 - 1541)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: More control over Cform Date Conversion

Posted by Simone Gianni <si...@apache.org>.
Hi Edward,
the problem is in conversion, not in validation. When a form value is 
filled by the user, it is a plain string. Then it arrives to Cocoon, 
that parse the string to convert it to the proper type, for example a 
date. After that conversion has been performed successfully, then 
validation is performed on the obtained converted value, for example the 
Date object.

So, it is not possible to check the string value from a validator, 
unless you are trying on a string field :)

You should be able to take the java source code of the date converter 
from a recent 2.1.x version of Cocoon, a version that supports the 
lenient attribute, and backport it to the 2.1.8 version.

Hope this helps,
Simone

Edward Elhauge wrote:
> Hi,
>
> I've run into a problem where my users want more detailed control over
> Date field validation. In the version that we're running (2.1.8)
> we don't have a "lenient" attribute for base="date" widgets.
>
> So the user can type in "33/60/9z" as a date, which get converted into
> "10/30/2011". Not what was expected.
>
> What I'd like would be to a small:
>   <fd:validation> <fd:javascript>
>   ...
>   </fd:javascript> </fd:validation>
> section to throw an error in those cases.
>
> Unfortunately this.value inside that javascript callback is already in a
> Date format.
>
> My question is:
>   How do I get access to the users original text input
>   within the fd:validation section?
>
>   If there is no way to get access to the raw text, do I need to write
>   my own validator to replace "FormattingDateConvertor" ?
>
>   


-- 
Simone Gianni            CEO Semeru s.r.l.           Apache Committer
http://www.simonegianni.it/


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org