Hi Markus :-)

Glad that worked out for you. I think there is an AjaxExamples project in 
WOnder which is an app you can run and see a few things. 

You pick up on things after toiling with it for a while. 


> On Jun 26, 2024, at 7:34 AM, mailinglists <mailingli...@kataputt.com> wrote:
> 
> Thanks Aaron, works perfectly. 
> 
> Other than looking at the code how would one discover what AjaxHyperlink and 
> friends can do? The documentation / JavaDoc is not very revealing.
> 
> ---markus---
> 
>> On 23 Jun 2024, at 17:43, Aaron Rosenzweig <aa...@chatnbike.com> wrote:
>> 
>> Hi Markus, 
>> 
>> To use <details><summary> like you envision you need to add some 
>> scaffolding. 
>> 
>> Realize that the ajax link and the ajax submit button can be given a named 
>> function. When you do that, they don’t render, put provide a name you can 
>> call on the client side that will do a round trip to the server. So you need 
>> to consider if you have a form (or not) and if you want to synchronize 
>> bindings (or not) to choose between them. But let’s assume you just want a 
>> “click” without form values going across. You’ll need to place an element 
>> like this near your <details><summary>:
>> 
>> <wo:AjaxHyperlink functionName = "$toggleFunctionName" action = "$toggle” />
>> 
>> Bindings could be implemented like so:
>> 
>> public String toggleFunctionName() {
>>   if (StringUtils.isBlank(_toggleFunctionName)) {
>>       _toggleFunctionName = "details_summary_" + 
>> ERXWOContext.safeIdentifierName(context(), true /*willCache*/);
>>   }
>>   return _toggleFunctionName;
>> }
>> 
>> public WOActionResults toggle() {
>>   setIsOpen( ! isOpen());
>>   return null;
>> }
>> 
>> 
>> Then you’ll need to build your summary tag as a container element and listen 
>> to click events like so:
>> 
>> <wo:genericContainer elementName = "summary" onclick = "$onclickJavascript”>
>>      Summary text
>> </wo:genericContainer>
>> 
>> The click text could be:
>> 
>> public String onclickJavascript(){
>>   String code = toggleFunctionName() + "(); return true;";
>>   return code;
>> }
>> 
>> Or if there is a lot of complex stuff going on and race conditions with JS 
>> events maybe you need a hack to invoke Ajax on a delay
>> public String onclickJavascript(){
>>   String code = "setTimeout(" + toggleFunctionName() + ", 500); return 
>> true;";
>>   return code;
>> }
>> 
>> Notice that there is no update container specified on the AjaxHyperlink. 
>> That’s because you don’t need to refresh anything, you only need to tell the 
>> server the state of open/close. 
>> 
>> 
>>> On Jun 23, 2024, at 7:28 AM, mailinglists via Webobjects-dev 
>>> <webobjects-dev@lists.apple.com> wrote:
>>> 
>>> Anyone using this component? It has bindings that seem not to be used.  
>>> Does this work at all? I cannot make sense of it.
>>> 
>>> Alternatively has anyone made proper use of the html construct 
>>> <details><summary>? It works nicely but I cannot preserve “open” state when 
>>> updating an enclosing container because I have not found a way to call back 
>>> into the server when the summary is clicked to open/close. This action is 
>>> pure client side performed by the browser itself. Any way to tap into it?
>>> 
>>> Any other usable component around for such a hide/reveal functionality?
>>> 
>>> Thanks for your ideas
>>> ---markus---
>>> 
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/aaron%40chatnbike.com
>>> 
>>> This email sent to aa...@chatnbike.com
>> 
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to