scrivito_sdk 0.50.1 → 0.60.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/scrivito/objs_controller.rb +25 -21
  3. data/app/controllers/scrivito/ui_controller.rb +1 -1
  4. data/app/controllers/scrivito/webservice_controller.rb +1 -1
  5. data/app/models/scrivito/content_widget.rb +1 -3
  6. data/app/views/cms/index.html.erb +3 -0
  7. data/app/views/scrivito/objs/destroy.json.jbuilder +1 -0
  8. data/app/views/scrivito/objs/show.json.jbuilder +2 -0
  9. data/app/views/scrivito/objs/update.json.jbuilder +1 -1
  10. data/app/views/scrivito/objs/{widget_modification.json.jbuilder → widget.json.jbuilder} +0 -0
  11. data/config/ca-bundle.crt +24 -219
  12. data/config/precedence_routes.rb +60 -0
  13. data/config/routes.rb +13 -46
  14. data/lib/assets/javascripts/scrivito_ui.js +360 -202
  15. data/lib/assets/stylesheets/scrivito_sdk.css +1 -1
  16. data/lib/assets/stylesheets/scrivito_ui.css +1 -1
  17. data/lib/generators/scrivito/install/templates/app/models/download.rb +1 -3
  18. data/lib/generators/scrivito/install/templates/app/models/headline_widget.rb +1 -5
  19. data/lib/generators/scrivito/install/templates/app/models/image.rb +1 -3
  20. data/lib/generators/scrivito/install/templates/app/models/image_widget.rb +1 -5
  21. data/lib/generators/scrivito/install/templates/app/models/page.rb +3 -6
  22. data/lib/generators/scrivito/install/templates/app/models/text_widget.rb +1 -5
  23. data/lib/generators/scrivito/install/templates/scrivito/migrate/install_scrivito_migration.rb +1 -25
  24. data/lib/generators/scrivito/migration/templates/migration.erb +2 -26
  25. data/lib/generators/scrivito/page/page_generator.rb +0 -11
  26. data/lib/generators/scrivito/page/templates/model.erb +3 -7
  27. data/lib/generators/scrivito/widget/widget_generator.rb +0 -11
  28. data/lib/scrivito/attribute.rb +10 -16
  29. data/lib/scrivito/attribute_collection.rb +4 -0
  30. data/lib/scrivito/attribute_content.rb +239 -161
  31. data/lib/scrivito/attribute_definition.rb +16 -10
  32. data/lib/scrivito/attribute_definition_collection.rb +7 -4
  33. data/lib/scrivito/attribute_definition_migrator.rb +1 -3
  34. data/lib/scrivito/attribute_deserializer.rb +111 -0
  35. data/lib/scrivito/attribute_serializer.rb +189 -0
  36. data/lib/scrivito/basic_obj.rb +113 -78
  37. data/lib/scrivito/basic_widget.rb +103 -37
  38. data/lib/scrivito/binary.rb +3 -3
  39. data/lib/scrivito/cache/chainable.rb +10 -4
  40. data/lib/scrivito/cache/file_store.rb +7 -4
  41. data/lib/scrivito/cache/ram_store.rb +1 -1
  42. data/lib/scrivito/class_collection.rb +2 -2
  43. data/lib/scrivito/client_config.rb +7 -6
  44. data/lib/scrivito/cms_backend.rb +2 -2
  45. data/lib/scrivito/cms_field_tag.rb +33 -25
  46. data/lib/scrivito/cms_rest_api/{attribute_serializer.rb → legacy_attribute_serializer.rb} +1 -1
  47. data/lib/scrivito/cms_routing.rb +20 -14
  48. data/lib/scrivito/configuration.rb +1 -1
  49. data/lib/scrivito/controller_actions.rb +12 -4
  50. data/lib/scrivito/date_attribute.rb +8 -0
  51. data/lib/scrivito/diff.rb +1 -1
  52. data/lib/scrivito/editing_context.rb +1 -1
  53. data/lib/scrivito/editing_context_middleware.rb +1 -1
  54. data/lib/scrivito/errors.rb +4 -0
  55. data/lib/scrivito/link_parser.rb +6 -1
  56. data/lib/scrivito/migrations/cms_backend.rb +17 -60
  57. data/lib/scrivito/migrations/migration_store.rb +0 -1
  58. data/lib/scrivito/model_library.rb +6 -6
  59. data/lib/scrivito/obj_class.rb +34 -48
  60. data/lib/scrivito/obj_class_collection.rb +21 -3
  61. data/lib/scrivito/obj_create_params_parser.rb +2 -1
  62. data/lib/scrivito/obj_data.rb +9 -103
  63. data/lib/scrivito/obj_data_from_hash.rb +19 -21
  64. data/lib/scrivito/obj_data_from_service.rb +28 -48
  65. data/lib/scrivito/obj_params_parser.rb +14 -14
  66. data/lib/scrivito/obj_search_enumerator.rb +1 -1
  67. data/lib/scrivito/obj_update_params_parser.rb +2 -2
  68. data/lib/scrivito/restriction_set.rb +1 -1
  69. data/lib/scrivito/sdk_engine.rb +2 -2
  70. data/lib/scrivito/test_request.rb +10 -0
  71. data/lib/scrivito/type_computer.rb +5 -1
  72. data/lib/scrivito/widget_collection.rb +15 -0
  73. data/lib/scrivito/widget_garbage_collection.rb +1 -1
  74. data/lib/scrivito/widget_tag.rb +2 -0
  75. data/lib/scrivito/workspace.rb +2 -1
  76. data/lib/scrivito/workspace_data_from_service.rb +1 -0
  77. data/lib/scrivito_sdk.rb +17 -1
  78. metadata +36 -34
  79. data/app/views/scrivito/objs/modification.json.jbuilder +0 -1
  80. data/config/cms_routes.rb +0 -22
  81. data/lib/generators/scrivito/page/templates/migration.erb +0 -9
  82. data/lib/generators/scrivito/widget/templates/migration.erb +0 -7
