This may break the record for fastest derived work ever :) Your code
looks really good. Let me know if/when you have some example together
so I can compare implementations.

On Sep 24, 12:25 pm, Thadeus Burgess <thadeus.burg...@gmail.com>
wrote:
> Solved the problem. You give every function a uuid.
>
> I spend last night and wrote my own module based off of yours.
>
> Here is the lastest version of the code:http://pastebin.com/m570fe50a
>
> It is a bit more involved to set up than your clienttools, however it uses
> polymorphism and interfaces (I never thought I would say that outside of
> college haha).
>
> Obviously, this allows scripts to extend other scripts, to provide more
> functionality. This also allows scripts, to call other scripts, either by
> their function name (if they are a function) or by including their xml
> representation directly.
>
> Every script can be assigned a UUID, which allows you for multiple events on
> the same object.
>
> Every Script objects have the def xml(): so that they can be called directly
> from the template without the need for a manager class, so that they can be
> returned from ajax.
>
> Scripts can also have global javascript variables, based off their name and
> assigned uuid. For example, a Timer() will create a javascript variable such
> as "interval_uuid_timerid", this allows for the timer to be accessed by a
> StopTimer() script, so that it can stop the timer, even from ajax, without
> having to write any javascript :)
>
> -Thadeus
>
> On Wed, Sep 23, 2009 at 6:07 PM, mr.freeze <nat...@freezable.com> wrote:
>
> > Not sure if it's a best practice, but you could do a separate client
> > handler and server handler to get a Please Wait effect:
>
> > d = DIV("Click Me",_id="clickme")
> > event.listen("click", d, "jQuery('#clickme').html('Please Wait...');")
> > event.listen("click",d, handle_it, d)
>
> > def handle_it():
> >    return "Done!"
>
> > On Sep 23, 5:37 pm, Thadeus Burgess <thadeus.burg...@gmail.com> wrote:
> > > Yes it would.
>
> > > But would you ever place the same event on two different callbacks?
>
> > > -Thadeus
>
> > > On Wed, Sep 23, 2009 at 12:18 PM, mr.freeze <nat...@freezable.com>
> > wrote:
>
> > > > I get it now. I like the idea but I'm worried it will break multiple
> > > > subscriptions. Currently you can do:
>
> > > > d = DIV("clickme",_id="clickme")
> > > > event.listen("click",d,"alert('hello');")
> > > > event.listen("click",d,"alert('hello again');")
>
> > > > Wouldn't this create two functions with the same name?
>
> > > > On Sep 23, 11:39 am, Thadeus Burgess <thadeus.burg...@gmail.com>
> > > > wrote:
> > > > > Yeah, Like put the jQuery commands in their own little function.
>
> > > > > So instead of
>
> > > > > function page_onready(){
> > > > > jQuery().click(blahblah);
> > > > > jQuery().change(blahblah);}
>
> > > > > jQuery().page_onready();
>
> > > > > It will become
>
> > > > > function my_div__click(){
> > > > >         jQuery.click(blahblah);}
>
> > > > > function my_input__change(){
> > > > >         jQuery.change(blahblah);}
>
> > > > > function page_onready(){
> > > > > my_div__click()
> > > > > my_input__change()}
>
> > > > > jquery().page_onready();
>
> > > > > Hope that helps clear up what I ment.
>
> > > > > I'm not sure of any big advantage except it helps make it more
> > organized.
> > > > > That and it would make using the legacy rebinding easier.
>
> > > > > -Thadeus
>
> > > > > On Wed, Sep 23, 2009 at 11:28 AM, mr.freeze <nat...@freezable.com>
> > > > wrote:
>
> > > > > > I think I missed your point.  Let me take a closer look.
>
> > > > > > On Sep 23, 11:22 am, "mr.freeze" <nat...@freezable.com> wrote:
> > > > > > > I actually realized that last night and refactored everything.
> >  Can
> > > > > > > you check out the latest version and see if it does what you
> > want?
>
> > > > > > > On Sep 23, 11:14 am, Thadeus Burgess <thadeus.burg...@gmail.com>
> > > > > > > wrote:
>
> > > > > > > > What about grouping the actions in individual functions, that
> > way
> > > > > > calling
> > > > > > > > these functions from returned jQuery commands, or from other
> > > > JavaScript
> > > > > > > > would make it easier! (also if you needed to support a legacy
> > > > version
> > > > > > of
> > > > > > > > jQuery for add-on compatibility, you could use it for rebinding
> > > > much
> > > > > > easier.
>
> > > > > > > > This includes example output of what I'm talking about, and
> > code to
> > > > > > make
> > > > > > > > that happen, note this doesn't include your recent additions
> > Nathan
> > > > > > (live or
> > > > > > > > args)
>
> > > > > > > >http://pastebin.com/m70de2cc0
>
> > > > > > > > -Thadeus
>
> > > > > > > > On Tue, Sep 22, 2009 at 8:53 PM, mr.freeze <
> > nat...@freezable.com>
> > > > > > wrote:
>
> > > > > > > > > As promised, I have added some new examples.  I have also
> > added
> > > > > > > > > several new things to the module:
>
> > > > > > > > > ScriptManager - a collection of reusable scripts that include
> > (so
> > > > > > > > > far):
> > > > > > > > >    1) call_server (generates the script for an ajax callback)
> > > > > > > > >    2) alert and confirm  (exactly what you think)
> > > > > > > > >    3) delay (setTimeout)
> > > > > > > > >    4) timer (setInterval)
> > > > > > > > >    5) stop_timer (clearTimeout)
>
> > > > > > > > > *experimental*
> > > > > > > > > JQuery - helper to generate jQuery script string from Python
> > (to
> > > > > > > > > reduce nested quotes):
> > > > > > > > >    JQuery("#servertime").css("color","red")() # produces
> > 'jQuery
> > > > > > > > > ("#servertime").css("color", "red");'
>
> > > > > > > > > You can check out examples here:
> > > > > > > > >http://www.web2pyslices.com/main/slices/take_slice/8
>
> > > > > > > > > The timer example is the most interesting I think.  Enjoy
> > and, as
> > > > > > > > > always, feedback is welcome.
>
> > > > > > > > > On Sep 20, 6:57 am, Iceberg <iceb...@21cn.com> wrote:
> > > > > > > > > > On Sep20, 2:14am, "mr.freeze" <nat...@freezable.com>
> > wrote:
>
> > > > > > > > > > > Hi folks,
>
> > > > > > > > > > >     I just wanted to share a module that I'm working on
> > for a
> > > > > > > > > > > project.  It containstoolsfor managingclientevents and
> > > > resources
> > > > > > > > > > > from the server.  Here are the main features:
>
> > > > > > > > > > > 1) Dynamic inclusion and downloading of resources
> > > > (scripts/css).
> > > > > > > > > > > 2) Server side event handling forclientside events.
> > > > > > > > > > > 3) Dynamic execution of script from the controller.
> > (through
> > > > > > > > > > > document.ready injection)
> > > > > > > > > > > 4) Helpers for google hosted ajax APIs.
>
> > > > > > > > > > > You can see instructions and examples here:
>
> > > > > > > > > > >http://www.web2pyslices.com/main/slices/take_slice/8
>
> > > > > > > > > > > It's definitely a work in progress, but let me know what
> > you
> > > > > > think.
>
> > > > > > > > > > > -Nathan
>
> > > > > > > > > > After trying to implement your 4 examples in a "normal"
> > way,
> > > > which
> > > > > > > > > > turns out to be tricky or even difficult (especially in the
> > > > last
> > > > > > two
> > > > > > > > > > cases), I am convinced that thisclienttoolshave its great
> > > > value!
> > > > > > > > > > Well done, Nathan!
>
> > > > > > > > > > This stuff looks cool. Would you please give some more
> > example
> > > > (in
> > > > > > > > > > your slice site) to demonstrate what mission this tool
> > performs
> > > > > > easier
> > > > > > > > > > than otherwise?
>
> > > > > > > > > > I don't mean this stuff is not good. I just have poor
> > > > imagination
> > > > > > and
> > > > > > > > > > sorry for that. :-)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to