2018-12-03 12:07:05 -05:00
* Fix UJS permanently showing disabled text in a[data-remote][data-disable-with] elements within forms.
Fixes #33889
*Wolfgang Hobmaier*
2018-11-29 19:26:22 -05:00
* Prevent non-primary mouse keys from triggering Rails UJS click handlers.
Firefox fires click events even if the click was triggered by non-primary mouse keys such as right- or scroll-wheel-clicks.
For example, right-clicking a link such as the one described below (with an underlying ajax request registered on click) should not cause that request to occur.
```
< %= link_to 'Remote', remote_path, class: 'remote', remote: true, data: { type: :json } %>
```
Fixes #34541
*Wolfgang Hobmaier*
2018-11-19 17:16:34 -05:00
* Prevent `ActionView::TextHelper#word_wrap` from unexpectedly stripping white space from the _left_ side of lines.
For example, given input like this:
```
This is a paragraph with an initial indent,
followed by additional lines that are not indented,
and finally terminated with a blockquote:
"A pithy saying"
```
Calling `word_wrap` should not trim the indents on the first and last lines.
Fixes #34487
*Lyle Mullican*
2018-10-09 14:08:25 -04:00
* Add allocations to template rendering instrumentation.
Adds the allocations for template and partial rendering to the server output on render.
```
Rendered posts/_form.html.erb (Duration: 7.1ms | Allocations: 6004)
Rendered posts/new.html.erb within layouts/application (Duration: 8.3ms | Allocations: 6654)
Completed 200 OK in 858ms (Views: 848.4ms | ActiveRecord: 0.4ms | Allocations: 1539564)
```
*Eileen M. Uchitelle* , *Aaron Patterson*
2018-06-27 19:17:10 -04:00
* Respect the `only_path` option passed to `url_for` when the options are passed in as an array
2018-10-31 23:42:06 -04:00
2018-06-27 19:17:10 -04:00
Fixes #33237 .
*Joel Ambass*
2018-08-22 10:09:07 -04:00
* Deprecate calling private model methods from view helpers.
2018-08-07 11:23:57 -04:00
2018-08-22 10:09:07 -04:00
For example, in methods like `options_from_collection_for_select`
and `collection_select` it is possible to call private methods from
the objects used.
2018-08-07 11:23:57 -04:00
2018-08-22 10:09:07 -04:00
Fixes #33546 .
2018-08-07 11:23:57 -04:00
2018-08-22 10:09:07 -04:00
*Ana María Martínez Gómez*
2018-08-07 11:23:57 -04:00
2017-12-02 13:45:10 -05:00
* Fix issue with `button_to` 's `to_form_params`
`button_to` was throwing exception when invoked with `params` hash that
contains symbol and string keys. The reason for the exception was that
`to_form_params` was comparing the given symbol and string keys.
The issue is fixed by turning all keys to strings inside
`to_form_params` before comparing them.
*Georgi Georgiev*
2018-07-03 20:42:53 -04:00
* Mark arrays of translations as trusted safe by using the `_html` suffix.
Example:
2018-07-03 16:28:24 -04:00
en:
foo_html:
- "One"
- "< strong > Two</ strong > "
- "Three 👋 🙂 "
*Juan Broullon*
2018-03-06 08:27:23 -05:00
* Add `year_format` option to date_select tag. This option makes it possible to customize year
2018-06-21 04:00:45 -04:00
names. Lambda should be passed to use this option.
Example:
2018-03-06 08:27:23 -05:00
date_select('user_birthday', '', start_year: 1998, end_year: 2000, year_format: ->year { "Heisei #{year - 1988}" })
2018-07-03 16:28:24 -04:00
The HTML produced:
2018-03-06 08:27:23 -05:00
< select id = "user_birthday__1i" name = "user_birthday[(1i)]" >
< option value = "1998" > Heisei 10< / option >
< option value = "1999" > Heisei 11< / option >
< option value = "2000" > Heisei 12< / option >
< / select >
/* The rest is omitted */
*Koki Ryu*
2018-04-17 02:00:57 -04:00
* Fix JavaScript views rendering does not work with Firefox when using
Content Security Policy.
Fixes #32577 .
*Yuji Yaginuma*
2018-04-17 11:05:12 -04:00
* Add the `nonce: true` option for `javascript_include_tag` helper to
support automatic nonce generation for Content Security Policy.
Works the same way as `javascript_tag nonce: true` does.
*Yaroslav Markin*
2018-04-07 04:24:17 -04:00
* Remove `ActionView::Helpers::RecordTagHelper` .
2018-04-06 13:50:57 -04:00
*Yoshiyuki Hirano*
2018-04-07 04:24:17 -04:00
* Disable `ActionView::Template` finalizers in test environment.
Add `action_view.finalize_compiled_template_methods` config option
ActionView::Template instances compile their source to methods on the
ActionView::CompiledTemplates module. To prevent leaks in development
mode, where templates can frequently change, a finalizer is added that
undefines these methods[1] when the templates are garbage-collected.
This is undesirable in the test environment, however, as templates don't
change during the life of the test. Moreover, the cost of undefining a
method is proportional to the number of descendants a class or module
has, since the method cache must be cleared for all descendant classes.
As ActionView::CompiledTemplates is mixed into every
ActionView::TestCase (or in RSpec suites, every view spec example
group), it can end up with a very large number of descendants, and
undefining its methods can become very expensive.
In large test suites, this results in a long delay at the end of the
test suite as all template finalizers are run, only for the process to
then exit.
To avoid this unnecessary cost, this change adds a config option,
`action_view.finalize_compiled_template_methods`, defaulting to true,
and sets it to false in the test environment only.
[1] https://github.com/rails/rails/blob/09b2348f7fc8d4e7191e70e06608c5909067e2aa/actionview/lib/action_view/template.rb#L118-L126
2018-03-30 17:45:57 -04:00
Template finalization can be expensive in large view test suites.
Add a configuration option,
`action_view.finalize_compiled_template_methods` , and turn it off in
the test environment.
*Simon Coffey*
2018-04-01 08:15:36 -04:00
* Extract the `confirm` call in its own, overridable method in `rails_ujs` .
2018-09-06 18:56:31 -04:00
Example:
2018-04-01 08:15:36 -04:00
Rails.confirm = function(message, element) {
return (my_bootstrap_modal_confirm(message));
}
*Mathieu Mahé*
2018-02-22 13:37:15 -05:00
* Enable select tag helper to mark `prompt` option as `selected` and/or `disabled` for `required`
2018-09-06 18:56:31 -04:00
field.
Example:
2018-02-28 06:45:35 -05:00
2018-03-11 16:22:20 -04:00
select :post,
:category,
["lifestyle", "programming", "spiritual"],
{ selected: "", disabled: "", prompt: "Choose one" },
2018-02-22 13:37:15 -05:00
{ required: true }
2018-02-28 06:45:35 -05:00
2018-09-06 18:56:31 -04:00
Placeholder option would be selected and disabled.
The HTML produced:
2018-02-28 06:45:35 -05:00
2018-02-22 13:37:15 -05:00
< select required = "required" name = "post[category]" id = "post_category" >
< option disabled = "disabled" selected = "selected" value = "" > Choose one< / option >
< option value = "lifestyle" > lifestyle< / option >
< option value = "programming" > programming< / option >
< option value = "spiritual" > spiritual< / option > < / select >
*Sergey Prikhodko*
2018-03-11 16:22:20 -04:00
* Don't enforce UTF-8 by default.
2018-02-27 06:07:04 -05:00
With the disabling of TLS 1.0 by most major websites, continuing to run
IE8 or lower becomes increasingly difficult so default to not enforcing
UTF-8 encoding as it's not relevant to other browsers.
*Andrew White*
2016-10-16 08:21:03 -04:00
* Change translation key of `submit_tag` from `module_name_class_name` to `module_name/class_name` .
*Rui Onodera*
2018-12-19 15:09:34 -05:00
* Rails 6 requires Ruby 2.5.0 or newer.
2018-02-17 16:02:18 -05:00
2018-12-19 15:09:34 -05:00
*Jeremy Daer* , *Kasper Timm Hansen*
2017-12-01 11:56:45 -05:00
2018-01-30 18:51:17 -05:00
Please check [5-2-stable ](https://github.com/rails/rails/blob/5-2-stable/actionview/CHANGELOG.md ) for previous changes.