@@ -18,8 +18,8 @@ module ::Scrivito
18
18
  config.action_dispatch.rescue_responses.merge!("Scrivito::ResourceNotFound" => :not_found)
19
19
 
20
20
  initializer "scrivito.add_cms_routing_paths", :after => :add_routing_paths do |app|
21
- cms_route = File.expand_path("cms_routes.rb", paths['config'].to_a.first)
22
- app.routes_reloader.paths.push(cms_route)
21
+ precedence_route = File.expand_path("precedence_routes.rb", paths['config'].to_a.first)
22
+ app.routes_reloader.paths.unshift(precedence_route)
23
23
  end
24
24
 
25
25
  # Expose Scrivito SDK runtime to controller for logging.
@@ -45,5 +45,15 @@ module Scrivito
45
45
  def for_cms_object(*args)
46
46
  raise "The method `for_cms_object' was removed. Please use `for_scrivito_obj' instead"
47
47
  end
48
+
49
+ #
50
+ # Make a test request to act as it's by a specific Scrivito user
51
+ #
52
+ # @api public
53
+ # @param [Scrivito::User] test_user requested +User+
54
+ #
55
+ def for_scrivito_user(test_user)
56
+ env[EditingContextMiddleware::ENVKEY] = EditingContext.new(editor: -> { test_user })
57
+ end
48
58
  end
49
59
  end
@@ -6,7 +6,11 @@ class TypeComputer
6
6
  end
7
7
 
8
8
  def compute_type(obj_class_name)
9
- load_class(obj_class_name) || @fallback_class
9
+ compute_type_without_fallback(obj_class_name) || @fallback_class
10
+ end
11
+
12
+ def compute_type_without_fallback(obj_class_name)
13
+ load_class(obj_class_name)
10
14
  end
11
15
 
12
16
  def special_class?(klass)
@@ -3,6 +3,8 @@ module Scrivito
3
3
  # The +WidgetCollection+ represents all {Scrivito::BasicWidget Widgets} referenced by an
4
4
  # {Scrivito::BasicObj Obj} or its subwidgets.
