comfortable_mexican_sofa 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +95 -4
- data/.travis.yml +2 -1
- data/CONTRIBUTING.md +8 -5
- data/Gemfile +9 -9
- data/Rakefile +1 -1
- data/app/assets/javascripts/comfy/admin/cms/base.js.coffee +1 -0
- data/app/assets/stylesheets/comfy/admin/cms/base.sass +14 -4
- data/app/controllers/application_controller.rb +2 -2
- data/app/controllers/comfy/admin/base_controller.rb +1 -1
- data/app/controllers/comfy/admin/cms/base_controller.rb +7 -6
- data/app/controllers/comfy/admin/cms/categories_controller.rb +2 -1
- data/app/controllers/comfy/admin/cms/files_controller.rb +32 -29
- data/app/controllers/comfy/admin/cms/layouts_controller.rb +10 -9
- data/app/controllers/comfy/admin/cms/pages_controller.rb +31 -27
- data/app/controllers/comfy/admin/cms/revisions/base_controller.rb +5 -4
- data/app/controllers/comfy/admin/cms/revisions/layout_controller.rb +2 -1
- data/app/controllers/comfy/admin/cms/revisions/page_controller.rb +9 -3
- data/app/controllers/comfy/admin/cms/revisions/snippet_controller.rb +2 -1
- data/app/controllers/comfy/admin/cms/revisions/translation_controller.rb +9 -3
- data/app/controllers/comfy/admin/cms/sites_controller.rb +10 -9
- data/app/controllers/comfy/admin/cms/snippets_controller.rb +10 -9
- data/app/controllers/comfy/admin/cms/translations_controller.rb +15 -14
- data/app/controllers/comfy/cms/assets_controller.rb +4 -3
- data/app/controllers/comfy/cms/base_controller.rb +12 -11
- data/app/controllers/comfy/cms/content_controller.rb +8 -7
- data/app/controllers/concerns/comfy/paginate.rb +2 -1
- data/app/helpers/comfy/cms_helper.rb +6 -3
- data/app/models/comfy/cms/categorization.rb +2 -1
- data/app/models/comfy/cms/category.rb +3 -2
- data/app/models/comfy/cms/file.rb +9 -7
- data/app/models/comfy/cms/fragment.rb +8 -6
- data/app/models/comfy/cms/layout.rb +24 -24
- data/app/models/comfy/cms/page.rb +51 -32
- data/app/models/comfy/cms/revision.rb +2 -1
- data/app/models/comfy/cms/site.rb +27 -26
- data/app/models/comfy/cms/snippet.rb +7 -5
- data/app/models/comfy/cms/translation.rb +6 -4
- data/app/models/concerns/comfy/cms/with_categories.rb +9 -7
- data/app/models/concerns/comfy/cms/with_fragments.rb +15 -13
- data/app/views/comfy/admin/cms/categories/_categories.html.haml +1 -1
- data/app/views/comfy/admin/cms/files/_file.html.haml +3 -3
- data/app/views/comfy/admin/cms/files/_modal.html.haml +2 -2
- data/app/views/comfy/admin/cms/{pages/_fragment_attachments.html.haml → fragments/_form_fragment_attachments.html.haml} +0 -0
- data/app/views/comfy/admin/cms/{pages → fragments}/_form_fragments.html.haml +0 -0
- data/app/views/comfy/admin/cms/layouts/_index_branch.html.haml +2 -2
- data/app/views/comfy/admin/cms/pages/_form.html.haml +7 -7
- data/app/views/comfy/admin/cms/pages/_index_branch.html.haml +16 -15
- data/app/views/comfy/admin/cms/pages/form_fragments.js.erb +1 -1
- data/app/views/comfy/admin/cms/pages/toggle_branch.js.erb +1 -1
- data/app/views/comfy/admin/cms/snippets/index.html.haml +3 -3
- data/app/views/comfy/admin/cms/translations/_form.html.haml +1 -1
- data/app/views/comfy/admin/cms/translations/form_fragments.js.erb +1 -1
- data/app/views/layouts/comfy/admin/cms/_body.html.haml +1 -4
- data/app/views/layouts/comfy/admin/cms.html.haml +1 -1
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/setup +36 -0
- data/bin/update +31 -0
- data/bin/yarn +11 -0
- data/comfortable_mexican_sofa.gemspec +14 -14
- data/config/application.rb +4 -3
- data/config/boot.rb +3 -3
- data/config/cms_routes.rb +1 -1
- data/config/environment.rb +1 -1
- data/config/environments/development.rb +2 -2
- data/config/environments/test.rb +1 -1
- data/config/initializers/comfortable_mexican_sofa.rb +2 -5
- data/config/locales/cs.yml +2 -1
- data/config/locales/da.yml +2 -1
- data/config/locales/de.yml +2 -1
- data/config/locales/en.yml +2 -1
- data/config/locales/es.yml +2 -1
- data/config/locales/fr.yml +2 -1
- data/config/locales/it.yml +2 -1
- data/config/locales/ja.yml +2 -1
- data/config/locales/nb.yml +2 -1
- data/config/locales/nl.yml +2 -1
- data/config/locales/pl.yml +2 -1
- data/config/locales/pt-BR.yml +2 -1
- data/config/locales/ru.yml +2 -1
- data/config/locales/sk.yml +2 -1
- data/config/locales/sv.yml +2 -1
- data/config/locales/tr.yml +2 -1
- data/config/locales/uk.yml +2 -1
- data/config/locales/zh-CN.yml +2 -1
- data/config/locales/zh-TW.yml +2 -1
- data/config.ru +1 -1
- data/lib/comfortable_mexican_sofa/access_control/admin_authentication.rb +2 -1
- data/lib/comfortable_mexican_sofa/access_control/admin_authorization.rb +2 -0
- data/lib/comfortable_mexican_sofa/access_control/public_authentication.rb +3 -1
- data/lib/comfortable_mexican_sofa/access_control/public_authorization.rb +2 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +27 -29
- data/lib/comfortable_mexican_sofa/content/block.rb +2 -1
- data/lib/comfortable_mexican_sofa/content/params_parser.rb +22 -21
- data/lib/comfortable_mexican_sofa/content/renderer.rb +10 -8
- data/lib/comfortable_mexican_sofa/content/tag.rb +1 -0
- data/lib/comfortable_mexican_sofa/content/tags/asset.rb +4 -3
- data/lib/comfortable_mexican_sofa/content/tags/checkbox.rb +3 -2
- data/lib/comfortable_mexican_sofa/content/tags/date.rb +4 -3
- data/lib/comfortable_mexican_sofa/content/tags/datetime.rb +4 -3
- data/lib/comfortable_mexican_sofa/content/tags/file.rb +15 -13
- data/lib/comfortable_mexican_sofa/content/tags/file_link.rb +8 -7
- data/lib/comfortable_mexican_sofa/content/tags/files.rb +15 -13
- data/lib/comfortable_mexican_sofa/content/tags/fragment.rb +7 -6
- data/lib/comfortable_mexican_sofa/content/tags/helper.rb +2 -1
- data/lib/comfortable_mexican_sofa/content/tags/markdown.rb +5 -4
- data/lib/comfortable_mexican_sofa/content/tags/number.rb +4 -3
- data/lib/comfortable_mexican_sofa/content/tags/partial.rb +1 -0
- data/lib/comfortable_mexican_sofa/content/tags/snippet.rb +3 -2
- data/lib/comfortable_mexican_sofa/content/tags/template.rb +1 -0
- data/lib/comfortable_mexican_sofa/content/tags/text.rb +4 -3
- data/lib/comfortable_mexican_sofa/content/tags/textarea.rb +4 -3
- data/lib/comfortable_mexican_sofa/content/tags/wysiwyg.rb +4 -3
- data/lib/comfortable_mexican_sofa/content.rb +21 -21
- data/lib/comfortable_mexican_sofa/engine.rb +17 -15
- data/lib/comfortable_mexican_sofa/error.rb +12 -6
- data/lib/comfortable_mexican_sofa/extensions/acts_as_tree.rb +17 -11
- data/lib/comfortable_mexican_sofa/extensions/has_revisions.rb +14 -13
- data/lib/comfortable_mexican_sofa/form_builder.rb +2 -2
- data/lib/comfortable_mexican_sofa/render_methods.rb +74 -76
- data/lib/comfortable_mexican_sofa/routes/cms.rb +4 -4
- data/lib/comfortable_mexican_sofa/routes/cms_admin.rb +2 -1
- data/lib/comfortable_mexican_sofa/routing.rb +4 -2
- data/lib/comfortable_mexican_sofa/seeds/file/exporter.rb +7 -6
- data/lib/comfortable_mexican_sofa/seeds/file/importer.rb +9 -9
- data/lib/comfortable_mexican_sofa/seeds/layout/exporter.rb +8 -7
- data/lib/comfortable_mexican_sofa/seeds/layout/importer.rb +11 -10
- data/lib/comfortable_mexican_sofa/seeds/page/exporter.rb +25 -23
- data/lib/comfortable_mexican_sofa/seeds/page/importer.rb +47 -43
- data/lib/comfortable_mexican_sofa/seeds/snippet/exporter.rb +7 -6
- data/lib/comfortable_mexican_sofa/seeds/snippet/importer.rb +7 -6
- data/lib/comfortable_mexican_sofa/seeds.rb +16 -9
- data/lib/comfortable_mexican_sofa/version.rb +4 -2
- data/lib/comfortable_mexican_sofa/view_hooks.rb +10 -9
- data/lib/comfortable_mexican_sofa.rb +30 -30
- data/lib/generators/comfy/cms/assets_generator.rb +6 -4
- data/lib/generators/comfy/cms/cms_generator.rb +14 -14
- data/lib/generators/comfy/cms/controllers_generator.rb +5 -3
- data/lib/generators/comfy/cms/models_generator.rb +5 -3
- data/lib/generators/comfy/cms/views_generator.rb +5 -3
- data/lib/generators/comfy/scaffold/scaffold_generator.rb +19 -18
- data/lib/tasks/cms_seeds.rake +4 -5
- data/test/controllers/comfy/admin/cms/base_controller_test.rb +4 -3
- data/test/controllers/comfy/admin/cms/categories_controller_test.rb +19 -18
- data/test/controllers/comfy/admin/cms/files_controller_test.rb +19 -19
- data/test/controllers/comfy/admin/cms/layouts_controller_test.rb +33 -32
- data/test/controllers/comfy/admin/cms/pages_controller_test.rb +99 -98
- data/test/controllers/comfy/admin/cms/revisions/layout_controller_test.rb +9 -9
- data/test/controllers/comfy/admin/cms/revisions/page_controller_test.rb +6 -6
- data/test/controllers/comfy/admin/cms/revisions/snippet_controller_test.rb +9 -8
- data/test/controllers/comfy/admin/cms/revisions/translation_controller_test.rb +6 -7
- data/test/controllers/comfy/admin/cms/sites_controller_test.rb +31 -30
- data/test/controllers/comfy/admin/cms/snippets_controller_test.rb +38 -37
- data/test/controllers/comfy/admin/cms/translations_controller_test.rb +21 -20
- data/test/controllers/comfy/cms/assets_controller_test.rb +14 -13
- data/test/controllers/comfy/cms/content_controller_test.rb +58 -57
- data/test/gemfiles/Gemfile.rails.5.2 +5 -4
- data/test/generators/cms_assets_generator_test.rb +6 -4
- data/test/generators/cms_controllers_generator_test.rb +7 -5
- data/test/generators/cms_generator_test.rb +12 -10
- data/test/generators/cms_models_generator_test.rb +7 -5
- data/test/generators/cms_views_generator_test.rb +6 -4
- data/test/generators/scaffold_generator_test.rb +18 -16
- data/test/helpers/cms_helper_test.rb +5 -2
- data/test/integration/access_control_test.rb +29 -20
- data/test/integration/i18n_test.rb +8 -7
- data/test/integration/js_variables_test.rb +2 -1
- data/test/integration/render_cms_test.rb +93 -88
- data/test/integration/routing_test.rb +4 -3
- data/test/integration/seeds_test.rb +21 -22
- data/test/integration/sites_test.rb +26 -25
- data/test/integration/view_hooks_test.rb +15 -14
- data/test/lib/configuration_test.rb +13 -15
- data/test/lib/content/block_test.rb +1 -1
- data/test/lib/content/params_parser_test.rb +11 -10
- data/test/lib/content/renderer_test.rb +16 -11
- data/test/lib/content/tag_test.rb +7 -3
- data/test/lib/content/tags/asset_test.rb +4 -3
- data/test/lib/content/tags/checkbox_test.rb +2 -1
- data/test/lib/content/tags/date_test.rb +2 -1
- data/test/lib/content/tags/datetime_test.rb +2 -1
- data/test/lib/content/tags/file_link_test.rb +3 -2
- data/test/lib/content/tags/file_test.rb +3 -2
- data/test/lib/content/tags/files_test.rb +4 -3
- data/test/lib/content/tags/fragment_test.rb +2 -1
- data/test/lib/content/tags/helper_test.rb +4 -3
- data/test/lib/content/tags/markdown_test.rb +2 -1
- data/test/lib/content/tags/number_test.rb +2 -1
- data/test/lib/content/tags/partial_test.rb +4 -3
- data/test/lib/content/tags/snippet_test.rb +2 -1
- data/test/lib/content/tags/template_test.rb +2 -1
- data/test/lib/content/tags/text_test.rb +2 -1
- data/test/lib/content/tags/textarea_test.rb +2 -1
- data/test/lib/content/tags/wysiwyg_test.rb +2 -1
- data/test/lib/revisions_test.rb +44 -42
- data/test/lib/seeds/files_test.rb +30 -29
- data/test/lib/seeds/layouts_test.rb +13 -12
- data/test/lib/seeds/pages_test.rb +32 -29
- data/test/lib/seeds/snippets_test.rb +21 -20
- data/test/lib/seeds_test.rb +9 -8
- data/test/models/categorization_test.rb +10 -9
- data/test/models/category_test.rb +1 -1
- data/test/models/file_test.rb +1 -1
- data/test/models/fragment_test.rb +11 -10
- data/test/models/layout_test.rb +71 -70
- data/test/models/page_test.rb +170 -159
- data/test/models/site_test.rb +17 -16
- data/test/models/snippet_test.rb +1 -0
- data/test/models/translation_test.rb +2 -1
- data/test/tasks/cms_seeds_test.rb +3 -2
- data/test/test_helper.rb +42 -40
- metadata +55 -51
- data/.rubocop_todo.yml +0 -974
- data/script/rails +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb5f504ed7a73ffd87abc1a6a22559c08a03b64b
|
4
|
+
data.tar.gz: 14f3121059d919b4c612cfef5a28ec76e540f1b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c688307b159cc80dea239cc9ea2892ecdd0cc5452313c109ccb30dc110c79db26ed534d208ee61396840e85379191c83ef5dda135cfaff6af04d1f6ad83a1839
|
7
|
+
data.tar.gz: ba27c94a808feb48b9763eecf0e7ae2353d22c97218c237285db00b00ec48c70147aca696a3e78278a51b5a2612da81cd8930332a5a209558000f7b58a07ac89
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,96 @@
|
|
1
|
-
inherit_from:
|
2
|
-
- .rubocop_todo.yml
|
3
|
-
|
4
1
|
AllCops:
|
5
|
-
TargetRubyVersion: 2.
|
2
|
+
TargetRubyVersion: 2.2
|
3
|
+
Exclude:
|
4
|
+
- bin/*
|
5
|
+
- db/schema.rb
|
6
|
+
- db/migrate/**/*
|
7
|
+
- test/fixtures/**/*
|
8
|
+
- tmp/**/*
|
9
|
+
|
10
|
+
# -- Performance ---------------------------------------------------------------
|
11
|
+
Performance/Casecmp:
|
12
|
+
Enabled: false
|
13
|
+
|
14
|
+
# -- Metrics -------------------------------------------------------------------
|
15
|
+
Metrics/PerceivedComplexity:
|
16
|
+
Enabled: false
|
17
|
+
|
18
|
+
Metrics/MethodLength:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
Metrics/MethodLength:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
Metrics/ParameterLists:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Metrics/LineLength:
|
28
|
+
Max: 120
|
29
|
+
|
30
|
+
Metrics/CyclomaticComplexity:
|
31
|
+
Enabled: false
|
32
|
+
|
33
|
+
Metrics/ClassLength:
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
Metrics/BlockLength:
|
37
|
+
Enabled: false
|
38
|
+
|
39
|
+
Metrics/AbcSize:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
# -- Layout --------------------------------------------------------------------
|
43
|
+
Layout/MultilineOperationIndentation:
|
44
|
+
Enabled: false
|
45
|
+
|
46
|
+
Layout/MultilineMethodCallIndentation:
|
47
|
+
EnforcedStyle: indented
|
48
|
+
|
49
|
+
Layout/MultilineHashBraceLayout:
|
50
|
+
Enabled: false
|
51
|
+
|
52
|
+
Layout/IndentArray:
|
53
|
+
EnforcedStyle: consistent
|
54
|
+
|
55
|
+
Layout/EmptyLinesAroundModuleBody:
|
56
|
+
EnforcedStyle: empty_lines_except_namespace
|
57
|
+
|
58
|
+
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
59
|
+
Enabled: false
|
60
|
+
|
61
|
+
Layout/EmptyLinesAroundClassBody:
|
62
|
+
EnforcedStyle: empty_lines_except_namespace
|
63
|
+
|
64
|
+
Layout/AlignParameters:
|
65
|
+
Enabled: false
|
66
|
+
|
67
|
+
Layout/AccessModifierIndentation:
|
68
|
+
EnforcedStyle: outdent
|
69
|
+
|
70
|
+
# -- Style ---------------------------------------------------------------------
|
71
|
+
Style/StringLiterals:
|
72
|
+
EnforcedStyle: double_quotes
|
73
|
+
|
74
|
+
Style/RegexpLiteral:
|
75
|
+
EnforcedStyle: percent_r
|
76
|
+
|
77
|
+
Style/Lambda:
|
78
|
+
EnforcedStyle: literal
|
79
|
+
|
80
|
+
Style/IfUnlessModifier:
|
81
|
+
Enabled: false
|
82
|
+
|
83
|
+
Style/GuardClause:
|
84
|
+
Enabled: false
|
85
|
+
|
86
|
+
Style/Documentation:
|
87
|
+
Enabled: false
|
88
|
+
|
89
|
+
Style/DateTime:
|
90
|
+
Enabled: false
|
91
|
+
|
92
|
+
Style/ClassAndModuleChildren:
|
93
|
+
Enabled: false
|
94
|
+
|
95
|
+
Style/AsciiComments:
|
96
|
+
Enabled: false
|
data/.travis.yml
CHANGED
data/CONTRIBUTING.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Contributing
|
2
|
+
|
2
3
|
Contribute your code to ComfortableMexicanSofa in 5 easy steps:
|
3
4
|
|
4
5
|
### 1. Fork it
|
@@ -8,8 +9,9 @@ Fork the project. Optionally, create a branch you want to work on.
|
|
8
9
|
### 2. Get it running locally
|
9
10
|
|
10
11
|
- Install gem dependencies with `bundle install`
|
11
|
-
- There's nothing to configure, by default database is SQLite so it will be created for you
|
12
|
-
|
12
|
+
- There's nothing to configure, by default database is SQLite so it will be created for you.
|
13
|
+
Just run `rake db:migrate`
|
14
|
+
- Make sure that existing tests are passing by running `rake test`
|
13
15
|
- You should be able to start the app via `rails s` and navigate to http://localhost:3000/admin
|
14
16
|
|
15
17
|
### 3. Hack away
|
@@ -18,12 +20,13 @@ Fork the project. Optionally, create a branch you want to work on.
|
|
18
20
|
- When adding new code just make sure it follows the same slyle as the existing code.
|
19
21
|
- Avoid adding 3rd party dependencies if you can.
|
20
22
|
- Tests please, but nothing complicated. UnitTest / Fixtures all the way. Make sure all tests pass.
|
23
|
+
- Run `bundle exec rubocop` and fix any issues raised.
|
21
24
|
|
22
25
|
### 4. Make a pull request
|
23
26
|
|
24
|
-
If you never done it before read this: https://help.github.com/articles/using-pull-requests
|
27
|
+
- If you never done it before read this: https://help.github.com/articles/using-pull-requests
|
28
|
+
- When PR is submitted check if TravisCI ran all tests successfully and Rubocop didn't raise any issues
|
25
29
|
|
26
30
|
### 5. Done!
|
27
31
|
|
28
|
-
If everything is good your changes will be merged into master branch. Eventually a new version of gem will be
|
29
|
-
|
32
|
+
If everything is good your changes will be merged into master branch. Eventually a new version of gem will be published.
|
data/Gemfile
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
source
|
1
|
+
source "http://rubygems.org"
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
# apps can also use will_paginate so there's no dependency in gemspec
|
6
|
-
gem
|
6
|
+
gem "kaminari"
|
7
7
|
|
8
8
|
group :development do
|
9
|
+
gem "awesome_print"
|
10
|
+
gem "better_errors"
|
11
|
+
gem "binding_of_caller"
|
9
12
|
gem "listen"
|
10
|
-
gem 'awesome_print'
|
11
|
-
gem 'better_errors'
|
12
|
-
gem 'binding_of_caller'
|
13
13
|
gem "rubocop", "~> 0.51.0", require: false
|
14
14
|
end
|
15
15
|
|
16
16
|
group :test do
|
17
|
-
gem
|
18
|
-
gem
|
19
|
-
gem
|
20
|
-
gem
|
17
|
+
gem "coveralls", require: false
|
18
|
+
gem "mocha", require: false
|
19
|
+
gem "rails-controller-testing"
|
20
|
+
gem "sqlite3"
|
21
21
|
end
|
data/Rakefile
CHANGED
@@ -104,7 +104,7 @@ body#comfy
|
|
104
104
|
|
105
105
|
.box
|
106
106
|
padding: 1rem
|
107
|
-
margin:
|
107
|
+
margin-bottom: 1rem
|
108
108
|
background-color: $white
|
109
109
|
border: 1px solid $gray-200
|
110
110
|
.box.translations
|
@@ -154,6 +154,8 @@ body#comfy
|
|
154
154
|
padding: 0
|
155
155
|
li
|
156
156
|
list-style: none
|
157
|
+
ul
|
158
|
+
padding-left: 0
|
157
159
|
.row
|
158
160
|
background-color: $gray-100
|
159
161
|
margin-bottom: 5px
|
@@ -161,9 +163,9 @@ body#comfy
|
|
161
163
|
.item
|
162
164
|
display: flex
|
163
165
|
.item-controls
|
164
|
-
width: 30px
|
165
166
|
padding: 2px 0
|
166
167
|
.dragger, .toggle
|
168
|
+
margin-right: 15px
|
167
169
|
display: block
|
168
170
|
color: $gray-500
|
169
171
|
&:hover
|
@@ -194,8 +196,6 @@ body#comfy
|
|
194
196
|
background-color: $white
|
195
197
|
.row:hover
|
196
198
|
background-color: $white
|
197
|
-
ul.list
|
198
|
-
padding-left: 2rem
|
199
199
|
|
200
200
|
// -- Pages ------------------------------------------------------------------
|
201
201
|
&.c-comfy-admin-cms-pages
|
@@ -227,6 +227,16 @@ body#comfy
|
|
227
227
|
img
|
228
228
|
width: 100%
|
229
229
|
|
230
|
+
.cms-uploader-drag-drop-target-active
|
231
|
+
position: fixed !important
|
232
|
+
z-index: 9999
|
233
|
+
top: 0
|
234
|
+
left: 0
|
235
|
+
width: 100%
|
236
|
+
height: 100%
|
237
|
+
border: dotted #ccc 1px
|
238
|
+
background-color: rgba(255, 255, 255, 0.7)
|
239
|
+
|
230
240
|
// -- Revisions --------------------------------------------------------------
|
231
241
|
&[class*="c-comfy-admin-cms-revisions-"], &[class*="c-comfy-admin-blog-revisions-"]
|
232
242
|
.label
|
@@ -6,7 +6,7 @@ class Comfy::Admin::Cms::BaseController < Comfy::Admin::BaseController
|
|
6
6
|
except: :jump
|
7
7
|
|
8
8
|
if ComfortableMexicanSofa.config.admin_cache_sweeper.present?
|
9
|
-
cache_sweeper
|
9
|
+
cache_sweeper(*ComfortableMexicanSofa.config.admin_cache_sweeper)
|
10
10
|
end
|
11
11
|
|
12
12
|
def jump
|
@@ -20,11 +20,11 @@ protected
|
|
20
20
|
|
21
21
|
def load_admin_site
|
22
22
|
id_param = params[:site_id] || session[:site_id]
|
23
|
-
if @site = ::Comfy::Cms::Site.find_by(id: id_param) || ::Comfy::Cms::Site.first
|
23
|
+
if (@site = ::Comfy::Cms::Site.find_by(id: id_param) || ::Comfy::Cms::Site.first)
|
24
24
|
session[:site_id] = @site.id
|
25
25
|
else
|
26
26
|
I18n.locale = ComfortableMexicanSofa.config.admin_locale || I18n.default_locale
|
27
|
-
flash[:danger] = I18n.t(
|
27
|
+
flash[:danger] = I18n.t("comfy.admin.cms.base.site_not_found")
|
28
28
|
return redirect_to(new_comfy_admin_cms_site_path)
|
29
29
|
end
|
30
30
|
end
|
@@ -37,10 +37,11 @@ protected
|
|
37
37
|
def load_seeds
|
38
38
|
return unless ComfortableMexicanSofa.config.enable_seeds
|
39
39
|
|
40
|
-
controllers = %w
|
41
|
-
if controllers.member?(params[:controller]) && params[:action] ==
|
40
|
+
controllers = %w[layouts pages snippets files].collect { |c| "comfy/admin/cms/" + c }
|
41
|
+
if controllers.member?(params[:controller]) && params[:action] == "index"
|
42
42
|
ComfortableMexicanSofa::Seeds::Importer.new(@site.identifier).import!
|
43
|
-
flash.now[:warning] = I18n.t(
|
43
|
+
flash.now[:warning] = I18n.t("comfy.admin.cms.base.seeds_enabled")
|
44
44
|
end
|
45
45
|
end
|
46
|
+
|
46
47
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Comfy::Admin::Cms::CategoriesController < Comfy::Admin::Cms::BaseController
|
2
2
|
|
3
|
-
before_action :load_category, only: [
|
3
|
+
before_action :load_category, only: %i[edit update destroy]
|
4
4
|
before_action :authorize
|
5
5
|
|
6
6
|
def edit
|
@@ -34,4 +34,5 @@ protected
|
|
34
34
|
def category_params
|
35
35
|
params.fetch(:category, {}).permit!
|
36
36
|
end
|
37
|
+
|
37
38
|
end
|
@@ -2,8 +2,8 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
2
2
|
|
3
3
|
include ActionView::Helpers::NumberHelper
|
4
4
|
|
5
|
-
before_action :build_file, only: [
|
6
|
-
before_action :load_file, only: [
|
5
|
+
before_action :build_file, only: %i[new create]
|
6
|
+
before_action :load_file, only: %i[edit update destroy]
|
7
7
|
before_action :authorize
|
8
8
|
|
9
9
|
def index
|
@@ -12,23 +12,25 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
12
12
|
case params[:source]
|
13
13
|
|
14
14
|
# Integration with Redactor 1.0 Wysiwyg
|
15
|
-
when
|
15
|
+
when "redactor"
|
16
16
|
file_scope = files_scope.limit(100).order(:position)
|
17
|
-
file_hashes =
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
17
|
+
file_hashes =
|
18
|
+
case params[:type]
|
19
|
+
when "image"
|
20
|
+
file_scope.with_images.collect do |file|
|
21
|
+
{ thumb: url_for(file.attachment.variant(Comfy::Cms::File::VARIANT_SIZE[:redactor])),
|
22
|
+
image: url_for(file.attachment),
|
23
|
+
title: file.label }
|
24
|
+
end
|
25
|
+
else
|
26
|
+
file_scope.collect do |file|
|
27
|
+
{ title: file.label,
|
28
|
+
name: file.attachment.filename,
|
29
|
+
link: url_for(file.attachment),
|
30
|
+
size: number_to_human_size(file.attachment.byte_size) }
|
31
|
+
end
|
30
32
|
end
|
31
|
-
|
33
|
+
|
32
34
|
render json: file_hashes
|
33
35
|
|
34
36
|
else
|
@@ -46,10 +48,10 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
46
48
|
|
47
49
|
def create
|
48
50
|
if params[:category]
|
49
|
-
ids = @site.categories.of_type(
|
51
|
+
ids = @site.categories.of_type("Comfy::Cms::File")
|
50
52
|
.where(label: params[:category])
|
51
|
-
.each_with_object({}){|c, h| h[c.id] = 1}
|
52
|
-
|
53
|
+
.each_with_object({}) { |c, h| h[c.id] = 1 }
|
54
|
+
@file.category_ids = ids
|
53
55
|
end
|
54
56
|
|
55
57
|
# Automatically tagging upload if it's done through redactor
|
@@ -70,18 +72,18 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
70
72
|
filename: @file.attachment.filename
|
71
73
|
}
|
72
74
|
else
|
73
|
-
flash[:success] = I18n.t(
|
75
|
+
flash[:success] = I18n.t("comfy.admin.cms.files.created")
|
74
76
|
redirect_to action: :edit, id: @file
|
75
77
|
end
|
76
78
|
|
77
79
|
rescue ActiveRecord::RecordInvalid
|
78
80
|
case params[:source]
|
79
|
-
when
|
81
|
+
when "plupload"
|
80
82
|
render body: @file.errors.full_messages.to_sentence, status: :unprocessable_entity
|
81
|
-
when
|
83
|
+
when "redactor"
|
82
84
|
render body: nil, status: :unprocessable_entity
|
83
85
|
else
|
84
|
-
flash.now[:danger] = I18n.t(
|
86
|
+
flash.now[:danger] = I18n.t("comfy.admin.cms.files.creation_failure")
|
85
87
|
render action: :new
|
86
88
|
end
|
87
89
|
end
|
@@ -92,10 +94,10 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
92
94
|
|
93
95
|
def update
|
94
96
|
if @file.update(file_params)
|
95
|
-
flash[:success] = I18n.t(
|
97
|
+
flash[:success] = I18n.t("comfy.admin.cms.files.updated")
|
96
98
|
redirect_to action: :edit, id: @file
|
97
99
|
else
|
98
|
-
flash.now[:danger] = I18n.t(
|
100
|
+
flash.now[:danger] = I18n.t("comfy.admin.cms.files.update_failure")
|
99
101
|
render action: :edit
|
100
102
|
end
|
101
103
|
end
|
@@ -105,7 +107,7 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
|
|
105
107
|
respond_to do |format|
|
106
108
|
format.js
|
107
109
|
format.html do
|
108
|
-
flash[:success] = I18n.t(
|
110
|
+
flash[:success] = I18n.t("comfy.admin.cms.files.deleted")
|
109
111
|
redirect_to action: :index
|
110
112
|
end
|
111
113
|
end
|
@@ -129,16 +131,17 @@ protected
|
|
129
131
|
def load_file
|
130
132
|
@file = @site.files.find(params[:id])
|
131
133
|
rescue ActiveRecord::RecordNotFound
|
132
|
-
flash[:danger] = I18n.t(
|
134
|
+
flash[:danger] = I18n.t("comfy.admin.cms.files.not_found")
|
133
135
|
redirect_to action: :index
|
134
136
|
end
|
135
137
|
|
136
138
|
def file_params
|
137
139
|
file = params[:file]
|
138
140
|
unless file.is_a?(Hash) || file.respond_to?(:to_unsafe_hash)
|
139
|
-
params[:file] = {
|
141
|
+
params[:file] = {}
|
140
142
|
params[:file][:file] = file
|
141
143
|
end
|
142
144
|
params.fetch(:file, {}).permit!
|
143
145
|
end
|
146
|
+
|
144
147
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
class Comfy::Admin::Cms::LayoutsController < Comfy::Admin::Cms::BaseController
|
2
2
|
|
3
|
-
before_action :build_layout, only: [
|
4
|
-
before_action :load_layout, only: [
|
3
|
+
before_action :build_layout, only: %i[new create]
|
4
|
+
before_action :load_layout, only: %i[edit update destroy]
|
5
5
|
before_action :authorize
|
6
6
|
|
7
7
|
def index
|
8
|
-
return redirect_to action: :new if @site.layouts.count
|
8
|
+
return redirect_to action: :new if @site.layouts.count.zero?
|
9
9
|
@layouts = @site.layouts.roots.order(:position)
|
10
10
|
end
|
11
11
|
|
@@ -19,25 +19,25 @@ class Comfy::Admin::Cms::LayoutsController < Comfy::Admin::Cms::BaseController
|
|
19
19
|
|
20
20
|
def create
|
21
21
|
@layout.save!
|
22
|
-
flash[:success] = I18n.t(
|
22
|
+
flash[:success] = I18n.t("comfy.admin.cms.layouts.created")
|
23
23
|
redirect_to action: :edit, id: @layout
|
24
24
|
rescue ActiveRecord::RecordInvalid
|
25
|
-
flash.now[:danger] = I18n.t(
|
25
|
+
flash.now[:danger] = I18n.t("comfy.admin.cms.layouts.creation_failure")
|
26
26
|
render action: :new
|
27
27
|
end
|
28
28
|
|
29
29
|
def update
|
30
30
|
@layout.update_attributes!(layout_params)
|
31
|
-
flash[:success] = I18n.t(
|
31
|
+
flash[:success] = I18n.t("comfy.admin.cms.layouts.updated")
|
32
32
|
redirect_to action: :edit, id: @layout
|
33
33
|
rescue ActiveRecord::RecordInvalid
|
34
|
-
flash.now[:danger] = I18n.t(
|
34
|
+
flash.now[:danger] = I18n.t("comfy.admin.cms.layouts.update_failure")
|
35
35
|
render action: :edit
|
36
36
|
end
|
37
37
|
|
38
38
|
def destroy
|
39
39
|
@layout.destroy
|
40
|
-
flash[:success] = I18n.t(
|
40
|
+
flash[:success] = I18n.t("comfy.admin.cms.layouts.deleted")
|
41
41
|
redirect_to action: :index
|
42
42
|
end
|
43
43
|
|
@@ -60,11 +60,12 @@ protected
|
|
60
60
|
def load_layout
|
61
61
|
@layout = @site.layouts.find(params[:id])
|
62
62
|
rescue ActiveRecord::RecordNotFound
|
63
|
-
flash[:danger] = I18n.t(
|
63
|
+
flash[:danger] = I18n.t("comfy.admin.cms.layouts.not_found")
|
64
64
|
redirect_to action: :index
|
65
65
|
end
|
66
66
|
|
67
67
|
def layout_params
|
68
68
|
params.fetch(:layout, {}).permit!
|
69
69
|
end
|
70
|
+
|
70
71
|
end
|
@@ -1,23 +1,26 @@
|
|
1
1
|
class Comfy::Admin::Cms::PagesController < Comfy::Admin::Cms::BaseController
|
2
2
|
|
3
|
-
before_action :check_for_layouts, only: [
|
4
|
-
before_action :build_page, only: [
|
5
|
-
before_action :load_page, only: [
|
3
|
+
before_action :check_for_layouts, only: %i[new edit]
|
4
|
+
before_action :build_page, only: %i[new create]
|
5
|
+
before_action :load_page, only: %i[edit update destroy]
|
6
|
+
|
6
7
|
before_action :authorize
|
7
|
-
|
8
|
+
|
9
|
+
before_action :preview_page, only: %i[create update]
|
8
10
|
|
9
11
|
def index
|
10
12
|
return redirect_to action: :new if site_has_no_pages?
|
11
13
|
|
12
|
-
return index_for_redactor if params[:source] ==
|
14
|
+
return index_for_redactor if params[:source] == "redactor"
|
13
15
|
|
14
16
|
@pages_by_parent = pages_grouped_by_parent
|
15
17
|
|
16
|
-
@pages =
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
@pages =
|
19
|
+
if params[:categories].present?
|
20
|
+
@site.pages.includes(:categories).for_category(params[:categories]).order(:label)
|
21
|
+
else
|
22
|
+
[@site.pages.root].compact
|
23
|
+
end
|
21
24
|
end
|
22
25
|
|
23
26
|
def new
|
@@ -30,25 +33,25 @@ class Comfy::Admin::Cms::PagesController < Comfy::Admin::Cms::BaseController
|
|
30
33
|
|
31
34
|
def create
|
32
35
|
@page.save!
|
33
|
-
flash[:success] = I18n.t(
|
36
|
+
flash[:success] = I18n.t("comfy.admin.cms.pages.created")
|
34
37
|
redirect_to action: :edit, id: @page
|
35
38
|
rescue ActiveRecord::RecordInvalid
|
36
|
-
flash.now[:danger] = I18n.t(
|
39
|
+
flash.now[:danger] = I18n.t("comfy.admin.cms.pages.creation_failure")
|
37
40
|
render action: :new
|
38
41
|
end
|
39
42
|
|
40
43
|
def update
|
41
44
|
@page.save!
|
42
|
-
flash[:success] = I18n.t(
|
45
|
+
flash[:success] = I18n.t("comfy.admin.cms.pages.updated")
|
43
46
|
redirect_to action: :edit, id: @page
|
44
47
|
rescue ActiveRecord::RecordInvalid
|
45
|
-
flash.now[:danger] = I18n.t(
|
48
|
+
flash.now[:danger] = I18n.t("comfy.admin.cms.pages.update_failure")
|
46
49
|
render action: :edit
|
47
50
|
end
|
48
51
|
|
49
52
|
def destroy
|
50
53
|
@page.destroy
|
51
|
-
flash[:success] = I18n.t(
|
54
|
+
flash[:success] = I18n.t("comfy.admin.cms.pages.deleted")
|
52
55
|
redirect_to action: :index
|
53
56
|
end
|
54
57
|
|
@@ -64,7 +67,7 @@ class Comfy::Admin::Cms::PagesController < Comfy::Admin::Cms::BaseController
|
|
64
67
|
id = @page.id.to_s
|
65
68
|
s.member?(id) ? s.delete(id) : s << id
|
66
69
|
rescue ActiveRecord::RecordNotFound
|
67
|
-
|
70
|
+
render nothing: true
|
68
71
|
end
|
69
72
|
|
70
73
|
def reorder
|
@@ -80,23 +83,23 @@ protected
|
|
80
83
|
tree_walker = ->(page, list, offset) do
|
81
84
|
return unless page.present?
|
82
85
|
label = "#{'. . ' * offset}#{page.label}"
|
83
|
-
list << {name: label, url: page.url(relative: true)}
|
86
|
+
list << { name: label, url: page.url(relative: true) }
|
84
87
|
page.children.each do |child_page|
|
85
|
-
tree_walker.(child_page, list, offset + 1)
|
88
|
+
tree_walker.call(child_page, list, offset + 1)
|
86
89
|
end
|
87
90
|
list
|
88
91
|
end
|
89
92
|
|
90
93
|
page_select_options = [{
|
91
|
-
name: I18n.t(
|
94
|
+
name: I18n.t("comfy.admin.cms.pages.form.choose_link"),
|
92
95
|
url: false
|
93
|
-
}] + tree_walker.(@site.pages.root, [
|
96
|
+
}] + tree_walker.call(@site.pages.root, [], 0)
|
94
97
|
|
95
98
|
render json: page_select_options
|
96
99
|
end
|
97
100
|
|
98
101
|
def site_has_no_pages?
|
99
|
-
@site.pages.count
|
102
|
+
@site.pages.count.zero?
|
100
103
|
end
|
101
104
|
|
102
105
|
def pages_grouped_by_parent
|
@@ -104,8 +107,8 @@ protected
|
|
104
107
|
end
|
105
108
|
|
106
109
|
def check_for_layouts
|
107
|
-
if @site.layouts.count
|
108
|
-
flash[:danger] = I18n.t(
|
110
|
+
if @site.layouts.count.zero?
|
111
|
+
flash[:danger] = I18n.t("comfy.admin.cms.pages.layout_not_found")
|
109
112
|
redirect_to new_comfy_admin_cms_site_layout_path(@site)
|
110
113
|
end
|
111
114
|
end
|
@@ -120,13 +123,13 @@ protected
|
|
120
123
|
@page = @site.pages.find(params[:id])
|
121
124
|
@page.attributes = page_params
|
122
125
|
rescue ActiveRecord::RecordNotFound
|
123
|
-
flash[:danger] = I18n.t(
|
126
|
+
flash[:danger] = I18n.t("comfy.admin.cms.pages.not_found")
|
124
127
|
redirect_to action: :index
|
125
128
|
end
|
126
129
|
|
127
130
|
def preview_page
|
128
131
|
if params[:preview]
|
129
|
-
layout = @page.layout.app_layout.blank
|
132
|
+
layout = @page.layout.app_layout.blank? ? false : @page.layout.app_layout
|
130
133
|
@cms_site = @page.site
|
131
134
|
@cms_layout = @page.layout
|
132
135
|
@cms_page = @page
|
@@ -136,13 +139,14 @@ protected
|
|
136
139
|
I18n.locale = @cms_site.locale
|
137
140
|
|
138
141
|
# Chrome chokes on content with iframes. Issue #434
|
139
|
-
response.headers[
|
142
|
+
response.headers["X-XSS-Protection"] = "0"
|
140
143
|
|
141
|
-
render inline: @page.render, layout: layout, content_type:
|
144
|
+
render inline: @page.render, layout: layout, content_type: "text/html"
|
142
145
|
end
|
143
146
|
end
|
144
147
|
|
145
148
|
def page_params
|
146
149
|
params.fetch(:page, {}).permit!
|
147
150
|
end
|
151
|
+
|
148
152
|
end
|