scrivito_sdk 0.16.0 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/scrivito/default_cms_controller.rb +3 -3
- data/app/controllers/scrivito/objs_controller.rb +18 -7
- data/app/controllers/scrivito/webservice_controller.rb +13 -1
- data/app/controllers/scrivito/workspaces_controller.rb +5 -1
- data/app/helpers/scrivito/cms_asset_helper.rb +8 -1
- data/app/helpers/scrivito/default_cms_routing_helper.rb +2 -4
- data/app/helpers/scrivito/display_helper.rb +0 -7
- data/app/helpers/scrivito/editing_helper.rb +10 -8
- data/app/helpers/scrivito/layout_helper.rb +4 -11
- data/config/ca-bundle.crt +1773 -1416
- data/config/cms_routes.rb +2 -2
- data/config/routes.rb +1 -0
- data/lib/assets/javascripts/scrivito_editing.js +969 -533
- data/lib/assets/stylesheets/scrivito_editing.css +99 -9
- data/lib/generators/cms/migration/templates/migration.erb +34 -6
- data/lib/generators/cms/widget/templates/migration.erb +3 -6
- data/lib/scrivito/attribute.rb +158 -0
- data/lib/scrivito/attribute_collection.rb +72 -0
- data/lib/scrivito/attribute_content.rb +39 -3
- data/lib/scrivito/basic_obj.rb +48 -27
- data/lib/scrivito/basic_widget.rb +15 -5
- data/lib/scrivito/client_config.rb +46 -19
- data/lib/scrivito/cms_field_tag.rb +1 -1
- data/lib/scrivito/cms_rest_api/attribute_serializer.rb +6 -1
- data/lib/scrivito/cms_rest_api/blob_uploader.rb +1 -1
- data/lib/scrivito/configuration.rb +32 -2
- data/lib/scrivito/connection_manager.rb +1 -6
- data/lib/scrivito/content_conversion.rb +11 -7
- data/lib/scrivito/editing_context.rb +12 -0
- data/lib/scrivito/gem_info.rb +13 -0
- data/lib/scrivito/membership.rb +26 -0
- data/lib/scrivito/memberships_collection.rb +78 -0
- data/lib/scrivito/migrations/migration.rb +1 -1
- data/lib/scrivito/migrations/migration_dsl.rb +37 -0
- data/lib/scrivito/obj_class.rb +282 -0
- data/lib/scrivito/obj_data.rb +20 -1
- data/lib/scrivito/obj_params_parser.rb +2 -0
- data/lib/scrivito/obj_search_builder.rb +1 -1
- data/lib/scrivito/obj_search_enumerator.rb +11 -6
- data/lib/scrivito/objs_collection.rb +130 -0
- data/lib/scrivito/restriction_set.rb +54 -0
- data/lib/scrivito/user.rb +114 -0
- data/lib/scrivito/user_definition.rb +159 -0
- data/lib/scrivito/widget_garbage_collection.rb +4 -4
- data/lib/scrivito/workspace.rb +13 -78
- data/lib/scrivito/workspace_data_from_service.rb +2 -0
- metadata +15 -5
@@ -39,12 +39,12 @@ class WidgetGarbageCollection
|
|
39
39
|
|
40
40
|
deleted_by_dereference = dereferenced - newreferenced
|
41
41
|
|
42
|
-
|
42
|
+
recursively_deleted = []
|
43
43
|
deleted_by_dereference.each do |widget|
|
44
|
-
|
44
|
+
recursively_deleted += all_widgets_contained_in_except(widget, newreferenced)
|
45
45
|
end
|
46
46
|
|
47
|
-
# we dont want to slow
|
47
|
+
# we dont want to slow down every request by scanning for orphans, so
|
48
48
|
# we only do this when widgets are being deleted
|
49
49
|
if deleted_by_dereference.present?
|
50
50
|
orphans = @obj.all_widgets_from_pool - @obj.contained_widgets - newreferenced
|
@@ -52,7 +52,7 @@ class WidgetGarbageCollection
|
|
52
52
|
orphans = []
|
53
53
|
end
|
54
54
|
|
55
|
-
deleted_by_dereference +
|
55
|
+
deleted_by_dereference + recursively_deleted + orphans
|
56
56
|
end
|
57
57
|
|
58
58
|
private
|
data/lib/scrivito/workspace.rb
CHANGED
@@ -108,7 +108,7 @@ class Workspace
|
|
108
108
|
# @api public
|
109
109
|
def reload
|
110
110
|
@workspace_data = CmsBackend.instance.find_workspace_data_by_id(self.id)
|
111
|
-
@revision = @base_revision = nil
|
111
|
+
@revision = @base_revision = @memberships = nil
|
112
112
|
end
|
113
113
|
|
114
114
|
# Updates this workspace's attributes
|
@@ -162,6 +162,14 @@ class Workspace
|
|
162
162
|
@workspace_data.title
|
163
163
|
end
|
164
164
|
|
165
|
+
# @api beta
|
166
|
+
# Returns the members of this workspace and their roles
|
167
|
+
#
|
168
|
+
# @return [MembershipsCollection]
|
169
|
+
def memberships
|
170
|
+
@memberships ||= MembershipsCollection.new(self)
|
171
|
+
end
|
172
|
+
|
165
173
|
def data
|
166
174
|
@workspace_data
|
167
175
|
end
|
@@ -201,52 +209,11 @@ class Workspace
|
|
201
209
|
raise ScrivitoError, 'rtc workspace may contain attribute and class changes' if rtc?
|
202
210
|
end
|
203
211
|
|
204
|
-
#
|
205
|
-
# If the parameter is an Array containing ids, return a list of corresponding Objs.
|
206
|
-
# @param [String, Integer, Array<String, Integer>]id_or_list
|
207
|
-
# @return [Obj, Array<Obj>]
|
208
|
-
# @api public
|
209
|
-
def find_obj(id_or_list)
|
210
|
-
find_filtering_deleted(id_or_list, false)
|
211
|
-
end
|
212
|
-
|
213
|
-
# Find a {BasicObj Obj} by its id.
|
214
|
-
# If the parameter is an Array containing ids, return a list of corresponding Objs.
|
215
|
-
# The results include deleted objects as well.
|
216
|
-
# @param [String, Integer, Array<String, Integer>]id_or_list
|
217
|
-
# @return [Obj, Array<Obj>]
|
218
|
-
# @api public
|
219
|
-
def find_obj_including_deleted(id_or_list)
|
220
|
-
find_filtering_deleted(id_or_list, true)
|
221
|
-
end
|
222
|
-
|
223
|
-
# Find the {BasicObj Obj} with the given path.
|
224
|
-
# Returns +nil+ if no matching Obj exists.
|
225
|
-
# @param [String] path Path of the {BasicObj Obj}.
|
226
|
-
# @return [Obj]
|
212
|
+
# {ObjsCollection} for this working copy
|
227
213
|
# @api public
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
# Returns the {BasicObj Obj} with the given permalink, or +nil+ if no matching Obj exists.
|
233
|
-
# @param [String] permalink The permalink of the {BasicObj Obj}.
|
234
|
-
# @return [Obj]
|
235
|
-
# @api public
|
236
|
-
def find_obj_by_permalink(permalink)
|
237
|
-
find_objs_by(:permalink, [permalink]).first.first
|
238
|
-
end
|
239
|
-
|
240
|
-
def find_objs_by_parent_path(path)
|
241
|
-
find_objs_by(:ppath, [path]).first
|
242
|
-
end
|
243
|
-
|
244
|
-
def find_obj_by_id(id)
|
245
|
-
find_objs_by(:id, [id]).first.first
|
246
|
-
end
|
247
|
-
|
248
|
-
def find_objs_by_paths(paths)
|
249
|
-
find_objs_by(:path, paths).map(&:first)
|
214
|
+
# @return {ObjsCollection}
|
215
|
+
def objs
|
216
|
+
@objs ||= ObjsCollection.new(self)
|
250
217
|
end
|
251
218
|
|
252
219
|
def inspect
|
@@ -255,38 +222,6 @@ class Workspace
|
|
255
222
|
|
256
223
|
private
|
257
224
|
|
258
|
-
def find_filtering_deleted(id_or_list, include_deleted)
|
259
|
-
case id_or_list
|
260
|
-
when Array
|
261
|
-
find_objs_by(:id, id_or_list, include_deleted).map(&:first).compact
|
262
|
-
else
|
263
|
-
obj = find_objs_by(:id, [id_or_list.to_s], include_deleted).first.first
|
264
|
-
obj or raise ResourceNotFound, "Could not find Obj with id #{id_or_list}"
|
265
|
-
end
|
266
|
-
end
|
267
|
-
|
268
|
-
# accepts the name of an "obj_by" - view, a list of keys
|
269
|
-
# and an "include_deleted" flag
|
270
|
-
# returns a list of lists of Objs: a list of Objs for each given keys.
|
271
|
-
def find_objs_by(view, keys, include_deleted = false)
|
272
|
-
if include_deleted
|
273
|
-
finder_method_name = :find_obj_data_including_deleted_by
|
274
|
-
else
|
275
|
-
finder_method_name = :find_obj_data_by
|
276
|
-
end
|
277
|
-
|
278
|
-
result = CmsBackend.instance.public_send(finder_method_name, revision, view, keys)
|
279
|
-
|
280
|
-
result.map do |list|
|
281
|
-
list.map do |obj_data|
|
282
|
-
obj = BasicObj.instantiate(obj_data)
|
283
|
-
obj.revision = revision
|
284
|
-
|
285
|
-
obj
|
286
|
-
end
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
225
|
def backend_url
|
291
226
|
"/workspaces/#{id}"
|
292
227
|
end
|
@@ -24,6 +24,7 @@ class WorkspaceDataFromService
|
|
24
24
|
data_attr_reader :base_revision_id
|
25
25
|
data_attr_reader :base_content_state_id
|
26
26
|
data_attr_reader :diff
|
27
|
+
data_attr_reader :memberships
|
27
28
|
|
28
29
|
def initialize(data)
|
29
30
|
@data = data
|
@@ -68,6 +69,7 @@ class WorkspaceDataFromService
|
|
68
69
|
'content_state_id' => content_state_id,
|
69
70
|
'base_revision_id' => base_revision_id,
|
70
71
|
'base_content_state_id' => base_content_state_id,
|
72
|
+
'memberships' => memberships,
|
71
73
|
}
|
72
74
|
end
|
73
75
|
|
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: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Infopark AG
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.1.1
|
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
|
-
version:
|
68
|
+
version: 3.1.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rest-client
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,6 +193,8 @@ files:
|
|
193
193
|
- lib/generators/cms/widget/widget_generator.rb
|
194
194
|
- lib/obj.rb
|
195
195
|
- lib/scrivito/access_denied.rb
|
196
|
+
- lib/scrivito/attribute.rb
|
197
|
+
- lib/scrivito/attribute_collection.rb
|
196
198
|
- lib/scrivito/attribute_content.rb
|
197
199
|
- lib/scrivito/backend_error.rb
|
198
200
|
- lib/scrivito/basic_obj.rb
|
@@ -231,10 +233,13 @@ files:
|
|
231
233
|
- lib/scrivito/editing_context_middleware.rb
|
232
234
|
- lib/scrivito/engine.rb
|
233
235
|
- lib/scrivito/errors.rb
|
236
|
+
- lib/scrivito/gem_info.rb
|
234
237
|
- lib/scrivito/html_string.rb
|
235
238
|
- lib/scrivito/link.rb
|
236
239
|
- lib/scrivito/link_parser.rb
|
237
240
|
- lib/scrivito/log_subscriber.rb
|
241
|
+
- lib/scrivito/membership.rb
|
242
|
+
- lib/scrivito/memberships_collection.rb
|
238
243
|
- lib/scrivito/migration.rb
|
239
244
|
- lib/scrivito/migrations.rb
|
240
245
|
- lib/scrivito/migrations/cms_backend.rb
|
@@ -248,18 +253,23 @@ files:
|
|
248
253
|
- lib/scrivito/modification.rb
|
249
254
|
- lib/scrivito/named_link.rb
|
250
255
|
- lib/scrivito/network_error.rb
|
256
|
+
- lib/scrivito/obj_class.rb
|
251
257
|
- lib/scrivito/obj_data.rb
|
252
258
|
- lib/scrivito/obj_data_from_hash.rb
|
253
259
|
- lib/scrivito/obj_data_from_service.rb
|
254
260
|
- lib/scrivito/obj_params_parser.rb
|
255
261
|
- lib/scrivito/obj_search_builder.rb
|
256
262
|
- lib/scrivito/obj_search_enumerator.rb
|
263
|
+
- lib/scrivito/objs_collection.rb
|
257
264
|
- lib/scrivito/rate_limit_exceeded.rb
|
265
|
+
- lib/scrivito/restriction_set.rb
|
258
266
|
- lib/scrivito/revision.rb
|
259
267
|
- lib/scrivito/string_tagging.rb
|
260
268
|
- lib/scrivito/text_link.rb
|
261
269
|
- lib/scrivito/text_link_conversion.rb
|
262
270
|
- lib/scrivito/type_computer.rb
|
271
|
+
- lib/scrivito/user.rb
|
272
|
+
- lib/scrivito/user_definition.rb
|
263
273
|
- lib/scrivito/widget_field_params.rb
|
264
274
|
- lib/scrivito/widget_garbage_collection.rb
|
265
275
|
- lib/scrivito/workspace.rb
|
@@ -289,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
299
|
version: '0'
|
290
300
|
requirements: []
|
291
301
|
rubyforge_project:
|
292
|
-
rubygems_version: 2.
|
302
|
+
rubygems_version: 2.2.2
|
293
303
|
signing_key:
|
294
304
|
specification_version: 4
|
295
305
|
summary: SDK for the Scrivito CMS
|