infopark_fiona7 1.2.0.2.3 → 1.5.2.0.0

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +33 -0
  3. data/app/assets/javascripts/fiona7_ui.js +82 -23
  4. data/app/assets/javascripts/scrivito_patches/ajax.js +222 -0
  5. data/app/assets/javascripts/scrivito_patches/ajax_error_handling.js +24 -0
  6. data/app/assets/javascripts/scrivito_patches/attribute_serializer.js +259 -0
  7. data/app/assets/javascripts/scrivito_patches/base_obj_path.js +17 -0
  8. data/app/assets/javascripts/scrivito_patches/binary_utils.js +33 -0
  9. data/app/assets/javascripts/scrivito_patches/cms_rest_api.js +490 -0
  10. data/app/assets/javascripts/scrivito_patches/models/api/basic_obj.js +650 -0
  11. data/app/assets/javascripts/scrivito_patches/models/binary_field_element.js +53 -0
  12. data/app/assets/javascripts/scrivito_patches/models/obj.js +74 -239
  13. data/app/assets/javascripts/scrivito_patches/obj_serializer.js +91 -0
  14. data/app/assets/stylesheets/fiona7.css.scss +12 -0
  15. data/app/assets/stylesheets/fiona7_ui.css.scss +18 -0
  16. data/app/controllers/fiona7/api_controller.rb +20 -0
  17. data/app/controllers/fiona7/sessions_controller.rb +2 -10
  18. data/app/controllers/fiona7_login_page_controller.rb +0 -3
  19. data/app/controllers/scrivito/obj_class_controller.rb +58 -0
  20. data/app/controllers/scrivito/objs_controller.rb +2 -38
  21. data/app/helpers/fiona7_override_helper.rb +25 -0
  22. data/app/views/fiona7/release/preview.html.erb +1 -1
  23. data/app/views/fiona7_login_page/index.html.erb +0 -6
  24. data/app/views/scrivito/ui/index.html.erb +2 -1
  25. data/app/views/scrivito/webservice/_workspace.json.jbuilder +8 -0
  26. data/config/locales/errors.yml +18 -0
  27. data/config/locales/workflow.yml +24 -0
  28. data/config/precedence_routes.rb +7 -14
  29. data/infopark_fiona7.gemspec +6 -4
  30. data/lib/fiona7/assert.rb +2 -2
  31. data/lib/fiona7/attribute_readers/factory.rb +4 -0
  32. data/lib/fiona7/attribute_type_mapper.rb +4 -1
  33. data/lib/fiona7/attribute_writers/binary_as_binary.rb +2 -2
  34. data/lib/fiona7/attribute_writers/binary_as_linklist.rb +2 -2
  35. data/lib/fiona7/attribute_writers/factory.rb +4 -0
  36. data/lib/fiona7/builder/indirect_blob_builder.rb +2 -2
  37. data/lib/fiona7/builder/lazy_blob_copier.rb +1 -1
  38. data/lib/fiona7/builder/obj_builder.rb +45 -12
  39. data/lib/fiona7/controllers/rest_api/error_handler.rb +49 -0
  40. data/lib/fiona7/controllers/rest_api/obj_controller.rb +34 -20
  41. data/lib/fiona7/controllers/rest_api/session_controller.rb +13 -0
  42. data/lib/fiona7/engine.rb +7 -10
  43. data/lib/fiona7/facet_builder.rb +5 -1
  44. data/lib/fiona7/naive_search_engine.rb +9 -0
  45. data/lib/fiona7/routers/rest_api.rb +17 -0
  46. data/lib/fiona7/scrivito_patches/attribute_content.rb +28 -0
  47. data/lib/fiona7/scrivito_patches/cms_routing.rb +14 -31
  48. data/lib/fiona7/scrivito_patches/page_config.rb +1 -0
  49. data/lib/fiona7/scrivito_user.rb +3 -2
  50. data/lib/fiona7/type_register.rb +4 -0
  51. data/lib/fiona7/verity_search_engine.rb +6 -17
  52. data/lib/fiona7/version.rb +1 -1
  53. data/lib/fiona7/workspace.rb +2 -0
  54. metadata +28 -14
  55. data/app/assets/javascripts/scrivito_patches/models/ajax.js +0 -99
  56. data/app/assets/javascripts/scrivito_patches/models/blob.js +0 -50
