[Seaside] Named PTAjax calls

Johan Brichau johan at inceptive.be
Thu Dec 19 00:07:41 UTC 2013


The Javascript wrappers in Seaside (JSObject subclasses) provide a number of convenience methods to achieve this.
For example:

html script: ((html jQuery ajax callback:[ ]) asFunction assignTo: 'myfunction').

Then just call myfunction() from your javascripts.

cheers
Johan

On 19 Dec 2013, at 00:25, Bob Arning <arning315 at comcast.net> wrote:

> 
> On 12/18/13 6:09 PM, Aaron Rosenzweig wrote:
>> Hi Bob,
>> 
>> Ahh ok. It took me a while to wrap my head around it but that’s clever.
>> 
>> Basically you declared the “action” variable and then assigned it an Ajax object.
> Right - that assignment predated your request. I did that so I could use the same code for both the onClick: and the onEnter:. It used to read "onClick: action" and "onEnter: action". Similar to what you were wanting to do - use the same callback in a number of places.
>> Though I don’t understand the underscores in the syntax.
> old-school assignment (equivalent to colon-equal)
>> 
>> Then, in the end, you make a javascript function and pass in the “action” variable’s guts but giving it the “greaseString” message.
>> 
>> Thank you Bob - you were the only one to respond. I appreciate it! :-)
>> AARON ROSENZWEIG / Chat 'n Bike
>> e:  aaron at chatnbike.com  t:  (301) 956-2319                 
>> 	
>> On Dec 17, 2013, at 6:24 AM, Bob Arning <arning315 at comcast.net> wrote:
>> 
>>> I certainly won't say this is the right way, but it seems to work:
>>> 
>>> renderGlobalSearchOn: html
>>> 
>>>     | inputId action |
>>>     
>>>     inputId _ html nextId.
>>>     action _ html jQuery ajax 
>>>         callback: [ :v2 | 
>>>             filterString _ v2.
>>>             selections _ Dictionary new.
>>>             visibleChunks _ #().
>>>         ] 
>>>         value: (html jQuery id: inputId) value;
>>> 
>>>         script: self scriptForGlobalSearch.
>>>             
>>>     html script: 'function foobar27(){',action greaseString,'}'.
>>>     
>>>     html div: [
>>>         html button
>>>             value: 'Search:';
>>>             onClick: 'foobar27()';
>>>             yourself.
>>>         html textInput
>>>             id: inputId;
>>>             value: filterString;
>>>             onEnter: 'foobar27()'.
>>>     ].
>>> 
>>> 
>>> Cheers,
>>> Bob
>>> 
>>> On 12/16/13 8:25 PM, Aaron Rosenzweig wrote:
>>>> Oh c’mon, no takers?
>>>> 
>>>> Nobody has faced this before?
>>>> 
>>>> I can’t believe something so easy in WebObjects is so hard in Seaside. (Ok, that was below the belt). 
>>>> 
>>>> In WO, all I have to do is drop an “AjaxWOSubmitButton” component on the page and then bind the “functionName” binding. I can immediately call that name in Javascript from the client side and anything in the “action” binding is performed and all the form bindings are synchronized. 
>>>> 
>>>> Thanks,
>>>> AARON ROSENZWEIG / Chat 'n Bike
>>>> e:  aaron at chatnbike.com  t:  (301) 956-2319 
>>>> 	
>>>> On Dec 15, 2013, at 9:50 AM, Aaron Rosenzweig <aaron at cocoanutstech.com> wrote:
>>>> 
>>>>> Hello,
>>>>> 
>>>>> Is there a way to “name” a PTAjax callback so that it can be conveniently invoked from javascript?
>>>>> 
>>>>> Situation:
>>>>> Want to effectively have a submit button (or hyperlink) on the page with an on click Updater callback… then from something programmatically on the page… *click* that link.
>>>>> 
>>>>> Problems:
>>>>> 1) Having a hidden button or link to click is not elegant (I feel dirty)
>>>>> 
>>>>> 2) It doesn’t always work. For various reasons, doing a domElement.click() is not the same as a human hand doing a click because it doesn’t generate a full mouse click event.
>>>>> 
>>>>> Thought:
>>>>> There must be a way to setup the following:
>>>>> A) Create a PTAjax object with a name that is a global javascript variable on the client side (web browser)
>>>>> 
>>>>> B) You would provide the “javascript function name” a “seaside callback” a “HTML form ID or form name” so that synchronization of form variables can take place and finally an “update container ID”
>>>>> 
>>>>> C) You could just invoke it from your javascript code and know that it will safely update the server.
>>>>> 
>>>>> Does this make sense?
>>>>> AARON ROSENZWEIG / Chat 'n Bike
>>>>> e:  aaron at chatnbike.com  t:  (301) 956-2319 
>>>>> 	
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> seaside mailing list
>>>> 
>>>> seaside at lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>> 
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> 
> 
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list