pages_core 3.10.2 → 3.11.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/VERSION +1 -1
- data/app/assets/builds/pages_core/admin-dist.js +9 -9
- data/app/helpers/pages_core/admin/admin_helper.rb +1 -0
- data/app/helpers/pages_core/admin/form_builder.rb +2 -1
- data/app/helpers/pages_core/admin/image_uploads_helper.rb +1 -1
- data/app/helpers/pages_core/admin/locales_helper.rb +26 -0
- data/app/helpers/pages_core/admin/localized_form_builder.rb +29 -0
- data/app/helpers/pages_core/form_builder.rb +1 -104
- data/app/helpers/pages_core/labelled_form_builder.rb +109 -0
- data/app/javascript/components/Attachments/Attachment.jsx +11 -8
- data/app/javascript/components/Attachments/AttachmentEditor.jsx +11 -4
- data/app/javascript/components/ImageEditor/Form.jsx +7 -1
- data/app/javascript/components/PageTree.jsx +4 -1
- data/app/javascript/components/PageTreeDraggable.jsx +14 -11
- data/app/javascript/components/PageTreeNode.jsx +31 -24
- data/app/javascript/components/RichTextArea.jsx +19 -2
- data/app/models/concerns/pages_core/humanizable_param.rb +14 -8
- data/app/models/concerns/pages_core/page_model/pathable.rb +12 -6
- data/app/views/admin/pages/_edit_files.html.erb +1 -1
- data/app/views/admin/pages/_edit_images.html.erb +1 -1
- data/app/views/admin/pages/_edit_metadata.html.erb +1 -1
- data/app/views/admin/pages/index.html.erb +1 -0
- metadata +24 -21
@@ -6,15 +6,21 @@ module PagesCore
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
def humanized_param(slug)
|
9
|
-
|
9
|
+
safe_slug = safe_humanized_param(slug)
|
10
|
+
return id.to_s if safe_slug.blank?
|
10
11
|
|
11
|
-
"#{id}
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
"#{id}-#{safe_slug}"
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def safe_humanized_param(str)
|
18
|
+
transliterate(str.to_s).downcase
|
19
|
+
.gsub(/[\[{]/, "(")
|
20
|
+
.gsub(/}\]/, ")")
|
21
|
+
.gsub(/[^[[:alnum:]]()-]+/, "-")
|
22
|
+
.gsub(/-{2,}/, "-")
|
23
|
+
.gsub(/(^-|-$)/, "")
|
18
24
|
end
|
19
25
|
end
|
20
26
|
end
|
@@ -24,7 +24,7 @@ module PagesCore
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def ensure_path_segment
|
27
|
-
return if deleted? || path_segment? ||
|
27
|
+
return if deleted? || path_segment? || generated_path_segment.blank?
|
28
28
|
|
29
29
|
segment = generated_path_segment
|
30
30
|
segment = "#{segment}-#{id}" if path_collision?(segment)
|
@@ -59,11 +59,8 @@ module PagesCore
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def generated_path_segment
|
62
|
-
transliterated_name.
|
63
|
-
|
64
|
-
.gsub(/(^-|-$)/, "")
|
65
|
-
.mb_chars
|
66
|
-
.downcase
|
62
|
+
safe_path_segment(transliterated_name).presence ||
|
63
|
+
safe_path_segment(unique_name)
|
67
64
|
end
|
68
65
|
|
69
66
|
def page_path_matches_routes?(page_path)
|
@@ -98,6 +95,15 @@ module PagesCore
|
|
98
95
|
false
|
99
96
|
end
|
100
97
|
|
98
|
+
def safe_path_segment(str)
|
99
|
+
str.to_s
|
100
|
+
.gsub(/[^[[:alnum:]]-_]+/, "-")
|
101
|
+
.gsub(/-{2,}/, "-")
|
102
|
+
.gsub(/(^-|-$)/, "")
|
103
|
+
.mb_chars
|
104
|
+
.downcase
|
105
|
+
end
|
106
|
+
|
101
107
|
def sibling_path_segments
|
102
108
|
siblings = if parent
|
103
109
|
parent.children
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<div class="field">
|
2
2
|
<% if f.object.pathable? %>
|
3
|
-
<%= labelled_field(f.text_field(:path_segment),
|
3
|
+
<%= labelled_field(f.text_field(:path_segment, dir: "ltr", lang: nil),
|
4
4
|
"Path segment",
|
5
5
|
description: "Only alpanumeric characters and dashes " \
|
6
6
|
"are allowed.") %>
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pages_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Inge Jørgensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
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: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: factory_bot
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pg
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rails-controller-testing
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec_junit_formatter
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: '0'
|
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:
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: semantic
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -602,6 +602,8 @@ files:
|
|
602
602
|
- app/helpers/pages_core/admin/form_builder.rb
|
603
603
|
- app/helpers/pages_core/admin/image_uploads_helper.rb
|
604
604
|
- app/helpers/pages_core/admin/labelled_field_helper.rb
|
605
|
+
- app/helpers/pages_core/admin/locales_helper.rb
|
606
|
+
- app/helpers/pages_core/admin/localized_form_builder.rb
|
605
607
|
- app/helpers/pages_core/admin/page_blocks_helper.rb
|
606
608
|
- app/helpers/pages_core/admin/page_json_helper.rb
|
607
609
|
- app/helpers/pages_core/admin/tag_editor_helper.rb
|
@@ -611,6 +613,7 @@ files:
|
|
611
613
|
- app/helpers/pages_core/frontend_helper.rb
|
612
614
|
- app/helpers/pages_core/head_tags_helper.rb
|
613
615
|
- app/helpers/pages_core/images_helper.rb
|
616
|
+
- app/helpers/pages_core/labelled_form_builder.rb
|
614
617
|
- app/helpers/pages_core/meta_tags_helper.rb
|
615
618
|
- app/helpers/pages_core/open_graph_tags_helper.rb
|
616
619
|
- app/helpers/pages_core/page_path_helper.rb
|
@@ -860,7 +863,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
860
863
|
- !ruby/object:Gem::Version
|
861
864
|
version: '0'
|
862
865
|
requirements: []
|
863
|
-
rubygems_version: 3.3.
|
866
|
+
rubygems_version: 3.3.22
|
864
867
|
signing_key:
|
865
868
|
specification_version: 4
|
866
869
|
summary: Pages Core
|