@@ -0,0 +1,13 @@
1
+ module Fiona7
2
+ module Controllers
3
+ module RestAPI
4
+ class SessionController
5
+ def update(id, payload)
6
+ # NO OP
7
+ new_session = payload[:session].merge(id: id, maxage: 2_000_000 ).stringify_keys
8
+ return new_session
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
data/lib/fiona7/engine.rb CHANGED
@@ -157,21 +157,16 @@ module Fiona7
157
157
  config.editing_auth do |env|
158
158
  request = ActionDispatch::Request.new(env)
159
159
  session = request.session
160
- rsession = Reactor::SessionHelper::RsessionHelper.from_session(session)
160
+ rsession = session[:rsession]
161
161
  if rsession && rsession.user?
162
162
  Fiona7::ScrivitoUser.define(rsession.user)
163
163
  end
164
164
  end
165
165
 
166
166
  config.find_user do |user_id|
167
- begin
168
- user = Reactor::Cache::User.instance.get(user_id)
169
- Fiona7::ScrivitoUser.define(user)
170
- rescue Reactor::Cm::XmlSingleRequestError => e
171
- # this is the error code for entry (possibly user) not found
172
- # other errors we want to pass on (unauthorized, etc)
173
- raise e unless e.message =~ /060001/
174
- end
167
+ user = Reactor::Cache::User.instance.get(user_id)
168
+
169
+ Fiona7::ScrivitoUser.define(user)
175
170
  end
176
171
  end
177
172
  end
@@ -181,6 +176,8 @@ module Fiona7
181
176
  end
182
177
 
183
178
  RailsConnector::Configuration.instance_name = config.instance
179
+
180
+ Scrivito::Configuration.tenant = config.instance
184
181
  end
185
182
  end
186
183
 
@@ -242,7 +239,7 @@ module Fiona7
242
239
  # for the current user (root most likely), which is not
243
240
  # really a thing that we want - being root by default
244
241
  # should only happen in the root mode
245
- if !rsession.user?
242
+ if !session[:rsession]
246
243
  rsession.destroy
247
244
  end
248
245
  end
@@ -8,7 +8,7 @@ module Fiona7
8
8
 
9
9
  @attribute = facet_params[:attribute]
10
10
 
11
- @limit = [facet_params[:limit] || 20, 100].min # default = 20, limit <= 100
11
+ @limit = [facet_params[:limit] || 10, 100].min # default = 10, limit <= 100
12
12
  @fake_limit = 100
13
13
  @include_objs = facet_params[:include_objs] || false
14
14
 
@@ -47,6 +47,10 @@ module Fiona7
47
47
  # this gives a true total!
48
48
  facet[:total] = search.total
49
49
  end
50
+ else
51
+ @facets.each do |facet|
52
+ facet[:results] = []
53
+ end
50
54
  end
51
55
 
52
56
  @facets
@@ -118,6 +118,15 @@ module Fiona7
118
118
  else
119
119
  @all = @all.where(:path => value)
120
120
  end
121
+ elsif field == :_permalink
122
+ value = [value] unless value.is_a?(Array)
123
+ if (@all.is_a?(Array))
124
+ @all = @all.select do |o|
125
+ value.include?(o.permalink)
126
+ end
127
+ else
128
+ @all = @all.where(:permalink => value)
129
+ end
121
130
  elsif field == :_parent_path
122
131
  parent_obj = @klass.where(path: value).first
123
132
  if parent_obj
@@ -1,6 +1,9 @@
1
1
  require "fiona7/controllers/rest_api/obj_controller"
2
2
  require "fiona7/controllers/rest_api/blob_controller"
3
3
  require "fiona7/controllers/rest_api/workspace_controller"
4
+ require "fiona7/controllers/rest_api/session_controller"
5
+
6
+ require "fiona7/controllers/rest_api/error_handler"
4
7
 
5
8
  class Scrivito::CmsRestApi
6
9
  class << self
@@ -52,6 +55,9 @@ class Scrivito::CmsRestApi
52
55
  when /\A\/?workspaces\/[a-zA-Z0-9_-]+\/changes\Z/
53
56
  _, _, workspace_id,_ = *resource_path.split("/")
54
57
  Fiona7::Controllers::RestAPI::WorkspaceController.new.changes(workspace_id)
