﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
1262	[Tag Library] RailsHelpers	Louis	Adrian Holovaty	"= What is it? =
 * 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.

 * It also includes ''port'' of Eugene's LiveFilter(dojo) to prototype (!DelayedObserver in observer.js).

= Usage =
{{{
{% rails function_name (arg1,arg2,kwarg1=3,...) %}

        or
    
{% rails function_name %}
arg1,arg2,
arg3,
kwarg1=value1,
kwarg2=value2,
 ...
{% endrails %}

}}}

== Usage Examples ==
{{{
{% load railshelper %}

{% rails link_to_function (""Greeing"", ""alert('Hello World')"") %}

{% rails link_to_remote %}
""Delete this post"", 
{'update':""posts"",'url':""./destroy""}
{% endrails %}

{% rails observe_form %}
""searchform"",
url='?format=ahah', 
update='results',
delay=0.3,
method='get',
complete=""SEL.setup('product_list');"",
{% endrails %}
}}}

= Issues =
 * 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:
{{{
def argparser(*args, **kws):
    return args, kws
exec(""args, kws=argparser(""+param+"")"")
}}}
   I could not think of any ''malicious'' thing to do in function argument but probably there are many. Please let me know.

 * Easily modifiable to render passed parameter as django template. 

 * Tested only ""link_to_remote"", ""observe_form"" in real web browser (IE, FF, Opera).
"	enhancement	closed	Template system		normal	invalid			Unreviewed	0	0	0	0	0	0