5
5
  class WidgetCollection
6
+ include Enumerable
7
+
6
8
  def initialize(obj)
7
9
  @obj = obj
8
10
  end
@@ -15,6 +17,19 @@ module Scrivito
15
17
  obj.widget_from_pool(widget_id)
16
18
  end
17
19
 
20
+ # @api public
21
+ #
22
+ # Enables you to iterate the {Scrivito::BasicWidget Widgets} of an {Scrivito::BasicObj Obj}.
23
+ # Includes the {http://ruby-doc.org/core-2.1.0/Enumerable.html Enumerable} mixin
24
+ # and thereby provides methods like +map+ or +select+.
25
+ # @yield [Scrivito::BasicWidget] the {Scrivito::BasicWidget Widgets} of an {Scrivito::BasicObj Obj}
26
+ #
27
+ # @example Array of all widget ids
28
+ # obj.widgets.map { |widget| widget.id }
29
+ def each(&block)
30
+ obj.all_widgets_from_pool.each(&block)
31
+ end
32
+
18
33
  private
19
34
 
20
35
  attr_reader :obj
@@ -79,7 +79,7 @@ class WidgetGarbageCollection
79
79
  end
80
80
  else
81
81
  params.each do |key, value|
82
- if content.type_of_attribute(key) == "widget"
82
+ if content.type_of_attribute(key) == 'widgetlist'
83
83
  current = content[key]
84
84
  new = value
85
85
 
@@ -9,6 +9,8 @@ class WidgetTag < Struct.new(:view, :widget, :placement_modification)
9
9
 
10
10
  def content
11
11
  view.render(template: template, locals: {widget: widget})
12
+ rescue ActionView::MissingTemplate
13
+ %{Missing Ruby model class for "#{widget.obj_class_name}"} if view.scrivito_user
12
14
  end
13
15
 
14
16
  def options
@@ -79,7 +79,7 @@ class Workspace
79
79
  all.detect { |workspace| workspace.title == title }
80
80
  end
81
81
 
82
- delegate :content_state, :base_revision_id, :base_content_state, to: :data
82
+ delegate :content_state, :base_revision_id, :base_content_state, :uses_obj_classes, to: :data
83
83
 
84
84
  # Create a new workspace
85
85
  # @api public
@@ -244,6 +244,7 @@ class Workspace
244
244
  # Returns all obj classes of this working copy.
245
245
  #
246
246
  # @api public
247
+ # @deprecated
247
248
  #
248
249
  # @example Find the obj class named "Homepage" in the "rtc" {Workspace}.
249
250
  # Workspace.find('rtc').obj_classes['Homepage']
@@ -16,6 +16,7 @@ class WorkspaceDataFromService < WorkspaceData
16
16
  data_attr_reader :base_revision_id
17
17
  data_attr_reader :base_content_state_id
18
18
  data_attr_reader :diff
19
+ data_attr_reader :uses_obj_classes
19
20
 
20
21
  def content_state
21
22
  @content_state ||= ContentState.find_or_create(content_state_id) if content_state_id
data/lib/scrivito_sdk.rb CHANGED
@@ -21,7 +21,7 @@ module Scrivito
21
21
  #
22
22
  # Configures which models Scrivito assumes as pages and widgets.
23
23
  #
24
- # @api private
24
+ # @api public
25
25
  #
26
26
  # In order to display a page class selection dialog and a widget class selection dialog, Scrivito
27
27
  # needs to know which page models and widget models are available. That models can be defined in
@@ -123,6 +123,22 @@ module Scrivito
123
123
  end
124
124
  end
125
125
 
126
+ def self.obj_class_deprecated_message
127
+ %{
128
+ The SDK now allows defining classes and attributes directly in your application source code.
129
+ Please run the migration tool to have your model migrated automatically in order to use this version of the SDK.
130
+ See https://scrivito.com/obj-class-migration for details.
131
+ }
132
+ end
133
+
134
+ def self.raise_obj_class_deprecated_error
135
+ raise ScrivitoError, obj_class_deprecated_message
136
+ end
137
+
138
+ def self.print_obj_class_deprecated_warning
139
+ Deprecation.warn(obj_class_deprecated_message)
140
+ end
141
+
126
142
  autoload_all_sources
