| 1 |  | (This is related to #1262, which is not a bug, so, it should be a wiki entry. However, I can't attach files because Akismet thinks I'm a spammer. Someone please attach here the file that's attached to #1262). | 
          
            | 2 |  |  | 
          
            | 3 |  | === What is it? === | 
          
            | 4 |  |  | 
          
            | 5 |  |     * Attached is an adaptation of the port of RoR's JavascriptHelpers (http://pylonshq.com/project/pylons/browser/RailsHelpers) by Ben Bangert to Django tag library.  | 
          
            | 6 |  |  | 
          
            | 7 |  |     * It also includes port of Eugene's LiveFilter?(dojo) to prototype (DelayedObserver in observer.js).  | 
          
            | 8 |  |  | 
          
            | 9 |  | === Usage === | 
          
            | 10 |  |  | 
          
            | 11 |  | {{{ | 
          
            | 12 |  | {% rails function_name (arg1,arg2,kwarg1=3,...) %} | 
          
            | 13 |  |  | 
          
            | 14 |  |         or | 
          
            | 15 |  |      | 
          
            | 16 |  | {% rails function_name %} | 
          
            | 17 |  | arg1,arg2, | 
          
            | 18 |  | arg3, | 
          
            | 19 |  | kwarg1=value1, | 
          
            | 20 |  | kwarg2=value2, | 
          
            | 21 |  |  ... | 
          
            | 22 |  | {% endrails %} | 
          
            | 23 |  | }}} | 
          
            | 24 |  |  | 
          
            | 25 |  | === Usage Examples === | 
          
            | 26 |  |  | 
          
            | 27 |  | {{{ | 
          
            | 28 |  | {% load railshelper %} | 
          
            | 29 |  |  | 
          
            | 30 |  | {% rails link_to_function ("Greeing", "alert('Hello World')") %} | 
          
            | 31 |  |  | 
          
            | 32 |  | {% rails link_to_remote %} | 
          
            | 33 |  | "Delete this post",  | 
          
            | 34 |  | {'update':"posts",'url':"./destroy"} | 
          
            | 35 |  | {% endrails %} | 
          
            | 36 |  |  | 
          
            | 37 |  | {% rails observe_form %} | 
          
            | 38 |  | "searchform", | 
          
            | 39 |  | url='?format=ahah',  | 
          
            | 40 |  | update='results', | 
          
            | 41 |  | delay=0.3, | 
          
            | 42 |  | method='get', | 
          
            | 43 |  | complete="SEL.setup('product_list');", | 
          
            | 44 |  | {% endrails %} | 
          
            | 45 |  | }}} | 
          
            | 46 |  |  | 
          
            | 47 |  | === Issues === | 
          
            | 48 |  |  | 
          
            | 49 |  |     * Used exec to do the parameter parsing. So people may not like it, but this was the quickest way I could think of. External parameter is exec-ed only within a function argument: | 
          
            | 50 |  |  | 
          
            | 51 |  | {{{ | 
          
            | 52 |  |       def argparser(*args, **kws): | 
          
            | 53 |  |           return args, kws | 
          
            | 54 |  |       exec("args, kws=argparser("+param+")") | 
          
            | 55 |  | }}} | 
          
            | 56 |  |  | 
          
            | 57 |  |       I could not think of any malicious thing to do in function argument but probably there are many. Please let me know.  | 
          
            | 58 |  |  | 
          
            | 59 |  |     * Easily modifiable to render passed parameter as django template.  | 
          
            | 60 |  |     * Tested only "link_to_remote", "observe_form" in real web browser (IE, FF, Opera).  |