actionview 6.1.4.2 → 6.1.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +111 -0
- data/MIT-LICENSE +1 -2
- data/lib/action_view/gem_version.rb +2 -2
- data/lib/action_view/helpers/asset_tag_helper.rb +1 -1
- data/lib/action_view/helpers/date_helper.rb +2 -1
- data/lib/action_view/helpers/form_tag_helper.rb +2 -2
- data/lib/action_view/helpers/tag_helper.rb +40 -8
- data/lib/action_view/helpers/tags/base.rb +1 -1
- data/lib/action_view/helpers/tags/check_box.rb +1 -1
- data/lib/action_view/helpers/tags/hidden_field.rb +4 -0
- data/lib/action_view/helpers/url_helper.rb +15 -11
- data/lib/action_view/railtie.rb +1 -1
- data/lib/action_view.rb +1 -1
- data/lib/assets/compiled/rails-ujs.js +36 -5
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6ed9e24a774e9e4f1c79332ce2f6c80cd40823a0bcc15f160ca415ea365a1b1
|
4
|
+
data.tar.gz: 434ec5472bbaddb2973415fc662b3e46e471b3210c5426d5b09b4ab625245c9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efe68a6b0c038a00d866006ba010cad70b41ccf6f38c32ef0773713f5951e671a6ec16d908063519c851513523f60b0d10e23b2443f5184d93f7f539cde81688
|
7
|
+
data.tar.gz: 138bb777d4d79eb8a4ebd1aac456ebf1c85db5e7d59f53080dd8d339dd589f038255ed2b0c5e3439a763ceaca7c63049b10a8699fe02077c61f016e27dd31e66
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,114 @@
|
|
1
|
+
## Rails 6.1.7.7 (February 21, 2024) ##
|
2
|
+
|
3
|
+
* No changes.
|
4
|
+
|
5
|
+
|
6
|
+
## Rails 6.1.7.6 (August 22, 2023) ##
|
7
|
+
|
8
|
+
* No changes.
|
9
|
+
|
10
|
+
|
11
|
+
## Rails 6.1.7.5 (August 22, 2023) ##
|
12
|
+
|
13
|
+
* No changes.
|
14
|
+
|
15
|
+
|
16
|
+
## Rails 6.1.7.4 (June 26, 2023) ##
|
17
|
+
|
18
|
+
* No changes.
|
19
|
+
|
20
|
+
|
21
|
+
## Rails 6.1.7.3 (March 13, 2023) ##
|
22
|
+
|
23
|
+
* Ignore certain data-* attributes in rails-ujs when element is contenteditable
|
24
|
+
|
25
|
+
[CVE-2023-23913]
|
26
|
+
|
27
|
+
|
28
|
+
## Rails 6.1.7.2 (January 24, 2023) ##
|
29
|
+
|
30
|
+
* No changes.
|
31
|
+
|
32
|
+
|
33
|
+
## Rails 6.1.7.1 (January 17, 2023) ##
|
34
|
+
|
35
|
+
* No changes.
|
36
|
+
|
37
|
+
|
38
|
+
## Rails 6.1.7 (September 09, 2022) ##
|
39
|
+
|
40
|
+
* No changes.
|
41
|
+
|
42
|
+
|
43
|
+
## Rails 6.1.6.1 (July 12, 2022) ##
|
44
|
+
|
45
|
+
* No changes.
|
46
|
+
|
47
|
+
|
48
|
+
## Rails 6.1.6 (May 09, 2022) ##
|
49
|
+
|
50
|
+
* No changes.
|
51
|
+
|
52
|
+
|
53
|
+
## Rails 6.1.5.1 (April 26, 2022) ##
|
54
|
+
|
55
|
+
* Fix and add protections for XSS in `ActionView::Helpers` and `ERB::Util`.
|
56
|
+
|
57
|
+
Escape dangerous characters in names of tags and names of attributes in the
|
58
|
+
tag helpers, following the XML specification. Rename the option
|
59
|
+
`:escape_attributes` to `:escape`, to simplify by applying the option to the
|
60
|
+
whole tag.
|
61
|
+
|
62
|
+
*Álvaro Martín Fraguas*
|
63
|
+
|
64
|
+
## Rails 6.1.5 (March 09, 2022) ##
|
65
|
+
|
66
|
+
* `preload_link_tag` properly inserts `as` attributes for files with `image` MIME
|
67
|
+
types, such as JPG or SVG.
|
68
|
+
|
69
|
+
*Nate Berkopec*
|
70
|
+
|
71
|
+
* Add `autocomplete="off"` to all generated hidden fields.
|
72
|
+
|
73
|
+
Fixes #42610.
|
74
|
+
|
75
|
+
*Ryan Baumann*
|
76
|
+
|
77
|
+
* Fix `current_page?` when URL has trailing slash.
|
78
|
+
|
79
|
+
This fixes the `current_page?` helper when the given URL has a trailing slash,
|
80
|
+
and is an absolute URL or also has query params.
|
81
|
+
|
82
|
+
Fixes #33956.
|
83
|
+
|
84
|
+
*Jonathan Hefner*
|
85
|
+
|
86
|
+
|
87
|
+
## Rails 6.1.4.7 (March 08, 2022) ##
|
88
|
+
|
89
|
+
* No changes.
|
90
|
+
|
91
|
+
|
92
|
+
## Rails 6.1.4.6 (February 11, 2022) ##
|
93
|
+
|
94
|
+
* No changes.
|
95
|
+
|
96
|
+
|
97
|
+
## Rails 6.1.4.5 (February 11, 2022) ##
|
98
|
+
|
99
|
+
* No changes.
|
100
|
+
|
101
|
+
|
102
|
+
## Rails 6.1.4.4 (December 15, 2021) ##
|
103
|
+
|
104
|
+
* No changes.
|
105
|
+
|
106
|
+
|
107
|
+
## Rails 6.1.4.3 (December 14, 2021) ##
|
108
|
+
|
109
|
+
* No changes.
|
110
|
+
|
111
|
+
|
1
112
|
## Rails 6.1.4.2 (December 14, 2021) ##
|
2
113
|
|
3
114
|
* No changes.
|
data/MIT-LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2004-
|
1
|
+
Copyright (c) 2004-2022 David Heinemeier Hansson
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
@@ -18,4 +18,3 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
18
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
19
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
20
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
-
|
@@ -509,7 +509,7 @@ module ActionView
|
|
509
509
|
"style"
|
510
510
|
elsif extname == "vtt"
|
511
511
|
"track"
|
512
|
-
elsif (type = mime_type.to_s.split("/")[0]) && type.in?(%w(audio video font))
|
512
|
+
elsif (type = mime_type.to_s.split("/")[0]) && type.in?(%w(audio video font image))
|
513
513
|
type
|
514
514
|
end
|
515
515
|
end
|
@@ -1101,7 +1101,8 @@ module ActionView
|
|
1101
1101
|
type: "hidden",
|
1102
1102
|
id: input_id_from_type(type),
|
1103
1103
|
name: input_name_from_type(type),
|
1104
|
-
value: value
|
1104
|
+
value: value,
|
1105
|
+
autocomplete: "off"
|
1105
1106
|
}.merge!(@html_options.slice(:disabled))
|
1106
1107
|
select_options[:disabled] = "disabled" if @options[:disabled]
|
1107
1108
|
|
@@ -241,7 +241,7 @@ module ActionView
|
|
241
241
|
# # => <input id="collected_input" name="collected_input" onchange="alert('Input collected!')"
|
242
242
|
# # type="hidden" value="" />
|
243
243
|
def hidden_field_tag(name, value = nil, options = {})
|
244
|
-
text_field_tag(name, value, options.merge(type: :hidden))
|
244
|
+
text_field_tag(name, value, options.merge(type: :hidden, autocomplete: "off"))
|
245
245
|
end
|
246
246
|
|
247
247
|
# Creates a file upload field. If you are using file uploads then you will also need
|
@@ -823,7 +823,7 @@ module ActionView
|
|
823
823
|
# Use raw HTML to ensure the value is written as an HTML entity; it
|
824
824
|
# needs to be the right character regardless of which encoding the
|
825
825
|
# browser infers.
|
826
|
-
'<input name="utf8" type="hidden" value="✓" />'.html_safe
|
826
|
+
'<input name="utf8" type="hidden" value="✓" autocomplete="off" />'.html_safe
|
827
827
|
end
|
828
828
|
|
829
829
|
private
|
@@ -53,18 +53,25 @@ module ActionView
|
|
53
53
|
tag_string(:p, *arguments, **options, &block)
|
54
54
|
end
|
55
55
|
|
56
|
-
def tag_string(name, content = nil,
|
56
|
+
def tag_string(name, content = nil, **options, &block)
|
57
|
+
escape = handle_deprecated_escape_options(options)
|
58
|
+
|
57
59
|
content = @view_context.capture(self, &block) if block_given?
|
58
60
|
if VOID_ELEMENTS.include?(name) && content.nil?
|
59
|
-
"<#{name.to_s.dasherize}#{tag_options(options,
|
61
|
+
"<#{name.to_s.dasherize}#{tag_options(options, escape)}>".html_safe
|
60
62
|
else
|
61
|
-
content_tag_string(name.to_s.dasherize, content || "", options,
|
63
|
+
content_tag_string(name.to_s.dasherize, content || "", options, escape)
|
62
64
|
end
|
63
65
|
end
|
64
66
|
|
65
67
|
def content_tag_string(name, content, options, escape = true)
|
66
68
|
tag_options = tag_options(options, escape) if options
|
67
|
-
|
69
|
+
|
70
|
+
if escape
|
71
|
+
name = ERB::Util.xml_name_escape(name)
|
72
|
+
content = ERB::Util.unwrapped_html_escape(content)
|
73
|
+
end
|
74
|
+
|
68
75
|
"<#{name}#{tag_options}>#{PRE_CONTENT_STRINGS[name]}#{content}</#{name}>".html_safe
|
69
76
|
end
|
70
77
|
|
@@ -115,6 +122,8 @@ module ActionView
|
|
115
122
|
end
|
116
123
|
|
117
124
|
def tag_option(key, value, escape)
|
125
|
+
key = ERB::Util.xml_name_escape(key) if escape
|
126
|
+
|
118
127
|
case value
|
119
128
|
when Array, Hash
|
120
129
|
value = TagHelper.build_tag_values(value) if key.to_s == "class"
|
@@ -123,6 +132,7 @@ module ActionView
|
|
123
132
|
value = escape ? ERB::Util.unwrapped_html_escape(value) : value.to_s
|
124
133
|
end
|
125
134
|
value = value.gsub('"', """) if value.include?('"')
|
135
|
+
|
126
136
|
%(#{key}="#{value}")
|
127
137
|
end
|
128
138
|
|
@@ -139,6 +149,27 @@ module ActionView
|
|
139
149
|
true
|
140
150
|
end
|
141
151
|
|
152
|
+
def handle_deprecated_escape_options(options)
|
153
|
+
# The option :escape_attributes has been merged into the options hash to be
|
154
|
+
# able to warn when it is used, so we need to handle default values here.
|
155
|
+
escape_option_provided = options.has_key?(:escape)
|
156
|
+
escape_attributes_option_provided = options.has_key?(:escape_attributes)
|
157
|
+
|
158
|
+
if escape_attributes_option_provided
|
159
|
+
ActiveSupport::Deprecation.warn(<<~MSG)
|
160
|
+
Use of the option :escape_attributes is deprecated. It currently \
|
161
|
+
escapes both names and values of tags and attributes and it is \
|
162
|
+
equivalent to :escape. If any of them are enabled, the escaping \
|
163
|
+
is fully enabled.
|
164
|
+
MSG
|
165
|
+
end
|
166
|
+
|
167
|
+
return true unless escape_option_provided || escape_attributes_option_provided
|
168
|
+
escape_option = options.delete(:escape)
|
169
|
+
escape_attributes_option = options.delete(:escape_attributes)
|
170
|
+
escape_option || escape_attributes_option
|
171
|
+
end
|
172
|
+
|
142
173
|
def method_missing(called, *args, **options, &block)
|
143
174
|
tag_string(called, *args, **options, &block)
|
144
175
|
end
|
@@ -202,13 +233,13 @@ module ActionView
|
|
202
233
|
# tag.div data: { city_state: %w( Chicago IL ) }
|
203
234
|
# # => <div data-city-state="["Chicago","IL"]"></div>
|
204
235
|
#
|
205
|
-
# The generated attributes are escaped by default. This can be disabled using
|
206
|
-
# +
|
236
|
+
# The generated tag names and attributes are escaped by default. This can be disabled using
|
237
|
+
# +escape+.
|
207
238
|
#
|
208
239
|
# tag.img src: 'open & shut.png'
|
209
240
|
# # => <img src="open & shut.png">
|
210
241
|
#
|
211
|
-
# tag.img src: 'open & shut.png',
|
242
|
+
# tag.img src: 'open & shut.png', escape: false
|
212
243
|
# # => <img src="open & shut.png">
|
213
244
|
#
|
214
245
|
# The tag builder respects
|
@@ -272,6 +303,7 @@ module ActionView
|
|
272
303
|
if name.nil?
|
273
304
|
tag_builder
|
274
305
|
else
|
306
|
+
name = ERB::Util.xml_name_escape(name) if escape
|
275
307
|
"<#{name}#{tag_builder.tag_options(options, escape) if options}#{open ? ">" : " />"}".html_safe
|
276
308
|
end
|
277
309
|
end
|
@@ -280,7 +312,7 @@ module ActionView
|
|
280
312
|
# HTML attributes by passing an attributes hash to +options+.
|
281
313
|
# Instead of passing the content as an argument, you can also use a block
|
282
314
|
# in which case, you pass your +options+ as the second parameter.
|
283
|
-
# Set escape to false to disable
|
315
|
+
# Set escape to false to disable escaping.
|
284
316
|
# Note: this is legacy syntax, see +tag+ method description for details.
|
285
317
|
#
|
286
318
|
# ==== Options
|
@@ -153,7 +153,7 @@ module ActionView
|
|
153
153
|
select = content_tag("select", add_options(option_tags, options, value), html_options)
|
154
154
|
|
155
155
|
if html_options["multiple"] && options.fetch(:include_hidden, true)
|
156
|
-
tag("input", disabled: html_options["disabled"], name: html_options["name"], type: "hidden", value: "") + select
|
156
|
+
tag("input", disabled: html_options["disabled"], name: html_options["name"], type: "hidden", value: "", autocomplete: "off") + select
|
157
157
|
else
|
158
158
|
select
|
159
159
|
end
|
@@ -57,7 +57,7 @@ module ActionView
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def hidden_field_for_checkbox(options)
|
60
|
-
@unchecked_value ? tag("input", options.slice("name", "disabled", "form").merge!("type" => "hidden", "value" => @unchecked_value)) : "".html_safe
|
60
|
+
@unchecked_value ? tag("input", options.slice("name", "disabled", "form").merge!("type" => "hidden", "value" => @unchecked_value, "autocomplete" => "off")) : "".html_safe
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
@@ -337,7 +337,8 @@ module ActionView
|
|
337
337
|
inner_tags = method_tag.safe_concat(button).safe_concat(request_token_tag)
|
338
338
|
if params
|
339
339
|
to_form_params(params).each do |param|
|
340
|
-
inner_tags.safe_concat tag(:input, type: "hidden", name: param[:name], value: param[:value]
|
340
|
+
inner_tags.safe_concat tag(:input, type: "hidden", name: param[:name], value: param[:value],
|
341
|
+
autocomplete: "off")
|
341
342
|
end
|
342
343
|
end
|
343
344
|
content_tag("form", inner_tags, form_options)
|
@@ -559,16 +560,14 @@ module ActionView
|
|
559
560
|
request_uri = url_string.index("?") || check_parameters ? request.fullpath : request.path
|
560
561
|
request_uri = URI::DEFAULT_PARSER.unescape(request_uri).force_encoding(Encoding::BINARY)
|
561
562
|
|
562
|
-
if url_string.start_with?("/") && url_string != "/"
|
563
|
-
url_string.chomp!("/")
|
564
|
-
request_uri.chomp!("/")
|
565
|
-
end
|
566
|
-
|
567
563
|
if %r{^\w+://}.match?(url_string)
|
568
|
-
|
569
|
-
else
|
570
|
-
url_string == request_uri
|
564
|
+
request_uri = +"#{request.protocol}#{request.host_with_port}#{request_uri}"
|
571
565
|
end
|
566
|
+
|
567
|
+
remove_trailing_slash!(url_string)
|
568
|
+
remove_trailing_slash!(request_uri)
|
569
|
+
|
570
|
+
url_string == request_uri
|
572
571
|
end
|
573
572
|
|
574
573
|
if RUBY_VERSION.start_with?("2.7")
|
@@ -728,14 +727,14 @@ module ActionView
|
|
728
727
|
def token_tag(token = nil, form_options: {})
|
729
728
|
if token != false && defined?(protect_against_forgery?) && protect_against_forgery?
|
730
729
|
token ||= form_authenticity_token(form_options: form_options)
|
731
|
-
tag(:input, type: "hidden", name: request_forgery_protection_token.to_s, value: token)
|
730
|
+
tag(:input, type: "hidden", name: request_forgery_protection_token.to_s, value: token, autocomplete: "off")
|
732
731
|
else
|
733
732
|
""
|
734
733
|
end
|
735
734
|
end
|
736
735
|
|
737
736
|
def method_tag(method)
|
738
|
-
tag("input", type: "hidden", name: "_method", value: method.to_s)
|
737
|
+
tag("input", type: "hidden", name: "_method", value: method.to_s, autocomplete: "off")
|
739
738
|
end
|
740
739
|
|
741
740
|
# Returns an array of hashes each containing :name and :value keys
|
@@ -779,6 +778,11 @@ module ActionView
|
|
779
778
|
|
780
779
|
params.sort_by { |pair| pair[:name] }
|
781
780
|
end
|
781
|
+
|
782
|
+
def remove_trailing_slash!(url_string)
|
783
|
+
trailing_index = (url_string.index("?") || 0) - 1
|
784
|
+
url_string[trailing_index] = "" if url_string[trailing_index] == "/"
|
785
|
+
end
|
782
786
|
end
|
783
787
|
end
|
784
788
|
end
|
data/lib/action_view/railtie.rb
CHANGED
@@ -46,7 +46,7 @@ module ActionView
|
|
46
46
|
app.config.action_view.each do |k, v|
|
47
47
|
if k == :raise_on_missing_translations
|
48
48
|
ActiveSupport::Deprecation.warn \
|
49
|
-
"action_view.raise_on_missing_translations is deprecated and will be removed in Rails
|
49
|
+
"action_view.raise_on_missing_translations is deprecated and will be removed in Rails 7.0. " \
|
50
50
|
"Set i18n.raise_on_missing_translations instead. " \
|
51
51
|
"Note that this new setting also affects how missing translations are handled in controllers."
|
52
52
|
end
|
data/lib/action_view.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
#--
|
4
|
-
# Copyright (c) 2004-
|
4
|
+
# Copyright (c) 2004-2022 David Heinemeier Hansson
|
5
5
|
#
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining
|
7
7
|
# a copy of this software and associated documentation files (the
|
@@ -73,6 +73,22 @@ Released under the MIT license
|
|
73
73
|
return element[expando][key] = value;
|
74
74
|
};
|
75
75
|
|
76
|
+
Rails.isContentEditable = function(element) {
|
77
|
+
var isEditable;
|
78
|
+
isEditable = false;
|
79
|
+
while (true) {
|
80
|
+
if (element.isContentEditable) {
|
81
|
+
isEditable = true;
|
82
|
+
break;
|
83
|
+
}
|
84
|
+
element = element.parentElement;
|
85
|
+
if (!element) {
|
86
|
+
break;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return isEditable;
|
90
|
+
};
|
91
|
+
|
76
92
|
Rails.$ = function(selector) {
|
77
93
|
return Array.prototype.slice.call(document.querySelectorAll(selector));
|
78
94
|
};
|
@@ -395,9 +411,9 @@ Released under the MIT license
|
|
395
411
|
|
396
412
|
}).call(this);
|
397
413
|
(function() {
|
398
|
-
var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;
|
414
|
+
var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;
|
399
415
|
|
400
|
-
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;
|
416
|
+
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;
|
401
417
|
|
402
418
|
Rails.handleDisabledElement = function(e) {
|
403
419
|
var element;
|
@@ -417,6 +433,9 @@ Released under the MIT license
|
|
417
433
|
} else {
|
418
434
|
element = e;
|
419
435
|
}
|
436
|
+
if (isContentEditable(element)) {
|
437
|
+
return;
|
438
|
+
}
|
420
439
|
if (matches(element, Rails.linkDisableSelector)) {
|
421
440
|
return enableLinkElement(element);
|
422
441
|
} else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {
|
@@ -429,6 +448,9 @@ Released under the MIT license
|
|
429
448
|
Rails.disableElement = function(e) {
|
430
449
|
var element;
|
431
450
|
element = e instanceof Event ? e.target : e;
|
451
|
+
if (isContentEditable(element)) {
|
452
|
+
return;
|
453
|
+
}
|
432
454
|
if (matches(element, Rails.linkDisableSelector)) {
|
433
455
|
return disableLinkElement(element);
|
434
456
|
} else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {
|
@@ -513,10 +535,12 @@ Released under the MIT license
|
|
513
535
|
|
514
536
|
}).call(this);
|
515
537
|
(function() {
|
516
|
-
var stopEverything;
|
538
|
+
var isContentEditable, stopEverything;
|
517
539
|
|
518
540
|
stopEverything = Rails.stopEverything;
|
519
541
|
|
542
|
+
isContentEditable = Rails.isContentEditable;
|
543
|
+
|
520
544
|
Rails.handleMethod = function(e) {
|
521
545
|
var csrfParam, csrfToken, form, formContent, href, link, method;
|
522
546
|
link = this;
|
@@ -524,6 +548,9 @@ Released under the MIT license
|
|
524
548
|
if (!method) {
|
525
549
|
return;
|
526
550
|
}
|
551
|
+
if (isContentEditable(this)) {
|
552
|
+
return;
|
553
|
+
}
|
527
554
|
href = Rails.href(link);
|
528
555
|
csrfToken = Rails.csrfToken();
|
529
556
|
csrfParam = Rails.csrfParam();
|
@@ -545,10 +572,10 @@ Released under the MIT license
|
|
545
572
|
|
546
573
|
}).call(this);
|
547
574
|
(function() {
|
548
|
-
var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,
|
575
|
+
var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,
|
549
576
|
slice = [].slice;
|
550
577
|
|
551
|
-
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;
|
578
|
+
matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;
|
552
579
|
|
553
580
|
isRemote = function(element) {
|
554
581
|
var value;
|
@@ -566,6 +593,10 @@ Released under the MIT license
|
|
566
593
|
fire(element, 'ajax:stopped');
|
567
594
|
return false;
|
568
595
|
}
|
596
|
+
if (isContentEditable(element)) {
|
597
|
+
fire(element, 'ajax:stopped');
|
598
|
+
return false;
|
599
|
+
}
|
569
600
|
withCredentials = element.getAttribute('data-with-credentials');
|
570
601
|
dataType = element.getAttribute('data-type') || 'script';
|
571
602
|
if (matches(element, Rails.formSubmitSelector)) {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.1.
|
4
|
+
version: 6.1.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.1.
|
19
|
+
version: 6.1.7.7
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 6.1.
|
26
|
+
version: 6.1.7.7
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -92,28 +92,28 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - '='
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 6.1.
|
95
|
+
version: 6.1.7.7
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - '='
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 6.1.
|
102
|
+
version: 6.1.7.7
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: activemodel
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
107
|
- - '='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 6.1.
|
109
|
+
version: 6.1.7.7
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - '='
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: 6.1.
|
116
|
+
version: 6.1.7.7
|
117
117
|
description: Simple, battle-tested conventions and helpers for building web pages.
|
118
118
|
email: david@loudthinking.com
|
119
119
|
executables: []
|
@@ -239,10 +239,11 @@ licenses:
|
|
239
239
|
- MIT
|
240
240
|
metadata:
|
241
241
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
242
|
-
changelog_uri: https://github.com/rails/rails/blob/v6.1.
|
243
|
-
documentation_uri: https://api.rubyonrails.org/v6.1.
|
242
|
+
changelog_uri: https://github.com/rails/rails/blob/v6.1.7.7/actionview/CHANGELOG.md
|
243
|
+
documentation_uri: https://api.rubyonrails.org/v6.1.7.7/
|
244
244
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
245
|
-
source_code_uri: https://github.com/rails/rails/tree/v6.1.
|
245
|
+
source_code_uri: https://github.com/rails/rails/tree/v6.1.7.7/actionview
|
246
|
+
rubygems_mfa_required: 'true'
|
246
247
|
post_install_message:
|
247
248
|
rdoc_options: []
|
248
249
|
require_paths:
|
@@ -259,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
259
260
|
version: '0'
|
260
261
|
requirements:
|
261
262
|
- none
|
262
|
-
rubygems_version: 3.2.
|
263
|
+
rubygems_version: 3.2.22
|
263
264
|
signing_key:
|
264
265
|
specification_version: 4
|
265
266
|
summary: Rendering framework putting the V in MVC (part of Rails).
|