58
+ when /\A\/?workspaces\/[a-zA-Z0-9_-]+\/objs\/mget+\Z/
59
+ _, _, workspace_id, _, _ = *resource_path.split("/")
60
+ Fiona7::Controllers::RestAPI::ObjController.new.fetch_multiple2(workspace_id, payload)
55
61
  when /\A\/?workspaces\/[a-zA-Z0-9_-]+\/objs\/[a-zA-Z0-9_-]+\Z/
56
62
  _, _, workspace_id, _, obj_id = *resource_path.split("/")
57
63
  Fiona7::Controllers::RestAPI::ObjController.new.fetch_by_id(workspace_id, obj_id)
@@ -71,6 +77,8 @@ class Scrivito::CmsRestApi
71
77
  original_get(resource_path, payload, options||{})
72
78
  end
73
79
  end
80
+ rescue *Fiona7::ErrorHandler::HANDLED_ERRORS => e
81
+ raise Fiona7::ErrorHandler.new(e).sdk_error
74
82
  end
75
83
 
76
84
  alias_method :original_delete, :delete
@@ -94,6 +102,8 @@ class Scrivito::CmsRestApi
94
102
  else
95
103
  original_delete(resource_path, payload, options||{})
96
104
  end
105
+ rescue *Fiona7::ErrorHandler::HANDLED_ERRORS => e
106
+ raise Fiona7::ErrorHandler.new(e).sdk_error
97
107
  end
98
108
 
99
109
  alias_method :original_post, :post
@@ -114,6 +124,8 @@ class Scrivito::CmsRestApi
114
124
  else
115
125
  original_post(resource_path, payload, options||{})
116
126
  end
127
+ rescue *Fiona7::ErrorHandler::HANDLED_ERRORS => e
128
+ raise Fiona7::ErrorHandler.new(e).sdk_error
117
129
  end
118
130
 
119
131
  alias_method :original_put, :put
@@ -143,9 +155,14 @@ class Scrivito::CmsRestApi
143
155
  when /\A\/?blobs\/[a-zA-Z0-9]+\/copy/
144
156
  _, _, blob_id, _ = * resource_path.split("/")
145
157
  Fiona7::Controllers::RestAPI::BlobController.new.copy(blob_id, payload)
158
+ when /\A\/?sessions\/[a-zA-Z0-9]+/
159
+ _, _, session_id = *resource_path.split("/")
160
+ Fiona7::Controllers::RestAPI::SessionController.new.update(session_id, payload)
146
161
  else
147
162
  original_put(resource_path, payload, options||{})
148
163
  end
164
+ rescue *Fiona7::ErrorHandler::HANDLED_ERRORS => e
165
+ raise Fiona7::ErrorHandler.new(e).sdk_error
149
166
  end
150
167
  end
151
168
  end
@@ -20,6 +20,16 @@ module Scrivito
20
20
  to_s.titleize
21
21
  end
22
22
 
23
+ # support shadow classes
24
+ def as_json
25
+ {
26
+ name: to_s,
27
+ descriptionForEditor: description_for_editor,
28
+ attributes: attribute_definitions.map(&:as_json),
29
+ }
30
+ end
31
+
32
+
23
33
  def register_attribute_definitions(obj_class)
24
34
  type_register = Fiona7::TypeRegister.instance
25
35
  self.attribute_definitions.each do |attribute_definition|
@@ -27,6 +37,24 @@ module Scrivito
27
37
  type_register.add_usr_attr(obj_class, attribute_definition.name, attribute_definition.type, attribute_definition.values.presence)
28
38
  end
29
39
  end
40
+
41
+ # support legacy attribute names
42
+ def assert_valid_attribute_name(name)
43
+ if name == 'id'
44
+ raise ScrivitoError, "Invalid attribute name 'id'. 'id' is reserved for the system."
45
+ end
46
+
47
+ if name !~ /\A[A-Za-z][A-Za-z0-9_]*\z/ # <-- PATCH HERE
48
+ raise ScrivitoError, "Invalid attribute name '#{name}'. " \
49
+ "The first character must be an ASCII letter, " \
50
+ "subsequent characters may also be digits or underscores."
51
+ end
52
+
53
+ if name.size > 50
54
+ raise ScrivitoError, "Invalid attribute name '#{name}'. " \
55
+ "Attribute names must not be longer than 50 characters."
56
+ end
57
+ end
30
58
  end
31
59
  end
32
60
  end
