tenon 2.0.8 → 2.1.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/tenon/resources_controller.rb +19 -11
- data/app/helpers/tenon/item_version_helper.rb +2 -2
- data/app/serializers/tenon/application_serializer.rb +4 -4
- data/app/serializers/tenon/paginating_serializer.rb +1 -1
- data/app/views/tenon/assets/index.html.haml +3 -2
- data/app/views/tenon/shared/_breadcrumbs.html.haml +2 -1
- data/app/views/tenon/tenon_content/piece_types/form/_background_image.html.haml +2 -2
- data/app/views/tenon/tenon_content/piece_types/form/_embedded_content.html.haml +1 -1
- data/app/views/tenon/tenon_content/piece_types/form/_image.html.haml +2 -2
- data/lib/tenon/engine.rb +2 -0
- data/lib/tenon/version.rb +1 -1
- metadata +6 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d038aac13fadaa7aa5c313c3f6fae3a04b3dbe4
|
4
|
+
data.tar.gz: f6676fc0f4482456b33e0ef1c5f8f9aeaa89ff7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adbda739248022a53a9c728a062bbee68d970b50e8836b644b676b43ed38b54314dbdc744057e21ae32b3a5b225e53e181d39f9cb18e3e9be31d318066ccf6c4
|
7
|
+
data.tar.gz: b41cc35172c46ceaaa7c255f9120827128b9854c8462dd481f43723bcf78ff58e2d75e89f476e567f789b50cef008f43d6b3e46bcc677654f7c67db9dc273ddb
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module Tenon
|
2
2
|
class ResourcesController < BaseController
|
3
|
+
serialization_scope :view_context
|
4
|
+
|
3
5
|
wrap_parameters format: [:json]
|
4
6
|
respond_to :html, :json, :js
|
5
7
|
after_action :verify_authorized
|
@@ -16,12 +18,19 @@ module Tenon
|
|
16
18
|
self.collection = filterer.filter
|
17
19
|
self.collection = collection.paginate(per_page: 50, page: params[:page])
|
18
20
|
self.collection = Tenon::PaginatingDecorator.decorate(collection)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
render json: collection,
|
22
|
+
each_serializer: serializer,
|
23
|
+
root: 'records',
|
24
|
+
adapter: :json,
|
25
|
+
meta: {
|
26
|
+
pagination: {
|
27
|
+
current_page: collection.current_page,
|
28
|
+
per_page: collection.per_page,
|
29
|
+
offset: collection.offset,
|
30
|
+
total_pages: collection.total_pages,
|
31
|
+
total_entries: collection.total_entries
|
32
|
+
}
|
33
|
+
}
|
25
34
|
end
|
26
35
|
end
|
27
36
|
end
|
@@ -75,7 +84,7 @@ module Tenon
|
|
75
84
|
|
76
85
|
format.json do
|
77
86
|
if resource.valid?
|
78
|
-
render json: resource
|
87
|
+
render json: resource, root: 'record', adapter: :json
|
79
88
|
else
|
80
89
|
render status: 422, json: { errors: resource.errors }
|
81
90
|
end
|
@@ -103,7 +112,7 @@ module Tenon
|
|
103
112
|
|
104
113
|
format.json do
|
105
114
|
if resource.valid?
|
106
|
-
render json: resource
|
115
|
+
render json: resource, root: 'record', adapter: :json
|
107
116
|
else
|
108
117
|
render status: 422, json: { errors: resource.errors }
|
109
118
|
end
|
@@ -134,9 +143,8 @@ module Tenon
|
|
134
143
|
|
135
144
|
private
|
136
145
|
|
137
|
-
|
138
|
-
|
139
|
-
{ root: 'record', scope: view_context }
|
146
|
+
def serializer
|
147
|
+
ActiveModel::Serializer.serializer_for(klass.new)
|
140
148
|
end
|
141
149
|
|
142
150
|
# Override these to execute code after resources are loaded
|
@@ -17,7 +17,7 @@ module Tenon
|
|
17
17
|
css_class = 'draft'
|
18
18
|
data = {
|
19
19
|
'modal-remote' => true,
|
20
|
-
'modal-handler' => '
|
20
|
+
'modal-handler' => 'NewItemVersionHandler',
|
21
21
|
'modal-title' => 'Save Draft'
|
22
22
|
}
|
23
23
|
link_to path, class: css_class, data: data do
|
@@ -36,7 +36,7 @@ module Tenon
|
|
36
36
|
data = {
|
37
37
|
'modal-remote' => true,
|
38
38
|
'modal-title' => 'Load Draft',
|
39
|
-
'modal-handler' => '
|
39
|
+
'modal-handler' => 'ItemVersionIndexHandler'
|
40
40
|
}
|
41
41
|
link_to 'Load Draft', path, class: 'delete-link', data: data
|
42
42
|
end
|
@@ -16,7 +16,7 @@ module Tenon
|
|
16
16
|
klass.to_s.underscore
|
17
17
|
end
|
18
18
|
|
19
|
-
def attributes
|
19
|
+
def attributes(*args)
|
20
20
|
super.merge(default_attributes)
|
21
21
|
end
|
22
22
|
|
@@ -28,9 +28,9 @@ module Tenon
|
|
28
28
|
title: object.title,
|
29
29
|
to_param: object.to_param,
|
30
30
|
resource_type: resource_type,
|
31
|
-
edit_path:
|
32
|
-
update_path:
|
33
|
-
destroy_path:
|
31
|
+
edit_path: view_context.polymorphic_path([:edit, object]),
|
32
|
+
update_path: view_context.polymorphic_path(object),
|
33
|
+
destroy_path: view_context.polymorphic_path(object)
|
34
34
|
}
|
35
35
|
end
|
36
36
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Helpful serializer for including pagination meta
|
2
2
|
# Source: http://stackoverflow.com/a/23002614/131208
|
3
3
|
module Tenon
|
4
|
-
class PaginatingSerializer < ActiveModel::
|
4
|
+
class PaginatingSerializer < ActiveModel::Serializer::CollectionSerializer
|
5
5
|
def initialize(object, options = {})
|
6
6
|
meta_key = options[:meta_key] || :meta
|
7
7
|
options[meta_key] ||= {}
|
@@ -1,5 +1,6 @@
|
|
1
|
-
= react_component '
|
1
|
+
= react_component 'Tenon.RI.Root',
|
2
2
|
title: 'Assets',
|
3
3
|
breadcrumbs: breadcrumb_links,
|
4
4
|
recordsPath: assets_path(format: 'json'),
|
5
|
-
newPath: new_asset_path
|
5
|
+
newPath: new_asset_path,
|
6
|
+
childComponentNames: { List: 'AssetList', Record: 'AssetRecord' }
|
@@ -1 +1,2 @@
|
|
1
|
-
= react_component 'Breadcrumbs',
|
1
|
+
= react_component 'Tenon.reactComponents.Breadcrumbs',
|
2
|
+
breadcrumbs: breadcrumb_links
|
@@ -6,7 +6,7 @@
|
|
6
6
|
- if f.object.image
|
7
7
|
= backend_piece_image_tag(f.object)
|
8
8
|
- else
|
9
|
-
= link_to(new_item_asset_path, class: 'add-image', data: {'modal-remote' => true, 'modal-title' => 'Select Image', 'modal-handler' => '
|
9
|
+
= link_to(new_item_asset_path, class: 'add-image', data: {'modal-remote' => true, 'modal-title' => 'Select Image', 'modal-handler' => 'TenonContentAssetAttachment'}) do
|
10
10
|
%span Add Image
|
11
11
|
|
12
12
|
.medium-editor-toolbar.medium-toolbar-arrow-under.medium-editor-toolbar-active.image-controls{style: 'display: none; margin-top: -65px;'}
|
@@ -15,7 +15,7 @@
|
|
15
15
|
%button{title: 'Crop', class: 'asset-crop medium-editor-action medium-editor-button-first', data: {'tooltip' => true, 'post-crop-handler' => 'Tenon.features.tenonContent.PostCropHandler', 'asset-id' => f.object.image_id}}
|
16
16
|
%i.fa.fa-crop
|
17
17
|
%li
|
18
|
-
%button{href: new_item_asset_path, title: 'Replace Image', class: 'replace-image medium-editor-action medium-editor-button-last', data: {'modal-remote' => 'true', 'modal-title' => "Select Image", 'modal-handler' => '
|
18
|
+
%button{href: new_item_asset_path, title: 'Replace Image', class: 'replace-image medium-editor-action medium-editor-button-last', data: {'modal-remote' => 'true', 'modal-title' => "Select Image", 'modal-handler' => 'TenonContentAssetAttachment', 'tooltip' => true}}
|
19
19
|
%i.fa.fa-picture-o
|
20
20
|
|
21
21
|
.medium-editor-toolbar-form-anchor
|
@@ -1,5 +1,5 @@
|
|
1
1
|
.embedded-content
|
2
|
-
= link_to 'Edit Embed Code', '#', class: 'open-embed-modal', 'data-modal-target' => '.edit-embed-code', 'data-modal-title' => 'Edit Embed Code', 'data-modal-clone' => 'true', 'data-modal-handler' => '
|
2
|
+
= link_to 'Edit Embed Code', '#', class: 'open-embed-modal', 'data-modal-target' => '.edit-embed-code', 'data-modal-title' => 'Edit Embed Code', 'data-modal-clone' => 'true', 'data-modal-handler' => 'TenonContentEmbeddedContent'
|
3
3
|
.embed= raw f.object.try(:embed_code)
|
4
4
|
|
5
5
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
- if f.object.image
|
8
8
|
= backend_piece_image_tag(f.object)
|
9
9
|
- else
|
10
|
-
= link_to(new_item_asset_path, class: 'tn-tc-fields__add-image', data: { 'modal-remote' => true, 'modal-title' => "Select Image", 'modal-handler' => '
|
10
|
+
= link_to(new_item_asset_path, class: 'tn-tc-fields__add-image', data: { 'modal-remote' => true, 'modal-title' => "Select Image", 'modal-handler' => 'TenonContentAssetAttachment' }) do
|
11
11
|
%span Add Image
|
12
12
|
|
13
13
|
= f.super_text_area :caption, class: 'tn-tc-fields__caption', placeholder: 'Enter caption here...', data: { image_caption: true }, style: ("display: none;" unless f.object.show_caption)
|
@@ -50,7 +50,7 @@
|
|
50
50
|
%button.add-link.medium-editor-toolbar__action{ title: 'Add Link', class: ('medium-editor-button-active' unless f.object.link_url.blank?), data: { tooltip: true } }
|
51
51
|
%i.material-icon.material-icon--smaller-on-min link
|
52
52
|
%li
|
53
|
-
%button{ href: new_item_asset_path, title: 'Replace Image', class: 'replace-image medium-editor-toolbar__action medium-editor-button-last', data: { 'modal-remote' => 'true', 'modal-title' => "Select Image", 'modal-handler' => '
|
53
|
+
%button{ href: new_item_asset_path, title: 'Replace Image', class: 'replace-image medium-editor-toolbar__action medium-editor-button-last', data: { 'modal-remote' => 'true', 'modal-title' => "Select Image", 'modal-handler' => 'TenonContentAssetAttachment', 'tooltip' => true } }
|
54
54
|
%i.material-icon.material-icon--smaller-on-min photo_library
|
55
55
|
|
56
56
|
.medium-editor-toolbar-form-anchor
|
data/lib/tenon/engine.rb
CHANGED
data/lib/tenon/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tenon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- factor[e] design initiative
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: capybara-webkit
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: database_cleaner
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,7 +184,7 @@ dependencies:
|
|
198
184
|
requirements:
|
199
185
|
- - ">="
|
200
186
|
- !ruby/object:Gem::Version
|
201
|
-
version: 5.0.0
|
187
|
+
version: 5.0.0
|
202
188
|
- - "<"
|
203
189
|
- !ruby/object:Gem::Version
|
204
190
|
version: 5.1.0
|
@@ -208,7 +194,7 @@ dependencies:
|
|
208
194
|
requirements:
|
209
195
|
- - ">="
|
210
196
|
- !ruby/object:Gem::Version
|
211
|
-
version: 5.0.0
|
197
|
+
version: 5.0.0
|
212
198
|
- - "<"
|
213
199
|
- !ruby/object:Gem::Version
|
214
200
|
version: 5.1.0
|
@@ -218,14 +204,14 @@ dependencies:
|
|
218
204
|
requirements:
|
219
205
|
- - ">="
|
220
206
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
207
|
+
version: 0.10.0
|
222
208
|
type: :runtime
|
223
209
|
prerelease: false
|
224
210
|
version_requirements: !ruby/object:Gem::Requirement
|
225
211
|
requirements:
|
226
212
|
- - ">="
|
227
213
|
- !ruby/object:Gem::Version
|
228
|
-
version:
|
214
|
+
version: 0.10.0
|
229
215
|
- !ruby/object:Gem::Dependency
|
230
216
|
name: cocoon
|
231
217
|
requirement: !ruby/object:Gem::Requirement
|