Take a look at the formtool components in core (/packages/formtools). All validation functions accept the same arguments and should return the same results as the ones those components have.
Blair On Wed, Aug 21, 2013 at 9:18 AM, Xiaofeng Liu <[email protected]>wrote: > Does anyone have an idea how exactly ftValidate*PropertyName* method work? > > I'm just wondering did I miss any steps to get the validation error > displayed within the webtop or is this a bug in FarCry? > > Any thoughts would be much appreciated. > > > > On Tue, Aug 20, 2013 at 3:02 PM, Xiaofeng Liu > <[email protected]>wrote: > >> Hi Chris, >> >> Thanks for pointing to the use of form tools validation methods. However, >> how would I get the error message displayed on my custom type edit form? >> >> I have the property set to: >> >> <cfproperty ftseq="50" ftFieldSet="Login" type="string" >> ftLabel="Username" name="username" ftType="string" ftValidation="required" >> bLabel="true"> >> >> Then I have my validation method as: >> >> <cffunction name="ftValidateUsername" access="public" output="true" >> returntype="struct" hint="This will return a struct with bSuccess and >> stError"> >> <cfargument name="objectid" required="true" type="string" hint="The >> objectid of the object that this field is part of."> >> <cfargument name="typename" required="true" type="string" hint="The >> name of the type that this field is part of."> >> <cfargument name="stFieldPost" required="true" type="struct" hint="The >> fields that are relevent to this field type."> >> <cfargument name="stMetadata" required="true" type="struct" hint="This >> is the metadata that is either setup as part of the type.cfc or overridden >> when calling ft:object by using the stMetadata argument."> >> <cfset var stResult = structNew()> >> <cfset var qDuplicate = queryNew("blah")> >> <cfset stResult = createObject("component", >> application.formtools["field"].packagePath).passed(value=stFieldPost.Value) >> /> >> <!--- --------------------------- ---> >> <!--- Perform any validation here ---> >> <!--- --------------------------- ---> >> <cfquery datasource="#application.dsn#" name="qDuplicate"> >> SELECT objectid from userProfile >> WHERE upper(username) = '#ucase(stFieldPost.Value)#' >> </cfquery> >> <cfif qDuplicate.RecordCount> >> <!--- DUPLICATE USERNAME ---> >> <cfset stResult = createObject("component", >> application.formtools["field"].packagePath).failed(value="#arguments.stFieldPost.value#", >> message="The username you have selected is already taken.") /> >> <!--- <cfdump var="#stResult#"><cfabort> ---> >> </cfif> >> <!--- ----------------- ---> >> <!--- Return the Result ---> >> <!--- ----------------- ---> >> <cfreturn stResult> >> </cffunction> >> >> If I dump out the stResult, I can see ftValidateUsername is invoked and >> it correctly detected the duplicates and set the error message: >> >> struct BSUCCESS false STERROR struct CLASS validation-advice MESSAGE The >> username you have selected is already taken. VALUE flyingturtle123 >> >> However, without abort execution, it still saved the record and not >> displaying the validation message anywhere. >> >> Am I missing sth here? >> >> >> >> >> On Mon, Aug 19, 2013 at 6:42 PM, Chris Kent <[email protected]> wrote: >> >>> You would probably be better off using a validate method inside your >>> content type. you can set these to validate individual properties. Default >>> is to name the function "ftValidate+propertyname", e.g. ftValidateUserID >>> >>> Look at ftValidateUserID in /core/packages/types/farUser.cfc for an >>> example to check for unique userID. >>> >>> Chris >>> >>> >>> On Monday, 19 August 2013 09:02:46 UTC+1, Xiaofeng Liu wrote: >>>> >>>> Hi, >>>> >>>> Within webtop on a custom type, if I'd like to use beforeSave() to >>>> check, for example the uniqueness of username before my type record gets >>>> saved, how do I bring back that validation message to display on the farcry >>>> scaffolded list view or maybe the add/edit view? >>>> >>>> -- >>>> Best regards, >>>> >>>> Xiaofeng >>>> >>> -- >>> You received this message cos you are subscribed to "farcry-dev" Google >>> group. >>> To post, email: [email protected] >>> To unsubscribe, email: [email protected] >>> For more options: http://groups.google.com/group/farcry-dev >>> -------------------------------- >>> Follow us on Twitter: http://twitter.com/farcry >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "farcry-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> >> >> -- >> Best regards, >> >> Xiaofeng,^_^ >> > > > > -- > Best regards, > > Xiaofeng,^_^ > > -- > You received this message cos you are subscribed to "farcry-dev" Google > group. > To post, email: [email protected] > To unsubscribe, email: [email protected] > For more options: http://groups.google.com/group/farcry-dev > -------------------------------- > Follow us on Twitter: http://twitter.com/farcry > --- > You received this message because you are subscribed to the Google Groups > "farcry-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message cos you are subscribed to "farcry-dev" Google group. To post, email: [email protected] To unsubscribe, email: [email protected] For more options: http://groups.google.com/group/farcry-dev -------------------------------- Follow us on Twitter: http://twitter.com/farcry --- You received this message because you are subscribed to the Google Groups "farcry-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
