scrivito_sdk 1.5.5 → 1.6.0.rc1
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/.yardopts +1 -0
- data/app/controllers/scrivito/obj_class_controller.rb +27 -4
- data/app/controllers/scrivito/objs_controller.rb +0 -26
- data/app/controllers/scrivito/resolve_paths_controller.rb +1 -1
- data/app/controllers/scrivito/ui_configs_controller.rb +8 -0
- data/app/controllers/scrivito/users_controller.rb +11 -1
- data/app/helpers/scrivito_helper.rb +56 -5
- data/app/views/scrivito/page_details.html.erb +6 -1
- data/app/views/scrivito/ui/index.html.erb +4 -1
- data/app/views/scrivito/ui_configs/ui_configs.json.jbuilder +7 -0
- data/app/views/scrivito/users/publish_ability.json.jbuilder +1 -0
- data/app/views/scrivito/users/users.json.jbuilder +7 -0
- data/config/ca-bundle.crt +2 -32
- data/config/precedence_routes.rb +6 -3
- data/lib/assets/javascripts/scrivito.js +0 -11
- data/lib/assets/javascripts/scrivito_sdk.js +17921 -0
- data/lib/assets/javascripts/scrivito_ui.js +35583 -32542
- data/lib/assets/javascripts/scrivito_ui_redirect.js +10 -0
- data/lib/assets/stylesheets/scrivito.css +1 -1
- data/lib/assets/stylesheets/scrivito_ui.css +1 -1
- data/lib/generators/scrivito/install/templates/app/models/download.rb +1 -0
- data/lib/generators/scrivito/install/templates/app/models/image.rb +1 -0
- data/lib/generators/scrivito/install/templates/app/models/page.rb +1 -0
- data/lib/generators/scrivito/install/templates/app/views/download/details.html.erb +4 -0
- data/lib/generators/scrivito/install/templates/app/views/image/details.html.erb +4 -0
- data/lib/generators/scrivito/install/templates/app/views/page/details.html.erb +4 -0
- data/lib/generators/scrivito/page/templates/details.html.erb +4 -0
- data/lib/generators/scrivito/page/templates/model.erb +1 -0
- data/lib/scrivito/associations.rb +200 -0
- data/lib/scrivito/attribute_content.rb +18 -10
- data/lib/scrivito/attribute_definition.rb +1 -1
- data/lib/scrivito/attribute_serializer.rb +1 -1
- data/lib/scrivito/base_widget_tag.rb +4 -5
- data/lib/scrivito/basic_obj.rb +15 -2
- data/lib/scrivito/basic_widget.rb +8 -2
- data/lib/scrivito/binary.rb +12 -24
- data/lib/scrivito/binary_rewrite.rb +1 -1
- data/lib/scrivito/binary_routing.rb +1 -1
- data/lib/scrivito/cms_env.rb +2 -6
- data/lib/scrivito/cms_field_tag.rb +4 -0
- data/lib/scrivito/cms_rest_api.rb +1 -1
- data/lib/scrivito/configuration.rb +7 -4
- data/lib/scrivito/connection_manager.rb +1 -1
- data/lib/scrivito/editing_context.rb +9 -4
- data/lib/scrivito/float_conversion.rb +2 -3
- data/lib/scrivito/integer_conversion.rb +2 -3
- data/lib/scrivito/link.rb +2 -2
- data/lib/scrivito/link_parser.rb +7 -7
- data/lib/scrivito/meta_data_collection.rb +3 -2
- data/lib/scrivito/migrations/workspace_lock.rb +1 -1
- data/lib/scrivito/obj_collection.rb +4 -2
- data/lib/scrivito/obj_create_params_parser.rb +25 -1
- data/lib/scrivito/obj_search_enumerator.rb +79 -37
- data/lib/scrivito/obj_ui_config.rb +20 -0
- data/lib/scrivito/publish_ability.rb +14 -0
- data/lib/scrivito/sdk_engine.rb +2 -0
- data/lib/scrivito/ui_config.rb +1 -3
- data/lib/scrivito/user.rb +17 -1
- data/lib/scrivito/widget_collection.rb +1 -1
- data/lib/scrivito/workspace.rb +0 -16
- data/lib/scrivito/workspace/publish_checker.rb +3 -3
- metadata +13 -7
- data/app/views/scrivito/users/suggest.json.jbuilder +0 -1
- data/lib/scrivito/obj_params_parser.rb +0 -36
- data/lib/scrivito/obj_update_params_parser.rb +0 -28
@@ -0,0 +1,20 @@
|
|
1
|
+
module Scrivito
|
2
|
+
class ObjUiConfig < Struct.new(:obj)
|
3
|
+
def self.mget(*ids)
|
4
|
+
objs = Obj.find(ids)
|
5
|
+
|
6
|
+
ids.map do |id|
|
7
|
+
if obj = objs.find { |o| o.id == id }
|
8
|
+
ObjUiConfig.new(obj)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def as_json
|
14
|
+
{
|
15
|
+
description_for_editor: obj.description_for_editor,
|
16
|
+
info_for_content_browser: obj.try(:info_for_content_browser),
|
17
|
+
}.compact
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Scrivito
|
2
|
+
class PublishAbility < Struct.new(:scrivito_user, :obj_id)
|
3
|
+
def as_json
|
4
|
+
{restriction_messages: restriction_messages}
|
5
|
+
end
|
6
|
+
|
7
|
+
private
|
8
|
+
|
9
|
+
def restriction_messages
|
10
|
+
obj = Obj.find(obj_id)
|
11
|
+
scrivito_user.restriction_messages_for(obj)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/scrivito/sdk_engine.rb
CHANGED
data/lib/scrivito/ui_config.rb
CHANGED
data/lib/scrivito/user.rb
CHANGED
@@ -108,6 +108,10 @@ module Scrivito
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
+
def mget(*ids)
|
112
|
+
ids.map(&method(:find))
|
113
|
+
end
|
114
|
+
|
111
115
|
private
|
112
116
|
|
113
117
|
def define_user(id = nil)
|
@@ -224,6 +228,14 @@ module Scrivito
|
|
224
228
|
id.nil?
|
225
229
|
end
|
226
230
|
|
231
|
+
def as_json
|
232
|
+
{
|
233
|
+
id: id,
|
234
|
+
description: description,
|
235
|
+
explicit_rules: explicit_rules_as_json,
|
236
|
+
}
|
237
|
+
end
|
238
|
+
|
227
239
|
private
|
228
240
|
|
229
241
|
def calculate_description
|
@@ -242,11 +254,15 @@ module Scrivito
|
|
242
254
|
|
243
255
|
def sandbox_suggest_user_proc(input)
|
244
256
|
suggest_users_proc.call(input)
|
245
|
-
rescue
|
257
|
+
rescue StandardError => e
|
246
258
|
message = %{Method `suggest_users' of the user "#{id}" raised an error on input "#{input}"}
|
247
259
|
Warning.error(message, e)
|
248
260
|
|
249
261
|
nil
|
250
262
|
end
|
263
|
+
|
264
|
+
def explicit_rules_as_json
|
265
|
+
@explicit_rules.map { |(adverb, verb, _)| "#{adverb}-#{verb}" }
|
266
|
+
end
|
251
267
|
end
|
252
268
|
end
|
@@ -20,7 +20,7 @@ module Scrivito
|
|
20
20
|
# @api public
|
21
21
|
#
|
22
22
|
# Enables you to iterate the {Scrivito::BasicWidget Widgets} of an {Scrivito::BasicObj Obj}.
|
23
|
-
# Includes the {
|
23
|
+
# Includes the {https://ruby-doc.org/core-2.1.0/Enumerable.html Enumerable} mixin
|
24
24
|
# and thereby provides methods like +map+ or +select+.
|
25
25
|
# @yield [Scrivito::BasicWidget] the {Scrivito::BasicWidget Widgets} of an {Scrivito::BasicObj Obj}
|
26
26
|
#
|
data/lib/scrivito/workspace.rb
CHANGED
@@ -357,22 +357,6 @@ class Workspace
|
|
357
357
|
"<#{self.class} id=\"#{id}\" title=\"#{title}\">"
|
358
358
|
end
|
359
359
|
|
360
|
-
def has_modification_for?(obj_id)
|
361
|
-
!!objs.find_including_deleted(obj_id).modification
|
362
|
-
rescue Scrivito::ResourceNotFound
|
363
|
-
false
|
364
|
-
end
|
365
|
-
|
366
|
-
def self.all_with_modification_for(obj_id)
|
367
|
-
all.select do |ws|
|
368
|
-
ws.has_modification_for?(obj_id)
|
369
|
-
end
|
370
|
-
end
|
371
|
-
|
372
|
-
def conflict_warning_for(obj_id)
|
373
|
-
self.class.all_with_modification_for(obj_id) - [self]
|
374
|
-
end
|
375
|
-
|
376
360
|
private
|
377
361
|
|
378
362
|
def update_data(new_data)
|
@@ -98,10 +98,10 @@ module Scrivito
|
|
98
98
|
response[:from].to_i
|
99
99
|
end
|
100
100
|
|
101
|
-
last_until = sorted_responses.inject(-1) do |
|
102
|
-
if
|
101
|
+
last_until = sorted_responses.inject(-1) do |inner_last_until, response|
|
102
|
+
if inner_last_until == 'END'
|
103
103
|
raise_invalid_certificates_error
|
104
|
-
elsif (
|
104
|
+
elsif (inner_last_until + 1) == response[:from].to_i
|
105
105
|
if response[:until] == 'END'
|
106
106
|
'END'
|
107
107
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scrivito_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.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: 2016-12
|
11
|
+
date: 2016-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -181,6 +181,7 @@ files:
|
|
181
181
|
- app/controllers/scrivito/resolve_paths_controller.rb
|
182
182
|
- app/controllers/scrivito/sessions_controller.rb
|
183
183
|
- app/controllers/scrivito/tasks_controller.rb
|
184
|
+
- app/controllers/scrivito/ui_configs_controller.rb
|
184
185
|
- app/controllers/scrivito/ui_controller.rb
|
185
186
|
- app/controllers/scrivito/users_controller.rb
|
186
187
|
- app/controllers/scrivito/webservice_controller.rb
|
@@ -211,7 +212,9 @@ files:
|
|
211
212
|
- app/views/scrivito/sessions/update.json.jbuilder
|
212
213
|
- app/views/scrivito/tasks/show.json.jbuilder
|
213
214
|
- app/views/scrivito/ui/index.html.erb
|
214
|
-
- app/views/scrivito/
|
215
|
+
- app/views/scrivito/ui_configs/ui_configs.json.jbuilder
|
216
|
+
- app/views/scrivito/users/publish_ability.json.jbuilder
|
217
|
+
- app/views/scrivito/users/users.json.jbuilder
|
215
218
|
- app/views/scrivito/webservice/_workspace.json.jbuilder
|
216
219
|
- app/views/scrivito/webservice/empty.json
|
217
220
|
- app/views/scrivito/webservice/error.json.jbuilder
|
@@ -234,7 +237,9 @@ files:
|
|
234
237
|
- lib/assets/images/scrivito/source_too_large.png
|
235
238
|
- lib/assets/images/scrivito/source_type_invalid.png
|
236
239
|
- lib/assets/javascripts/scrivito.js
|
240
|
+
- lib/assets/javascripts/scrivito_sdk.js
|
237
241
|
- lib/assets/javascripts/scrivito_ui.js
|
242
|
+
- lib/assets/javascripts/scrivito_ui_redirect.js
|
238
243
|
- lib/assets/stylesheets/scrivito.css
|
239
244
|
- lib/assets/stylesheets/scrivito_ui.css
|
240
245
|
- lib/generators/scrivito/install/install_generator.rb
|
@@ -278,6 +283,7 @@ files:
|
|
278
283
|
- lib/generators/scrivito/widget/widget_generator.rb
|
279
284
|
- lib/obj.rb
|
280
285
|
- lib/scrivito/access_denied.rb
|
286
|
+
- lib/scrivito/associations.rb
|
281
287
|
- lib/scrivito/attribute_content.rb
|
282
288
|
- lib/scrivito/attribute_definition.rb
|
283
289
|
- lib/scrivito/attribute_definition_collection.rb
|
@@ -367,17 +373,17 @@ files:
|
|
367
373
|
- lib/scrivito/obj_data.rb
|
368
374
|
- lib/scrivito/obj_data_from_hash.rb
|
369
375
|
- lib/scrivito/obj_facet_value.rb
|
370
|
-
- lib/scrivito/obj_params_parser.rb
|
371
376
|
- lib/scrivito/obj_search_builder.rb
|
372
377
|
- lib/scrivito/obj_search_enumerator.rb
|
373
378
|
- lib/scrivito/obj_search_enumerator/batch.rb
|
374
379
|
- lib/scrivito/obj_search_enumerator/batch_iterator.rb
|
375
380
|
- lib/scrivito/obj_search_enumerator/facet_query.rb
|
376
381
|
- lib/scrivito/obj_search_enumerator/query_executor.rb
|
377
|
-
- lib/scrivito/
|
382
|
+
- lib/scrivito/obj_ui_config.rb
|
378
383
|
- lib/scrivito/page_config.rb
|
379
384
|
- lib/scrivito/parent_path.rb
|
380
385
|
- lib/scrivito/preset_routes.rb
|
386
|
+
- lib/scrivito/publish_ability.rb
|
381
387
|
- lib/scrivito/rate_limit_exceeded.rb
|
382
388
|
- lib/scrivito/request_homepage.rb
|
383
389
|
- lib/scrivito/restriction_set.rb
|
@@ -421,9 +427,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
421
427
|
version: 2.1.0
|
422
428
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
423
429
|
requirements:
|
424
|
-
- - "
|
430
|
+
- - ">"
|
425
431
|
- !ruby/object:Gem::Version
|
426
|
-
version:
|
432
|
+
version: 1.3.1
|
427
433
|
requirements: []
|
428
434
|
rubyforge_project:
|
429
435
|
rubygems_version: 2.4.5
|
@@ -1 +0,0 @@
|
|
1
|
-
json.array! @suggested_users, :id, :description
|
@@ -1,36 +0,0 @@
|
|
1
|
-
module Scrivito
|
2
|
-
class ObjParamsParser < Struct.new(:host, :port, :context)
|
3
|
-
class UnknownWidgetAction < ScrivitoError
|
4
|
-
end
|
5
|
-
|
6
|
-
def parse(params)
|
7
|
-
params = params.deep_dup
|
8
|
-
convert_params(params)
|
9
|
-
params
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def convert_field_params(params, attribute_definitions)
|
15
|
-
params.each_pair do |key, value|
|
16
|
-
params[key] = case type = attribute_definitions[key.to_s].try(:type)
|
17
|
-
when 'binary' then parse_binary_params(value)
|
18
|
-
when 'html' then ContentConversion.convert_html_links(value, host, port)
|
19
|
-
when 'link' then ContentConversion.convert_link(value, host, port)
|
20
|
-
when 'linklist' then ContentConversion.convert_linklist_urls(value, host, port)
|
21
|
-
when 'date' then DateConversion.deserialize_from_client(value)
|
22
|
-
else value
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def parse_binary_params(params)
|
28
|
-
return unless params
|
29
|
-
UploadedBinary.new(params)
|
30
|
-
end
|
31
|
-
|
32
|
-
def raise_widget_not_found_error(widget_id)
|
33
|
-
raise ResourceNotFound, "Could not find Widget with id #{widget_id}"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Scrivito
|
2
|
-
class ObjUpdateParamsParser < ObjParamsParser
|
3
|
-
private
|
4
|
-
|
5
|
-
def obj
|
6
|
-
context[:current_obj]
|
7
|
-
end
|
8
|
-
|
9
|
-
def convert_params(params)
|
10
|
-
convert_field_params(params, obj.attribute_definitions)
|
11
|
-
convert_widget_pool_params(params)
|
12
|
-
end
|
13
|
-
|
14
|
-
def convert_widget_pool_params(params)
|
15
|
-
return unless params['_widget_pool']
|
16
|
-
|
17
|
-
widget_pool = {}
|
18
|
-
params['_widget_pool'].each_pair do |widget_id, widget_params|
|
19
|
-
if widget_params.present?
|
20
|
-
widget = obj.widgets[widget_id]
|
21
|
-
raise_widget_not_found_error(widget_id) unless widget
|
22
|
-
widget_pool[widget] = convert_field_params(widget_params, widget.attribute_definitions)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
params['_widget_pool'] = widget_pool
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|