@@ -34,7 +34,7 @@ module Scrivito
34
34
  def path_or_url_without_editing_context(target, path_or_url, options)
35
35
  if target.is_a?(Link)
36
36
  path_or_url_for_links(target, path_or_url, options)
37
- elsif target.is_a?(::Scrivito::BasicObj)
37
+ elsif target.is_a?(::Scrivito::BasicObj) # <-- patch here
38
38
  path_or_url_for_objs(target, path_or_url, options)
39
39
  elsif target.respond_to?(:first)
40
40
  if target.first.is_a?(Link)
@@ -50,20 +50,22 @@ module Scrivito
50
50
  end
51
51
  end
52
52
 
53
- # Use fiona connector permalinks in legacy mode
53
+
54
+ # Use fiona connector permalinks and binary urls in legacy mode
54
55
  def path_or_url_for_objs(obj, path_or_url, options)
55
56
  permalink = obj.permalink
56
- if permalink && route_defined?(:permalink) && permalink.split('/').first != 'scrivito'
57
-
57
+ if permalink && (route = find_route(:permalink)) && permalink.split('/').first != 'scrivito'
58
+ # -- patch here --
58
59
  if Fiona7.mode == :legacy
59
60
  context.public_send("cms_permalink_#{path_or_url}", options.merge(:permalink => permalink))
60
61
  else
61
- use_route(:permalink, path_or_url, options.merge(:permalink => permalink))
62
+ route.generate(path_or_url, options.merge(:permalink => permalink))
62
63
  end
63
- elsif homepage?(obj) && route_defined?(:homepage)
64
- use_route(:homepage, path_or_url, options)
64
+ # -- patch ends here --
65
+ elsif homepage?(obj) && route = find_route(:homepage)
66
+ route.generate(path_or_url, options)
65
67
  elsif obj.binary?
66
- # use fiona connector routes when possible
68
+ # -- patch here --
67
69
  if Fiona7.mode == :legacy && self.image_options.blank?
68
70
  if binary = obj.binary
69
71
  params = {
@@ -72,6 +74,7 @@ module Scrivito
72
74
  format: obj.file_extension
73
75
  }
74
76
 
77
+ # use fiona connector routes when possible
75
78
  context.public_send("cms_id_#{path_or_url}", params)
76
79
  else
77
80
  LINK_TO_EMPTY_BLOB
@@ -79,9 +82,10 @@ module Scrivito
79
82
  else
80
83
  binary_obj_url(obj) || LINK_TO_EMPTY_BLOB
81
84
  end