127
143
  end
128
144
 
metadata CHANGED
@@ -1,162 +1,162 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scrivito_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.50.1
4
+ version: 0.60.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Infopark AG
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-27 00:00:00.000000000 Z
11
+ date: 2015-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.3.2
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
26
  version: 2.3.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: diff-lcs
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.2.5
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 1.2.5
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hyp_diff
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.0.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.0.4
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: jbuilder
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.2.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.2.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jquery-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 3.1.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 3.1.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: json
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 1.7.7
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.7.7
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: multipart-post
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 2.0.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 2.0.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: nokogiri
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: 1.6.5
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.6.5
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rails
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 4.2.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 4.2.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rake
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: 0.9.2.2
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.9.2.2
153
- description: ' Scrivito: A professional Cloud CMS built for Ruby on Rails. '
153
+ description: " Scrivito: A professional Cloud CMS built for Ruby on Rails. "
154
154
  email: info@scrivito.com
155
155
  executables: []
156
156
  extensions: []
157
157
  extra_rdoc_files: []
158
158
  files:
159
- - .yardopts
159
+ - ".yardopts"
160
160
  - README.md
161
161
  - app/controllers/scrivito/blobs_controller.rb
162
162
  - app/controllers/scrivito/default_cms_controller.rb
@@ -168,21 +168,23 @@ files:
168
168
  - app/controllers/scrivito/workspaces_controller.rb
169
169
  - app/helpers/scrivito_helper.rb
170
170
  - app/models/scrivito/content_widget.rb
171
+ - app/views/cms/index.html.erb
171
172
  - app/views/google_maps_widget/show.html.erb
172
173
  - app/views/scrivito/_editing_auth_warning.html.erb
173
174
  - app/views/scrivito/blobs/upload_permission.json.jbuilder
174
175
  - app/views/scrivito/content_widget/show.html.erb
175
176
  - app/views/scrivito/objs/copy_widget.html.erb
176
177
  - app/views/scrivito/objs/create_widget.html.erb
178
+ - app/views/scrivito/objs/destroy.json.jbuilder
177
179
  - app/views/scrivito/objs/format_missing_error.json.jbuilder
178
- - app/views/scrivito/objs/modification.json.jbuilder
179
180
  - app/views/scrivito/objs/obj.json.jbuilder
180
181
  - app/views/scrivito/objs/page_class_selection.json.jbuilder
181
182
  - app/views/scrivito/objs/search.json.jbuilder
182
183
  - app/views/scrivito/objs/search_only_size.json.jbuilder
184
+ - app/views/scrivito/objs/show.json.jbuilder
183
185
  - app/views/scrivito/objs/update.json.jbuilder
186
+ - app/views/scrivito/objs/widget.json.jbuilder
184
187
  - app/views/scrivito/objs/widget_class_selection.json.jbuilder
185
- - app/views/scrivito/objs/widget_modification.json.jbuilder
186
188
  - app/views/scrivito/tasks/show.json.jbuilder
187
189
  - app/views/scrivito/ui/index.html.erb
188
190
  - app/views/scrivito/users/suggest.json.jbuilder
@@ -196,13 +198,13 @@ files:
196
198
  - app/views/scrivito/workspaces/show.json.jbuilder
197
199
  - app/views/scrivito/workspaces/task.json.jbuilder
198
200
  - config/ca-bundle.crt
199
- - config/cms_routes.rb
200
201
  - config/locales/de.scrivito.errors.yml
201
202
  - config/locales/de.scrivito.lib.yml
202
203
  - config/locales/de.scrivito.models.yml
203
204
  - config/locales/en.scrivito.errors.yml
204
205
  - config/locales/en.scrivito.lib.yml
205
206
  - config/locales/en.scrivito.models.yml
207
+ - config/precedence_routes.rb
206
208
  - config/routes.rb
