udongo 6.3.2 → 6.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/backend/application.js +1 -0
- data/app/assets/javascripts/backend/general.js +6 -0
- data/app/assets/stylesheets/backend/application.scss +1 -0
- data/app/assets/stylesheets/backend/base/_general.scss +7 -0
- data/app/assets/stylesheets/backend/pages/_flexible_content.scss +0 -8
- data/app/assets/stylesheets/backend/udongo.scss +2 -0
- data/app/controllers/backend/content/rows/columns_controller.rb +1 -9
- data/app/controllers/backend/content/rows/slideshows_controller.rb +11 -0
- data/app/controllers/backend/content/rows_controller.rb +16 -0
- data/app/controllers/backend/forms/fields_controller.rb +3 -1
- data/app/controllers/backend/image_collections/base_controller.rb +11 -0
- data/app/controllers/backend/image_collections/images_controller.rb +15 -0
- data/app/controllers/backend/image_collections_controller.rb +50 -0
- data/app/controllers/concerns/backend/content_type_controller.rb +1 -10
- data/app/decorators/content_slideshow_decorator.rb +3 -0
- data/app/models/content_slideshow.rb +9 -0
- data/app/models/image_collection.rb +9 -0
- data/app/views/backend/content/_form.html.erb +1 -1
- data/app/views/backend/content/_rows.html.erb +11 -7
- data/app/views/backend/content/_slideshow.html.erb +6 -0
- data/app/views/backend/content/rows/columns/edit.html.erb +6 -14
- data/app/views/backend/content/rows/columns/new.html.erb +6 -14
- data/app/views/backend/content/rows/edit.html.erb +31 -0
- data/app/views/backend/content/rows/forms/edit.html.erb +4 -12
- data/app/views/backend/content/rows/images/edit.html.erb +12 -20
- data/app/views/backend/content/rows/pictures/edit.html.erb +7 -15
- data/app/views/backend/content/rows/pictures/link_or_upload.html.erb +12 -20
- data/app/views/backend/content/rows/slideshows/edit.html.erb +17 -0
- data/app/views/backend/content/rows/texts/edit.html.erb +2 -10
- data/app/views/backend/content/rows/videos/edit.html.erb +5 -6
- data/app/views/backend/forms/fields/_form.html.erb +1 -0
- data/app/views/backend/image_collections/_form.html.erb +19 -0
- data/app/views/backend/image_collections/_tabs.html.erb +18 -0
- data/app/views/backend/image_collections/edit.html.erb +6 -0
- data/app/views/backend/image_collections/images/index.html.erb +43 -0
- data/app/views/backend/image_collections/index.html.erb +30 -0
- data/app/views/backend/image_collections/new.html.erb +5 -0
- data/app/views/backend/lightbox_saved.html.erb +3 -0
- data/app/views/layouts/backend/_top_navigation.html.erb +1 -0
- data/app/views/layouts/backend/lightbox.html.erb +5 -3
- data/changelog.md +13 -0
- data/config/locales/en_backend.yml +5 -6
- data/config/locales/en_forms.yml +14 -0
- data/config/locales/nl_backend.yml +7 -6
- data/config/locales/nl_forms.yml +13 -0
- data/config/routes.rb +7 -1
- data/db/migrate/20170615113617_create_asset_collections.rb +12 -0
- data/db/migrate/20170615120716_rename_asset_collection_to_image_collection.rb +5 -0
- data/db/migrate/20170615131909_create_content_slideshows.rb +11 -0
- data/db/migrate/20170615184855_add_content_row_margin_padding_and_bg_color.rb +9 -0
- data/db/migrate/20170616114757_add_external_ref_to_form_field.rb +6 -0
- data/lib/udongo/bogus_model.rb +34 -0
- data/lib/udongo/configs/flexible_content.rb +1 -1
- data/lib/udongo/search/result_objects/base.rb +1 -1
- data/lib/udongo/version.rb +1 -1
- data/spec/factories/content_slideshows.rb +5 -0
- data/spec/factories/image_collections.rb +6 -0
- data/vendor/assets/javascripts/backend/lity.js +637 -0
- data/vendor/assets/stylesheets/backend/lity.scss +200 -0
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b5b3b1a404230641c9fca147994774185e156ad
|
4
|
+
data.tar.gz: af7318f3a5bf2061fcf1a815600d8ba127513571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2eabef60a87981eae7cb4e62635d350b1977aaf47a3840dd960042b144f00235990eef0f74bc905980c08baf20e7a52d36b7d5074457aff571df2ce85debc25c
|
7
|
+
data.tar.gz: efb9507168f2d96cb4b1e547f489b66be1f2768d12edccf79afbe087e66a1d2c8984a06f74343e369891ba798e46c12cd5fca15d4d4397e67889da489c3c5cdf
|
@@ -2,6 +2,12 @@ var general = general || {
|
|
2
2
|
init: function() {
|
3
3
|
$('form:not(.no-focus) input:visible:not(.no-focus):first').focus();
|
4
4
|
$('[data-toggle="tooltip"]').tooltip();
|
5
|
+
$('[href="#lity-close"]').on('click', this.lity_close_click_listener);
|
6
|
+
},
|
7
|
+
|
8
|
+
lity_close_click_listener: function(e) {
|
9
|
+
e.preventDefault();
|
10
|
+
$(parent.window.document).find('[data-lity-close=""]').trigger('click');
|
5
11
|
}
|
6
12
|
};
|
7
13
|
|
@@ -7,7 +7,6 @@ class Backend::Content::Rows::ColumnsController < Backend::BaseController
|
|
7
7
|
|
8
8
|
def new
|
9
9
|
@column = @row.columns.new(@row.column_width_calculator.hashed_values)
|
10
|
-
cancel_url
|
11
10
|
end
|
12
11
|
|
13
12
|
def create
|
@@ -25,7 +24,7 @@ class Backend::Content::Rows::ColumnsController < Backend::BaseController
|
|
25
24
|
|
26
25
|
def update
|
27
26
|
if @column.update_attributes allowed_params
|
28
|
-
|
27
|
+
render 'backend/lightbox_saved'
|
29
28
|
else
|
30
29
|
render :edit
|
31
30
|
end
|
@@ -57,11 +56,4 @@ class Backend::Content::Rows::ColumnsController < Backend::BaseController
|
|
57
56
|
def redirect_to_edit(column)
|
58
57
|
redirect_to send("edit_backend_content_#{column.content.decorate.content_type}_path", column.content)
|
59
58
|
end
|
60
|
-
|
61
|
-
def cancel_url
|
62
|
-
instance = @row.rowable
|
63
|
-
path = "edit_translation_backend_#{instance.class.to_s.downcase}_path"
|
64
|
-
send(path, instance, @row.locale, anchor: "content-row-#{@row.id}")
|
65
|
-
end
|
66
|
-
helper_method :cancel_url
|
67
59
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Backend::Content::Rows::SlideshowsController < Backend::BaseController
|
2
|
+
include Concerns::Backend::ContentTypeController
|
3
|
+
|
4
|
+
model ContentSlideshow
|
5
|
+
allowed_params :image_collection_id, :autoplay, :slide_interval
|
6
|
+
|
7
|
+
def image_collections
|
8
|
+
ImageCollection.order(:description).map { |c| [c.description, c.id] }
|
9
|
+
end
|
10
|
+
helper_method :image_collections
|
11
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class Backend::Content::RowsController < Backend::BaseController
|
2
2
|
include Concerns::Backend::PositionableController
|
3
3
|
before_action :find_model, except: [:new]
|
4
|
+
layout 'backend/lightbox'
|
4
5
|
|
5
6
|
def new
|
6
7
|
if params[:klass] && params[:id] && params[:locale]
|
@@ -13,6 +14,14 @@ class Backend::Content::RowsController < Backend::BaseController
|
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
17
|
+
def update
|
18
|
+
if @row.update_attributes allowed_params
|
19
|
+
render 'backend/lightbox_saved'
|
20
|
+
else
|
21
|
+
render :edit
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
16
25
|
def horizontal_alignment
|
17
26
|
align = params[:align].to_s
|
18
27
|
align = 'left' unless %w(left center right).include?(align)
|
@@ -54,4 +63,11 @@ class Backend::Content::RowsController < Backend::BaseController
|
|
54
63
|
anchor = "content-row-#{@row.id}" unless anchor.present?
|
55
64
|
redirect_to content_path(@row.rowable, @row.locale, anchor)
|
56
65
|
end
|
66
|
+
|
67
|
+
def allowed_params
|
68
|
+
params.require(:content_row).permit(
|
69
|
+
:background_color, :margin_top, :margin_bottom, :padding_top,
|
70
|
+
:padding_bottom
|
71
|
+
)
|
72
|
+
end
|
57
73
|
end
|
@@ -42,7 +42,9 @@ class Backend::Forms::FieldsController < Backend::Forms::BaseController
|
|
42
42
|
private
|
43
43
|
|
44
44
|
def allowed_params
|
45
|
-
params[:form_field].permit(
|
45
|
+
params[:form_field].permit(
|
46
|
+
:identifier, :field_type, :presence, :email, :external_reference
|
47
|
+
)
|
46
48
|
end
|
47
49
|
|
48
50
|
def find_model
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Backend::ImageCollections::BaseController < Backend::BaseController
|
2
|
+
before_action :find_image_collection
|
3
|
+
before_action do
|
4
|
+
breadcrumb.add t('b.image_collections'), backend_image_collections_path
|
5
|
+
breadcrumb.add @image_collection.description, edit_backend_image_collection_path(@image_collection)
|
6
|
+
end
|
7
|
+
|
8
|
+
def find_image_collection
|
9
|
+
@image_collection = ImageCollection.find params[:image_collection_id]
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Backend::ImageCollections::ImagesController < Backend::ImageCollections::BaseController
|
2
|
+
include Concerns::Backend::PositionableController
|
3
|
+
|
4
|
+
before_action { breadcrumb.add t('b.images') }
|
5
|
+
|
6
|
+
def index
|
7
|
+
@images = @image_collection.images
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def find_model
|
13
|
+
@model = @image_collection.images.find params[:id]
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
class Backend::ImageCollectionsController < Backend::BaseController
|
2
|
+
before_action :find_model, only: [:show, :edit, :update, :destroy]
|
3
|
+
before_action -> { breadcrumb.add t('b.image_collections'), backend_image_collections_path }
|
4
|
+
|
5
|
+
def index
|
6
|
+
@image_collections = ImageCollection.order(:description)
|
7
|
+
end
|
8
|
+
|
9
|
+
def show
|
10
|
+
redirect_to edit_backend_image_collection_path(@model)
|
11
|
+
end
|
12
|
+
|
13
|
+
def new
|
14
|
+
@model = ImageCollection.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def create
|
18
|
+
@model = ImageCollection.new(allowed_params)
|
19
|
+
|
20
|
+
if @model.save
|
21
|
+
redirect_to edit_backend_image_collection_path(@model),
|
22
|
+
notice: translate_notice(:added, :image_collection)
|
23
|
+
else
|
24
|
+
render :new
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def update
|
29
|
+
if @model.update_attributes allowed_params
|
30
|
+
redirect_to backend_image_collections_path, notice: translate_notice(:edited, :image_collection)
|
31
|
+
else
|
32
|
+
render :edit
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def destroy
|
37
|
+
@model.destroy
|
38
|
+
redirect_to backend_image_collections_path, notice: translate_notice(:deleted, :image_collection)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def find_model
|
44
|
+
@model = ImageCollection.find(params[:id])
|
45
|
+
end
|
46
|
+
|
47
|
+
def allowed_params
|
48
|
+
params[:image_collection].permit(:identifier, :description)
|
49
|
+
end
|
50
|
+
end
|
@@ -6,7 +6,6 @@ module Concerns
|
|
6
6
|
included do
|
7
7
|
layout 'backend/lightbox'
|
8
8
|
before_action :find_model
|
9
|
-
helper_method :content_path
|
10
9
|
end
|
11
10
|
|
12
11
|
module ClassMethods
|
@@ -25,17 +24,9 @@ module Concerns
|
|
25
24
|
@model = model.find(params[:id]).decorate
|
26
25
|
end
|
27
26
|
|
28
|
-
def content_path
|
29
|
-
column = @model.column
|
30
|
-
path = "edit_translation_backend_#{column.row.rowable.class.to_s.downcase}_path"
|
31
|
-
# TODO this needs to be the locale that you were editing, not the interface locale.
|
32
|
-
# You can reproduce this by editing flexible content in NL when your interface is english.
|
33
|
-
send(path, column.row.rowable, @model.column.row.locale, anchor: "content-row-#{column.row.id}")
|
34
|
-
end
|
35
|
-
|
36
27
|
def update
|
37
28
|
if @model.update_attributes allowed_params
|
38
|
-
|
29
|
+
render 'backend/lightbox_saved'
|
39
30
|
else
|
40
31
|
render :edit
|
41
32
|
end
|
@@ -18,7 +18,7 @@
|
|
18
18
|
<% end %>
|
19
19
|
|
20
20
|
<% rows.decorate.each do |row| %>
|
21
|
-
<div id="content-row-<%= row.id %>" class="card content-row" data-update-position="<%= update_position_backend_content_row_path(row) %>">
|
21
|
+
<div id="content-row-<%= row.id %>" class="card content-row" data-update-position="<%= update_position_backend_content_row_path(row) %>" style="background-color: <%= row.background_color %>">
|
22
22
|
<div class="card-header handle">
|
23
23
|
<div class="btn-group" role="group">
|
24
24
|
<% klass = 'btn btn-secondary' %>
|
@@ -57,6 +57,10 @@
|
|
57
57
|
<div class="btn-group" role="group">
|
58
58
|
<%= link_to icon(:trash), backend_content_row_path(row), class: 'btn btn-secondary', title: t('b.delete'), method: :delete, data: { toggle: 'tooltip', placement: 'bottom', confirm: t('b.msg.confirm') } %>
|
59
59
|
</div>
|
60
|
+
|
61
|
+
<div class="btn-group pull-right" role="group">
|
62
|
+
<%= link_to icon(:cog), edit_backend_content_row_path(row), class: 'btn btn-secondary', title: t('b.settings'), data: { toggle: 'tooltip', placement: 'bottom', lity: '' } %>
|
63
|
+
</div>
|
60
64
|
</div>
|
61
65
|
|
62
66
|
<div class="row content-columns card-block <%= row.classes.join(' ') %>">
|
@@ -74,9 +78,9 @@
|
|
74
78
|
<div class="card-footer">
|
75
79
|
<div class="btn-group" role="group">
|
76
80
|
<% edit_link = send("edit_backend_content_#{content.content_type}_path", content) %>
|
77
|
-
<%= link_to icon(:pencil_square_o), edit_link, class: 'btn btn-secondary btn-sm' %>
|
78
|
-
<%= link_to icon(:trash), backend_content_row_column_path(row, column), class: 'btn btn-secondary btn-sm', method: :delete, data: { confirm: t('b.msg.confirm') } %>
|
79
|
-
<%= link_to icon(:wrench), edit_backend_content_row_column_path(row, column), class: 'btn btn-secondary btn-sm' %>
|
81
|
+
<%= link_to icon(:pencil_square_o), edit_link, class: 'btn btn-secondary btn-sm', title: t('b.edit'), data: { toggle: 'tooltip', placement: 'bottom', lity: '' } %>
|
82
|
+
<%= link_to icon(:trash), backend_content_row_column_path(row, column), class: 'btn btn-secondary btn-sm', title: t('b.delete'), method: :delete, data: { toggle: 'tooltip', placement: 'bottom', confirm: t('b.msg.confirm') } %>
|
83
|
+
<%= link_to icon(:wrench), edit_backend_content_row_column_path(row, column), class: 'btn btn-secondary btn-sm', title: t('b.settings'), data: { toggle: 'tooltip', placement: 'bottom', lity: '' } %>
|
80
84
|
</div>
|
81
85
|
</div>
|
82
86
|
</div>
|
@@ -85,10 +89,10 @@
|
|
85
89
|
|
86
90
|
<% unless row.column_limit_reached? %>
|
87
91
|
<% if row.columns.blank? %>
|
88
|
-
<%= link_to icon(:plus, t('b.msg.flexible_content.add_column')), new_backend_content_row_column_path(row), class: 'btn btn-secondary btn-block' %>
|
92
|
+
<%= link_to icon(:plus, t('b.msg.flexible_content.add_column')), new_backend_content_row_column_path(row), class: 'btn btn-secondary btn-block', data: { lity: '' } %>
|
89
93
|
<% else %>
|
90
|
-
<%= link_to icon(:plus, t('b.msg.flexible_content.add_column')), new_backend_content_row_column_path(row), class: 'btn btn-secondary hidden-xl-up full-width' %>
|
91
|
-
<%= link_to icon(:plus), new_backend_content_row_column_path(row), class: 'btn btn-secondary hidden-lg-down block' %>
|
94
|
+
<%= link_to icon(:plus, t('b.msg.flexible_content.add_column')), new_backend_content_row_column_path(row), class: 'btn btn-secondary hidden-xl-up full-width', data: { lity: '' } %>
|
95
|
+
<%= link_to icon(:plus), new_backend_content_row_column_path(row), class: 'btn btn-secondary hidden-lg-down block', title: t('b.msg.flexible_content.add_column'), data: { toggle: 'tooltip', placement: 'bottom', lity: '' } %>
|
92
96
|
<% end %>
|
93
97
|
<% end %>
|
94
98
|
</div>
|
@@ -3,23 +3,15 @@
|
|
3
3
|
<%= simple_form_for(@column, url: backend_content_row_column_path(@row, @column)) do |f| %>
|
4
4
|
<%= render 'column_width_explanation' %>
|
5
5
|
|
6
|
-
<div class="
|
7
|
-
<div class="
|
8
|
-
<%=
|
6
|
+
<div class="row mb-3">
|
7
|
+
<div class="col-md-6">
|
8
|
+
<%= render 'backend/content/rows/columns/dimension_fields', form: f %>
|
9
9
|
</div>
|
10
10
|
|
11
|
-
<div class="
|
12
|
-
|
13
|
-
<div class="col-md-6">
|
14
|
-
<%= render 'backend/content/rows/columns/dimension_fields', form: f %>
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<div class="col-md-6">
|
18
|
-
<%= f.input :content_type, collection: options_for_content_types, disabled: true, include_blank: false %>
|
19
|
-
</div>
|
20
|
-
</div>
|
11
|
+
<div class="col-md-6">
|
12
|
+
<%= f.input :content_type, collection: options_for_content_types, disabled: true, include_blank: false %>
|
21
13
|
</div>
|
22
14
|
</div>
|
23
15
|
|
24
|
-
<%= render 'backend/form_actions', cancel_url:
|
16
|
+
<%= render 'backend/form_actions', cancel_url: '#lity-close' %>
|
25
17
|
<% end %>
|
@@ -3,23 +3,15 @@
|
|
3
3
|
<%= simple_form_for(@column, url: backend_content_row_columns_path(@row)) do |f| %>
|
4
4
|
<%= render 'column_width_explanation' %>
|
5
5
|
|
6
|
-
<div class="
|
7
|
-
<div class="
|
8
|
-
<%=
|
6
|
+
<div class="row mb-3">
|
7
|
+
<div class="col-md-6">
|
8
|
+
<%= render 'backend/content/rows/columns/dimension_fields', form: f %>
|
9
9
|
</div>
|
10
10
|
|
11
|
-
<div class="
|
12
|
-
|
13
|
-
<div class="col-md-6">
|
14
|
-
<%= render 'backend/content/rows/columns/dimension_fields', form: f %>
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<div class="col-md-6">
|
18
|
-
<%= f.input :content_type, collection: options_for_content_types, include_blank: false %>
|
19
|
-
</div>
|
20
|
-
</div>
|
11
|
+
<div class="col-md-6">
|
12
|
+
<%= f.input :content_type, collection: options_for_content_types, include_blank: false %>
|
21
13
|
</div>
|
22
14
|
</div>
|
23
15
|
|
24
|
-
<%= render 'backend/form_actions', cancel_url:
|
16
|
+
<%= render 'backend/form_actions', cancel_url: '#lity-close' %>
|
25
17
|
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<%= simple_form_for [:backend, @row] do |f| %>
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-4">
|
4
|
+
<%= f.input :background_color, placeholder: 'eg #336699' %>
|
5
|
+
</div>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<% pixels = (1..10).map { |i| ["#{i * 16}px", i] } %>
|
9
|
+
|
10
|
+
<div class="row">
|
11
|
+
<div class="col-md-6">
|
12
|
+
<div class="alert alert-info">
|
13
|
+
<%= t 'b.msg.flexible_content.margin_explanation' %>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<%= f.input :margin_top, collection: pixels %>
|
17
|
+
<%= f.input :margin_bottom, collection: pixels %>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="col-md-6">
|
21
|
+
<div class="alert alert-info">
|
22
|
+
<%= t 'b.msg.flexible_content.padding_explanation' %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<%= f.input :padding_top, collection: pixels %>
|
26
|
+
<%= f.input :padding_bottom, collection: pixels %>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<%= render 'backend/form_actions', cancel_url: '#lity-close' %>
|
31
|
+
<% end %>
|