The mere existance of a rjs file shouldnt cause the layout to disappear. Made...

The mere existance of a rjs file shouldnt cause the layout to disappear. Made it easier to specify a :with on observer_field

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3858 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 c07c48d1
......@@ -1003,7 +1003,9 @@ def template_public?(template_name = default_template_name)
end
def template_exempt_from_layout?(template_name = default_template_name)
@template.javascript_template_exists?(template_name)
@template.pick_template_extension(template_name).to_sym == :rjs
rescue
false
end
def assert_existance_of_template_file(template_name)
......
......@@ -331,7 +331,11 @@ def remote_function(options)
# <tt>:with</tt>:: A JavaScript expression specifying the
# parameters for the XMLHttpRequest. This defaults
# to 'value', which in the evaluated context
# refers to the new field value.
# refers to the new field value. If you specify a
# string without a "=", it'll be extended to mean
# the form key that the value should be assigned to.
# So :with => "term" gives "'term'=value". If a "=" is
# present, no extension will happen.
# <tt>:on</tt>:: Specifies which event handler to observe. By default,
# it's set to "changed" for text fields and areas and
# "click" for radio buttons and checkboxes. With this,
......@@ -692,7 +696,12 @@ def method_option_to_s(method)
end
def build_observer(klass, name, options = {})
options[:with] ||= 'value' if options[:update]
if options[:with] && !options[:with].include?("=")
options[:with] = "'#{options[:with]}=' + value"
else
options[:with] ||= 'value' if options[:update]
end
callback = remote_function(options)
javascript = "new #{klass}('#{name}', "
javascript << "#{options[:frequency]}, " if options[:frequency]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册