Haha. That's the one.

On Tue, Feb 3, 2009 at 9:30 AM, nicholas sollecito
<[email protected]>wrote:

> Hi Blaire,
>
> Is this the ticket you're referring to?
> http://bugs.farcrycms.org/browse/FC-1737
>
> Looks like it has been resolved already... wouldn't you know, the very day
> I downloaded the 5.1 install :-P
>
> Thanks again,
> -Nick
>
>
>
> On Feb 2, 2009, at 5:23 PM, Blair McKenzie wrote:
>
> @Tomek Yes, you could do that. Its simple to create a formtool edit handler
> that outputs different html depending on the values in arguments.stObject.
> ftWatch is basically just a way of AJAXifying that dependency.
>
> @nicholas No, no - thank you! I completely forgot to add it to the wizard
> version. I think there's a ticket for that issue now - could you attach your
> updated file to the ticket so we can include it in the 5.1 release?
>
>
> On Tue, Feb 3, 2009 at 4:07 AM, nicholas sollecito <[email protected]
> > wrote:
>
>> Ok, I think I'm finally getting somewhere with this. No matter what I
>> tried, I couldn't get any of the Ajax functions for the dependent selects to
>> be generated in my Edit form.
>> So, using the sample cfproperty definitions for Country/State from the
>> wiki, I created a dummy custom type to get an idea of what mine was missing.
>> I noticed the javascript listener was being generated for Country/State, but
>> not for my custom type. I realized the reason for this is that I have a
>> mult-step wizard, so the tag library being used to do the formtools magic is
>> in farcry/core/tags/wizard. So, instead of ft:object being called where
>> addWatch() is executed, wiz:object was being called, where there is no
>> reference to addWatch and therefore, none of the Ajax goodness was
>> included.
>>
>> I simply copied the addWatch call
>> from farcry/core/tags/formtools/object.cfm (line @452)
>> to farcry/core/tags/wizard/object.cfm (line @387) and I'm now getting the
>> proper javascript listeners as well as dynamic select functionality added
>> in. Still need to refine to grab the level of categories I need, but this
>> MAJOR piece of the puzzle is now in place to help me finish this up..
>>
>> Now, this has resulted in me having to make a change to the actual core
>> farcry tag files which I understand is not ideal... How do I ensure that
>> this change makes it into the core source (or, if there is a reason it's not
>> there already, how do I maintain my version of it?).
>>
>> Thanks again for your help.
>>
>>
>>
>> On Feb 1, 2009, at 10:52 PM, Blair McKenzie wrote:
>>
>> ftAlias is used by category.cfc (and your own formtool) to specify which
>> category branch to use. It looks for the specified alias (obviously). This
>> part of the edit function needs to be changed so that instead of looking for
>> the branch named with ftAlias, it looks for the branch specified in
>> arguments.stObject[arguments.stMetadata.ftPrimaryCategory] (I think) which
>> will be the uuid of the parent category.
>>
>> It looks like you will have to create a primarycategory formtool as well
>> if you want a single level list. To retrieve a single level inside the
>> formtool use
>> application.factory.oTree.getChildren(objectid=parentid)
>> instead of the original
>> oCategory.getCategoryBranchAsList(lCategoryIDs=rootID)
>> This will return a query of objectid,objectname instead of a list of
>> objectid.
>>
>> The default ajax stuff is added with the ft:object tag. It basically adds
>> events to the watched fields. If those other fields change, the dependent
>> field is ajax'd in. Basically the edit function gets called with the new
>> watched values passed in. You can see an example of this at work with the
>> country and state formtools. Neither of them mention ajax, and both work
>> without it. But if you add ftWatch="countryproperty" to the state property
>> the state list starts automagically switching when the country is changed.
>>
>> On Mon, Feb 2, 2009 at 2:33 PM, nicholas sollecito <
>> [email protected]> wrote:
>>
>>> Ok, so I've followed most of your directions, but I think I'm still
>>> missing something. Here's what I've done so far...
>>>
>>> I've set up the cfproperty for the primary category select as
>>> instructed.
>>>
>>> For the secondary category, I've taken the "reusable sub-categorisation"
>>> approach. I've successfully created the secondaryCategory.cfc which extends
>>> farcry.core.packages.formtools.category. I've copied the edit() method and
>>> was able to verify through cfdebugging that this is being used for rendering
>>> the secondary category property.
>>>
>>> Now, here's where I'm confused. First, I've added the ftPrimaryCategory
>>> key to the param'd metadata.
>>>
>>> Next, when you say "Set ftAlias to the value of that attribute" I'm not
>>> sure exactly where you are referring to. By ftAlias, do you mean the other
>>> metadata params in the edit method (as in arguments.metadata.ftAlias)? Or,
>>> is this the ftAlias attribute in the cfproperty for the secondary category
>>> definition? I've added ftWatch to the cfproperty with the name of the
>>> primary dropdown property.
>>>
>>> Also, this may or may not have anything to do with anything, but...
>>> I've been digging through the formtools code as well as the wiki to try
>>> and figure this out on my own, but I don't seem to really be getting
>>> anywhere... It looks like the ajax dependency selects is implemented via
>>> farcry.core.packages.formtools.field.addWatch(). So, I searched all the
>>> files to see where addWatch() is being called. Other than a recursive call
>>> in the method itself, it looks like it's being called only from the
>>> object.cfm formtools tag. I set up a trace to see how this was being called
>>> from my custom type and it doesn't appear anywhere. I checked some other
>>> types and see that it is being called (except from News, which my type is
>>> based upon). Wonder if this could be one reason why I'm having problems?
>>>
>>> Also, I'm looking to just grab just one level of categories.
>>> Currently, based on the structure below, if I set ftAlias="content" the
>>> dropdown contains all categories below it. I would like to just get the
>>> items at the first level beneath "Content". Once a primary is selected, my
>>> secondary category dropdown would then be populated with the level 3
>>> categories.
>>>
>>> root
>>> - Content
>>> -- Magazine Title 1 (primary)
>>> --- Column 1 (secondary)
>>> --- Column 2
>>> ...
>>> -- Magazine Title 2
>>> --- Column 3
>>> --- Column 4
>>> ...
>>>
>>>
>>> Anyway, I hope this is clear. Thank you so much for helping with this,
>>> I'm pretty new to FarCry but so far I'm very impressed with the potential
>>>
>>> -Nick
>>>
>>>
>>> On Feb 1, 2009, at 5:47 PM, Blair McKenzie wrote:
>>>
>>> You can have the first item by using ftType="category",
>>> ftAlias="parentcategoryalias" and ftRenderType="dropdown" (I think).
>>>
>>> For the second one, you will probably need to write a custom formtool
>>> code.
>>>
>>> Two approaches.
>>>
>>> ONCE OFF CUSTOMISATION
>>> 1) Add a function named like ftEditYourSecondaryProperty to the custom
>>> type. Open up core/packages/formtools/category.cfc and copy the arguments
>>> and code from the edit function into yours.
>>> 2) Look for where ftAlias is param'd / used, and change the code so that
>>> the value of the primary property is used instead
>>> 3) In the cfproperty definition, add ftWatch="primarypropertyname". This
>>> will add ajax to the form that updates the field when the primary property
>>> changes.
>>>
>>> REUSABLE SUB-CATEGORISATION
>>> 1) Extend formtools/category.cfc in your project to secondarycategory.cfc
>>> (or whatever)
>>> 2) Copy the edit function from category.cfc to your formtool
>>> 3) Param another metadata attribute ftPrimaryCategory. Set ftAlias to the
>>> value of that attribute.
>>> 4) In the cfproperty definition, set ftType="secondarycategory"
>>> 5) Add ftWatch="primarypropertyname". This will add ajax to the form that
>>> updates the field when the primary property changes.
>>>
>>> On Mon, Feb 2, 2009 at 12:07 AM, nicholas sollecito <
>>> [email protected]> wrote:
>>>
>>>> 5.1
>>>>
>>>>
>>>> On Jan 31, 2009, at 11:23 PM, Blair McKenzie <[email protected]> wrote:
>>>>
>>>>  What version of FarCry are you using?
>>>>
>>>> On Sun, Feb 1, 2009 at 10:34 AM, Nick S. < <[email protected]>
>>>> [email protected]> wrote:
>>>>
>>>>>
>>>>> I have a custom Article content type. I would like to use the built-in
>>>>> categorization in FarCry as a way to apply a Category and sub-category
>>>>> to the content. Is there a way to implement a dependent select so that
>>>>> the user must first a Category from a drop-down and then a separate
>>>>> list box will be populated with the sub-categories to select from?
>>>>>
>>>>> I'm currently using form tools and I'm not sure how to further
>>>>> customize the form to allow for this type of interaction. Let me know
>>>>> if this is a possibility, I can't seem to find this functionality
>>>>> either in the wiki or mailing list.
>>>>>
>>>>> Thanks in advance,
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"farcry-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/farcry-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to