On 11 Jul 2008, at 00:51, Kamal Bhatt wrote:

Jeremy Quinn wrote:
Dear Kamal

Many thanks for your response.

On 9 Jul 2008, at 23:18, Kamal Bhatt wrote:

Jeremy Quinn wrote:
Hi All

As you may know, I am working heavily on the revamp of Dojo on the client-side of CForms.

In Dojo it is possible to perform quite a lot of validation on form fields. There is a partial match between the validation capabilities of CForms and those of Dojo. Several people have thought in the past that it would be good to have the same validation occur on both the server and the client.

OTTOMH, the kind of validators we could probably make work in both places would be : email, length, mod10, range and regexp (plus maybe javascript, if we can sort out any context differences)

On re-examination, the list of validators that could have an equivalent client-side validator auto-generated is probably shorter ..... as I am not sure ATM how to implement the expressions possible in some of them ..... eg. assert, length, range etc.

Maybe this is my ignorance speaking, but I don't see any (clean) way of making client side validation work. How a validation message is presentated is left up to forms-styling (or whatever you wish to call it), so you cannot make assumptions about how the validation is presented.

Yes, this is an issue that needs addressing.

However, there may be an answer ..... both Cocoon and Dojo are i18n capable, even though they both use different i18n catalogue formats, Cocoon i18n files could be provided to Dojo via a special transformation.

Or maybe I am still being naive ; )

I don't know enough about i18n to say.


The closest solution I can see is if you created a hook function for all validation and had the hook function propargate the errors that way.

Could you expand on what you mean by a hook function?

When you get a client side error, you pass information to a function that will indicate what the error is and the field it is associated with. This function will then manipulate the HTML to give you the effect you want (new class, change in the tabbing, etc...). Maybe this doesn't quite work with Dojo, I don't know.

Yes, Dojo does work like this.
Dojo-supplied fields that may either be required or have validation rules have built-in ways to display this status.

Either via Dojo's built-in i18n, or via attributes : @promptMessage and @errorMessage. Both of which could be populated with i18n strings from Cocoon.




That still sounds rather messy and sounds like a duplication of effort. Also (if the application is fast), it would lead to some bad UI if some of the validation is done client side some server side.

Now, if validation were rewritten in such a way that the hook functions were called for even server side validation errors, it might provide a rather neat way of getting around some of the problems that Ajax CForms throw up as well as reducing duplication. I really wish I had a better understanding of Dojo so I could fix up some of the issues related to validation and Ajax.


ATM however, no validation information is output by the form generation process. Datatypes are there (which I can initially use) but no validation.

So my question is, would someone volunteer to either add the definition's validation tags to the output or help work out the cleanest approach to adding it?

Thanks

regards Jeremy


Reply via email to