actionview 7.1.0 → 7.1.1
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 +10 -0
- data/app/assets/javascripts/rails-ujs.esm.js +26 -1
- data/app/assets/javascripts/rails-ujs.js +24 -0
- data/lib/action_view/gem_version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee3c480e4d31e8f0993748f63f865fdc83fd933b17cc38cdcf40bb6f2f5a851f
|
4
|
+
data.tar.gz: 55cc85a03a85c26914ca1efcf502749f7d68d2c60ccb9ff1d7da04817f9d3abf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 458e12bf5a056fa2302d7be0b8fe01ba73403a1d02e442adaecb9dc791400b08bf8ec8cc0107e221284c5836b811668a038a8e11246201bec2306b23a5059fa9
|
7
|
+
data.tar.gz: 85e8be0ed9174c2768d415360f00dfccf0a4d51df657581fd9407a2c9d5c7d91b1e19c604964ecc03b8f3300960f62e2baaf66f01c332b7fa927de67da4b214e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## Rails 7.1.1 (October 11, 2023) ##
|
2
|
+
|
3
|
+
* Updated `@rails/ujs` files to ignore certain data-* attributes when element is contenteditable.
|
4
|
+
|
5
|
+
This fix was already landed in >= 7.0.4.3, < 7.1.0.
|
6
|
+
[[CVE-2023-23913](https://github.com/advisories/GHSA-xp5h-f8jf-rc8q)]
|
7
|
+
|
8
|
+
*Ryunosuke Sato*
|
9
|
+
|
10
|
+
|
1
11
|
## Rails 7.1.0 (October 05, 2023) ##
|
2
12
|
|
3
13
|
* No changes.
|
@@ -58,6 +58,18 @@ const setData = function(element, key, value) {
|
|
58
58
|
|
59
59
|
const $ = selector => Array.prototype.slice.call(document.querySelectorAll(selector));
|
60
60
|
|
61
|
+
const isContentEditable = function(element) {
|
62
|
+
var isEditable = false;
|
63
|
+
do {
|
64
|
+
if (element.isContentEditable) {
|
65
|
+
isEditable = true;
|
66
|
+
break;
|
67
|
+
}
|
68
|
+
element = element.parentElement;
|
69
|
+
} while (element);
|
70
|
+
return isEditable;
|
71
|
+
};
|
72
|
+
|
61
73
|
const csrfToken = () => {
|
62
74
|
const meta = document.querySelector("meta[name=csrf-token]");
|
63
75
|
return meta && meta.content;
|
@@ -336,6 +348,9 @@ const enableElement = e => {
|
|
336
348
|
} else {
|
337
349
|
element = e;
|
338
350
|
}
|
351
|
+
if (isContentEditable(element)) {
|
352
|
+
return;
|
353
|
+
}
|
339
354
|
if (matches(element, linkDisableSelector)) {
|
340
355
|
return enableLinkElement(element);
|
341
356
|
} else if (matches(element, buttonDisableSelector) || matches(element, formEnableSelector)) {
|
@@ -347,6 +362,9 @@ const enableElement = e => {
|
|
347
362
|
|
348
363
|
const disableElement = e => {
|
349
364
|
const element = e instanceof Event ? e.target : e;
|
365
|
+
if (isContentEditable(element)) {
|
366
|
+
return;
|
367
|
+
}
|
350
368
|
if (matches(element, linkDisableSelector)) {
|
351
369
|
return disableLinkElement(element);
|
352
370
|
} else if (matches(element, buttonDisableSelector) || matches(element, formDisableSelector)) {
|
@@ -426,6 +444,9 @@ const handleMethodWithRails = rails => function(e) {
|
|
426
444
|
if (!method) {
|
427
445
|
return;
|
428
446
|
}
|
447
|
+
if (isContentEditable(this)) {
|
448
|
+
return;
|
449
|
+
}
|
429
450
|
const href = rails.href(link);
|
430
451
|
const csrfToken$1 = csrfToken();
|
431
452
|
const csrfParam$1 = csrfParam();
|
@@ -460,6 +481,10 @@ const handleRemoteWithRails = rails => function(e) {
|
|
460
481
|
fire(element, "ajax:stopped");
|
461
482
|
return false;
|
462
483
|
}
|
484
|
+
if (isContentEditable(element)) {
|
485
|
+
fire(element, "ajax:stopped");
|
486
|
+
return false;
|
487
|
+
}
|
463
488
|
const withCredentials = element.getAttribute("data-with-credentials");
|
464
489
|
const dataType = element.getAttribute("data-type") || "script";
|
465
490
|
if (matches(element, formSubmitSelector)) {
|
@@ -665,4 +690,4 @@ if (typeof exports !== "object" && typeof module === "undefined") {
|
|
665
690
|
}
|
666
691
|
}
|
667
692
|
|
668
|
-
export default
|
693
|
+
export { Rails as default };
|
@@ -44,6 +44,17 @@ Released under the MIT license
|
|
44
44
|
return element[EXPANDO][key] = value;
|
45
45
|
};
|
46
46
|
const $ = selector => Array.prototype.slice.call(document.querySelectorAll(selector));
|
47
|
+
const isContentEditable = function(element) {
|
48
|
+
var isEditable = false;
|
49
|
+
do {
|
50
|
+
if (element.isContentEditable) {
|
51
|
+
isEditable = true;
|
52
|
+
break;
|
53
|
+
}
|
54
|
+
element = element.parentElement;
|
55
|
+
} while (element);
|
56
|
+
return isEditable;
|
57
|
+
};
|
47
58
|
const csrfToken = () => {
|
48
59
|
const meta = document.querySelector("meta[name=csrf-token]");
|
49
60
|
return meta && meta.content;
|
@@ -298,6 +309,9 @@ Released under the MIT license
|
|
298
309
|
} else {
|
299
310
|
element = e;
|
300
311
|
}
|
312
|
+
if (isContentEditable(element)) {
|
313
|
+
return;
|
314
|
+
}
|
301
315
|
if (matches(element, linkDisableSelector)) {
|
302
316
|
return enableLinkElement(element);
|
303
317
|
} else if (matches(element, buttonDisableSelector) || matches(element, formEnableSelector)) {
|
@@ -308,6 +322,9 @@ Released under the MIT license
|
|
308
322
|
};
|
309
323
|
const disableElement = e => {
|
310
324
|
const element = e instanceof Event ? e.target : e;
|
325
|
+
if (isContentEditable(element)) {
|
326
|
+
return;
|
327
|
+
}
|
311
328
|
if (matches(element, linkDisableSelector)) {
|
312
329
|
return disableLinkElement(element);
|
313
330
|
} else if (matches(element, buttonDisableSelector) || matches(element, formDisableSelector)) {
|
@@ -379,6 +396,9 @@ Released under the MIT license
|
|
379
396
|
if (!method) {
|
380
397
|
return;
|
381
398
|
}
|
399
|
+
if (isContentEditable(this)) {
|
400
|
+
return;
|
401
|
+
}
|
382
402
|
const href = rails.href(link);
|
383
403
|
const csrfToken$1 = csrfToken();
|
384
404
|
const csrfParam$1 = csrfParam();
|
@@ -411,6 +431,10 @@ Released under the MIT license
|
|
411
431
|
fire(element, "ajax:stopped");
|
412
432
|
return false;
|
413
433
|
}
|
434
|
+
if (isContentEditable(element)) {
|
435
|
+
fire(element, "ajax:stopped");
|
436
|
+
return false;
|
437
|
+
}
|
414
438
|
const withCredentials = element.getAttribute("data-with-credentials");
|
415
439
|
const dataType = element.getAttribute("data-type") || "script";
|
416
440
|
if (matches(element, 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: 7.1.
|
4
|
+
version: 7.1.1
|
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: 2023-10-
|
11
|
+
date: 2023-10-11 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: 7.1.
|
19
|
+
version: 7.1.1
|
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: 7.1.
|
26
|
+
version: 7.1.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: builder
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,28 +86,28 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 7.1.
|
89
|
+
version: 7.1.1
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 7.1.
|
96
|
+
version: 7.1.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: activemodel
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - '='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 7.1.
|
103
|
+
version: 7.1.1
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - '='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 7.1.
|
110
|
+
version: 7.1.1
|
111
111
|
description: Simple, battle-tested conventions and helpers for building web pages.
|
112
112
|
email: david@loudthinking.com
|
113
113
|
executables: []
|
@@ -246,10 +246,10 @@ licenses:
|
|
246
246
|
- MIT
|
247
247
|
metadata:
|
248
248
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
249
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.1.
|
250
|
-
documentation_uri: https://api.rubyonrails.org/v7.1.
|
249
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.1.1/actionview/CHANGELOG.md
|
250
|
+
documentation_uri: https://api.rubyonrails.org/v7.1.1/
|
251
251
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
252
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.1.
|
252
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.1.1/actionview
|
253
253
|
rubygems_mfa_required: 'true'
|
254
254
|
post_install_message:
|
255
255
|
rdoc_options: []
|