82
- elsif route_defined?(:slug_id)
85
+ # -- patch ends here --
86
+ elsif route = find_route(:slug_id)
83
87
  slug = obj.slug.present? ? obj.slug.sub(/^\//, '') : nil
84
- id_path_or_url_for_objs(obj, path_or_url, options.merge(slug: slug))
88
+ route.generate(path_or_url, options.merge(id: obj.id, slug: slug))
85
89
  else
86
90
  raise ScrivitoError, "The required scrivito route 'slug_id' is not defined. "\
87
91
  "Please add a 'slug_id' definition to your routes.rb. See the documentation"\
@@ -89,27 +93,6 @@ module Scrivito
89
93
  end
90
94
  end
91
95
 
92
- # use fiona connector routes when possible
93
- def id_path_or_url_for_objs(obj, path_or_url, options)
94
- if Fiona7.mode == :standalone
95
- options[:id] = obj.id
96
-
97
- # Options must have the key slug.
98
- # Otherwise Rails will use the slug from current request params.
99
- options[:slug] ||= nil
100
-
101
- use_route(:slug_id, path_or_url, options)
102
- else
103
- options[:id] = obj.id
104
-
105
- # Options must have the key slug.
106
- # Otherwise Rails will use the slug from current request params.
107
- options[:slug] ||= nil
108
-
109
- context.public_send("cms_id_#{path_or_url}", options)
110
- end
111
- end
112
-
113
96
  end
114
97
  end
115
98
 
@@ -9,6 +9,7 @@ module Scrivito
9
9
  id: obj.id,
10
10
  path: obj.path,
11
11
  obj_class: obj.obj_class,
12
+ description_for_editor: obj.description_for_editor,
12
13
  has_children: obj.children.any?,
13
14
  has_conflict: obj.has_conflict?,
14
15
  has_details_view: obj_has_details_view?,
@@ -24,8 +24,9 @@ module Fiona7
24
24
  # whether the user is trying to publish changes made to a particular website
25
25
  # section, here "investor relations", which requires a special permission.
26
26
  #
27
- user_definition.restrict_obj_publish(using: :_path) do |path|
28
- obj = Fiona7::WriteObj.find_by_path(path)
27
+ user_definition.restrict_obj_publish(using: :_id) do |id|
28
+ obj = Fiona7::WriteObj.find(id)
29
+ path = obj.path
29
30
  if !obj || !obj.permission.release?(rsession_user.user_name)
30
31
  I18n.t(:"fiona7.publish_permission_resticted", path: path)
31
32
  elsif obj && !obj.valid?(:release)
@@ -216,6 +216,10 @@ module Fiona7
216
216
  # was initially ad-hoc created, but now
217
217
  # has a proper definition
218
218
  true
219
+ when [:number, :float]
220
+ true
221
+ when [:number, :integer]
222
+ true
219
223
  else
220
224
  message = "Attribute types for #{attr_name} incompatible: CMS uses #{cms_type} but the application provided #{usr_type}"
221
225
  if ::Fiona7.config.dont_yell_at_me_for_abusing_attributes
@@ -86,14 +86,13 @@ module Fiona7
86
86
  conditions = query.map do |q|
87
87
  field = resolve_field_name(q[:field])
88
88
 
89
+ # paths are sadly not in the search index by default.
90
+ next if field == :visiblePath
91
+
89
92
  case q[:operator]
90
93
  when :equal
91
94
  if field == :__dummy__
92
95
  '("edited" <#IN> state)'
93
- elsif field ==:_path
94
- paths = Array(q[:value])
95
- ids = Fiona7::WriteObj.where(path: paths).select(:obj_id).limit(1000).map(&:obj_id).map(&:to_s).presence || ["1000"]
96
- search_in(:objId, ids)
97
96
  else
98
97
  search_in(field, q[:value])
99
98
  end
@@ -114,12 +113,6 @@ module Fiona7
114
113
  values = as_values_array(q[:value])
115
114
  values = values.map {|v| "#{v}*" }
116
115
  full_text_query_string(values)
117
- elsif field == :_path
118
- query = []
119
- paths = Array(q[:value]).map {|p| "#{p}%" }
120
- paths.each { |_| query << " (path LIKE ?) " }
121
- ids = Fiona7::WriteObj.where(query.join(' AND '), paths).select(:obj_id).limit(1000).map(&:obj_id).map(&:to_s).presence || ["1000"]
122
- search_in(:objId, ids)
123
116
  else
124
117
  values = as_values_array(q[:value])
125
118
  values = values.map {|v| "#{v}*" }
@@ -143,7 +136,7 @@ module Fiona7
143
136
 
144
137
  def search_in(field, values)
145
138
  values = [values] unless values.kind_of?(Array)
146
- if [:objClass, :objId, :permalink, :lastChanged, :name].include?(field)
139
+ if [:objClass, :obj_id, :permalink, :lastChanged, :name].include?(field)
147
140
  fields = [field.to_s]
148
141
  else
149
142
  fields = Fiona7::AttributeNamesFromQueries.new(field.to_s, @query).attributes || Fiona7::AttributeNamesFromCms.new(field.to_s).attributes || [field.to_s]
@@ -179,15 +172,11 @@ module Fiona7
179
172
  when :_obj_class
180
173
  :objClass
181
174
  when :_path
182
- :_path
175
+ :visiblePath
183
176
  when :_modification
184
177
  :__dummy__
185
178
  when :id
186
- :objId
187
- when :_id
188
- :objId
189
- when :obj_id
190
- :objId
179
+ :obj_id
191
180
  when :_permalink
192
181
  :permalink
193
182
  when :_last_changed
@@ -1,3 +1,3 @@
1
1
  module Fiona7
2
- VERSION = "1.2.0.2.3"
2
+ VERSION = "1.5.2.0.0"
3
3
  end
@@ -58,6 +58,8 @@ module Fiona7
58
58
  title: self.title,
59
59
  revision_id: self.revision_id,
60
60
  content_state_id: self.content_state_id,
61
+ outdated: false,
62
+ auto_update: (self.id == :rtc),
61
63
  memberships: self.memberships
62
64
  }