207
209
  - lib/assets/images/180x120.gif
208
210
  - lib/assets/images/scrivito/image_placeholder.png
@@ -242,11 +244,9 @@ files:
242
244
  - lib/generators/scrivito/page/templates/controller.erb
243
245
  - lib/generators/scrivito/page/templates/details.html.erb
244
246
  - lib/generators/scrivito/page/templates/index.html.erb
245
- - lib/generators/scrivito/page/templates/migration.erb
246
247
  - lib/generators/scrivito/page/templates/model.erb
247
248
  - lib/generators/scrivito/page/templates/thumbnail.html.erb
248
249
  - lib/generators/scrivito/widget/templates/details.html.erb
249
- - lib/generators/scrivito/widget/templates/migration.erb
250
250
  - lib/generators/scrivito/widget/templates/model.erb
251
251
  - lib/generators/scrivito/widget/templates/show.html.erb
252
252
  - lib/generators/scrivito/widget/templates/thumbnail.html.erb
@@ -259,6 +259,8 @@ files:
259
259
  - lib/scrivito/attribute_definition.rb
260
260
  - lib/scrivito/attribute_definition_collection.rb
261
261
  - lib/scrivito/attribute_definition_migrator.rb
262
+ - lib/scrivito/attribute_deserializer.rb
263
+ - lib/scrivito/attribute_serializer.rb
262
264
  - lib/scrivito/backend_error.rb
263
265
  - lib/scrivito/basic_obj.rb
264
266
  - lib/scrivito/basic_widget.rb
@@ -279,7 +281,7 @@ files:
279
281
  - lib/scrivito/cms_env.rb
280
282
  - lib/scrivito/cms_field_tag.rb
281
283
  - lib/scrivito/cms_rest_api.rb
282
- - lib/scrivito/cms_rest_api/attribute_serializer.rb
284
+ - lib/scrivito/cms_rest_api/legacy_attribute_serializer.rb
283
285
  - lib/scrivito/cms_rest_api/widget_extractor.rb
284
286
  - lib/scrivito/cms_routing.rb
285
287
  - lib/scrivito/communication_error.rb
@@ -372,14 +374,14 @@ require_paths:
372
374
  - lib
373
375
  required_ruby_version: !ruby/object:Gem::Requirement
374
376
  requirements:
375
- - - '>='
377
+ - - ">="
376
378
  - !ruby/object:Gem::Version
377
- version: 2.0.0
379
+ version: 2.1.0
378
380
  required_rubygems_version: !ruby/object:Gem::Requirement
379
381
  requirements:
380
- - - '>='
382
+ - - ">"
381
383
  - !ruby/object:Gem::Version
382
- version: '0'
384
+ version: 1.3.1
383
385
  requirements: []
384
386
  rubyforge_project:
385
387
  rubygems_version: 2.4.5
@@ -1 +0,0 @@
1
- json.extract! current_obj, :modification
data/config/cms_routes.rb DELETED
@@ -1,22 +0,0 @@
1
- Rails.application.routes.draw do
2
- get '/' => 'scrivito/cms_dispatch#index', as: :scrivito_root
3
-
4
- get '__scrivito/render_widget/:id/show_widget/:widget_id' => 'scrivito/cms_dispatch#show_widget'
5
- get '__scrivito/render_widget/:id/widget_details/:widget_id' => 'scrivito/cms_dispatch#widget_details'
6
-
7
- get '__scrivito/page_details/:id' => 'scrivito/cms_dispatch#page_details'
8
-
9
- get '/__scrivito/resource_details/:resource_id' => 'scrivito/cms_dispatch#resource_details'
10
-
11
- match ':id(/*slug)',
12
- to: 'scrivito/cms_dispatch#index',
13
- constraints: { id: /\d+|[0-9a-f]{16}/ },
14
- as: 'cms_id',
15
- via: :all
16
-
17
- match '/*permalink',
18
- to: 'scrivito/cms_dispatch#index',
19
- as: :scrivito_permalink,
20
- format: false,
21
- via: :all
22
- end