63
65
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infopark_fiona7
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.2.3
4
+ version: 1.5.2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomasz Przedmojski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-26 00:00:00.000000000 Z
11
+ date: 2016-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.2.0
33
+ version: 1.5.2
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
- version: 1.2.0
40
+ version: 1.5.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: scrivito_sdk
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 1.23.1
89
+ version: 1.22.4
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
- version: 1.23.1
96
+ version: 1.22.4
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: mini_magick
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -109,19 +109,19 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: jquery-ui-rails
112
+ name: scrivito_development
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "<"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 6.0.0
118
- type: :runtime
117
+ version: '0'
118
+ type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "<"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 6.0.0
124
+ version: '0'
125
125
  description: scrivito-compatible interface for classic Fiona
126
126
  email:
127
127
  - tomasz.przedmojski@infopark.de
@@ -135,12 +135,20 @@ files:
135
135
  - app/assets/images/fiona7-marker.png
136
136
  - app/assets/javascripts/fiona7.js
137
137
  - app/assets/javascripts/fiona7_ui.js
138
- - app/assets/javascripts/scrivito_patches/models/ajax.js
139
- - app/assets/javascripts/scrivito_patches/models/blob.js
138
+ - app/assets/javascripts/scrivito_patches/ajax.js
139
+ - app/assets/javascripts/scrivito_patches/ajax_error_handling.js
140
+ - app/assets/javascripts/scrivito_patches/attribute_serializer.js
141
+ - app/assets/javascripts/scrivito_patches/base_obj_path.js
142
+ - app/assets/javascripts/scrivito_patches/binary_utils.js
143
+ - app/assets/javascripts/scrivito_patches/cms_rest_api.js
144
+ - app/assets/javascripts/scrivito_patches/models/api/basic_obj.js
145
+ - app/assets/javascripts/scrivito_patches/models/binary_field_element.js
140
146
  - app/assets/javascripts/scrivito_patches/models/obj.js
147
+ - app/assets/javascripts/scrivito_patches/obj_serializer.js
141
148
  - app/assets/stylesheets/fiona7-login.css.scss
142
149
  - app/assets/stylesheets/fiona7.css.scss
143
150
  - app/assets/stylesheets/fiona7_ui.css.scss
151
+ - app/controllers/fiona7/api_controller.rb
144
152
  - app/controllers/fiona7/blobs_controller.rb
145
153
  - app/controllers/fiona7/default_scrivito_cms_controller.rb
146
154
  - app/controllers/fiona7/release_controller.rb
@@ -148,6 +156,7 @@ files:
148
156
  - app/controllers/fiona7/workflow_controller.rb
149
157
  - app/controllers/fiona7_login_page_controller.rb
150
158
  - app/controllers/scrivito/cms_dispatch_controller.rb
159
+ - app/controllers/scrivito/obj_class_controller.rb
151
160
  - app/controllers/scrivito/objs_controller.rb
152
161
  - app/controllers/scrivito/webservice_controller.rb
153
162
  - app/helpers/fiona7_login_helper.rb
@@ -164,10 +173,13 @@ files:
164
173
  - app/views/fiona7_login_page/index.html.erb
165
174
  - app/views/layouts/fiona7_login_page_layout.html.erb
166
175
  - app/views/scrivito/ui/index.html.erb
176
+ - app/views/scrivito/webservice/_workspace.json.jbuilder
167
177
  - config/delayed_routes.rb
178
+ - config/locales/errors.yml
168
179
  - config/locales/login.yml
169
180
  - config/locales/permissions.yml
170
181
  - config/locales/release.yml
182
+ - config/locales/workflow.yml
171
183
  - config/precedence_routes.rb
172
184
  - infopark_fiona7.gemspec
173
185
  - lib/fiona7/access_permission_check.rb
@@ -232,7 +244,9 @@ files:
232
244
  - lib/fiona7/complex_object.rb
233
245
  - lib/fiona7/controller_helper.rb
234
246
  - lib/fiona7/controllers/rest_api/blob_controller.rb
247
+ - lib/fiona7/controllers/rest_api/error_handler.rb
235
248
  - lib/fiona7/controllers/rest_api/obj_controller.rb
249
+ - lib/fiona7/controllers/rest_api/session_controller.rb
236
250
  - lib/fiona7/controllers/rest_api/workspace_controller.rb
237
251
  - lib/fiona7/current_user_map.rb
238
252
  - lib/fiona7/custom_verity_accessor.rb