alchemy_cms 3.4.2 → 3.5.0.rc1
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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +9 -3
- data/.teatro.yml +1 -0
- data/.travis.yml +14 -17
- data/CHANGELOG.md +44 -6
- data/Gemfile +7 -4
- data/README.md +60 -10
- data/Rakefile +1 -1
- data/alchemy_cms.gemspec +5 -8
- data/app/assets/javascripts/alchemy/admin.js +2 -0
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +1 -0
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +1 -0
- data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +9 -7
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +1 -0
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +11 -7
- data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +8 -3
- data/app/assets/javascripts/alchemy/alchemy.tooltips.coffee +10 -0
- data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +104 -73
- data/app/assets/stylesheets/alchemy/_defaults.scss +1 -4
- data/app/assets/stylesheets/alchemy/_extends.scss +13 -35
- data/app/assets/stylesheets/alchemy/_mixins.scss +82 -18
- data/app/assets/stylesheets/alchemy/_variables.scss +21 -8
- data/app/assets/stylesheets/alchemy/admin.scss +4 -0
- data/app/assets/stylesheets/alchemy/archive.scss +8 -12
- data/app/assets/stylesheets/alchemy/attachments.scss +39 -0
- data/app/assets/stylesheets/alchemy/base.scss +26 -15
- data/app/assets/stylesheets/alchemy/buttons.scss +59 -31
- data/app/assets/stylesheets/alchemy/dashboard.scss +3 -3
- data/app/assets/stylesheets/alchemy/dialogs.scss +10 -8
- data/app/assets/stylesheets/alchemy/elements.scss +65 -41
- data/app/assets/stylesheets/alchemy/errors.scss +7 -0
- data/app/assets/stylesheets/alchemy/flash.scss +1 -1
- data/app/assets/stylesheets/alchemy/form_fields.scss +0 -37
- data/app/assets/stylesheets/alchemy/forms.scss +18 -27
- data/app/assets/stylesheets/alchemy/frame.scss +104 -204
- data/app/assets/stylesheets/alchemy/hints.scss +62 -0
- data/app/assets/stylesheets/alchemy/icon-font.scss +2 -1
- data/app/assets/stylesheets/alchemy/icons.scss +9 -4
- data/app/assets/stylesheets/alchemy/image_library.scss +6 -6
- data/app/assets/stylesheets/alchemy/jquery-ui.scss +6 -4
- data/app/assets/stylesheets/alchemy/lists.scss +0 -1
- data/app/assets/stylesheets/alchemy/menubar.scss +3 -4
- data/app/assets/stylesheets/alchemy/modules.scss +0 -6
- data/app/assets/stylesheets/alchemy/navigation.scss +242 -0
- data/app/assets/stylesheets/alchemy/pagination.scss +3 -3
- data/app/assets/stylesheets/alchemy/print.scss +1 -0
- data/app/assets/stylesheets/alchemy/resource_info.scss +45 -0
- data/app/assets/stylesheets/alchemy/search.scss +72 -1
- data/app/assets/stylesheets/alchemy/selects.scss +38 -44
- data/app/assets/stylesheets/alchemy/sitemap.scss +89 -79
- data/app/assets/stylesheets/alchemy/tables.scss +6 -10
- data/app/assets/stylesheets/alchemy/toolbar.scss +7 -36
- data/app/assets/stylesheets/alchemy/upload.scss +12 -3
- data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +6 -3
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.svg +58 -170
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.ttf +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.woff +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.svg +124 -148
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.ttf +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.woff +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +426 -144
- data/app/controllers/alchemy/admin/attachments_controller.rb +24 -16
- data/app/controllers/alchemy/admin/clipboard_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +9 -8
- data/app/controllers/alchemy/admin/layoutpages_controller.rb +1 -0
- data/app/controllers/alchemy/admin/pages_controller.rb +2 -2
- data/app/controllers/alchemy/admin/resources_controller.rb +2 -2
- data/app/controllers/alchemy/admin/tags_controller.rb +1 -1
- data/app/controllers/alchemy/api/pages_controller.rb +16 -0
- data/app/controllers/alchemy/messages_controller.rb +1 -1
- data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +2 -2
- data/app/helpers/alchemy/admin/attachments_helper.rb +11 -0
- data/app/helpers/alchemy/admin/base_helper.rb +37 -4
- data/app/helpers/alchemy/admin/contents_helper.rb +11 -4
- data/app/helpers/alchemy/admin/elements_helper.rb +0 -19
- data/app/helpers/alchemy/admin/essences_helper.rb +7 -30
- data/app/helpers/alchemy/admin/navigation_helper.rb +13 -51
- data/app/helpers/alchemy/admin/pages_helper.rb +21 -16
- data/app/helpers/alchemy/admin/pictures_helper.rb +9 -0
- data/app/helpers/alchemy/deprecated_pages_helper.rb +54 -0
- data/app/helpers/alchemy/essences_helper.rb +1 -1
- data/app/helpers/alchemy/pages_helper.rb +8 -109
- data/app/helpers/alchemy/url_helper.rb +8 -13
- data/app/models/alchemy/attachment.rb +7 -4
- data/app/models/alchemy/cell.rb +2 -2
- data/app/models/alchemy/content.rb +2 -2
- data/app/models/alchemy/content/factory.rb +12 -9
- data/app/models/alchemy/element.rb +6 -3
- data/app/models/alchemy/essence_file.rb +1 -1
- data/app/models/alchemy/essence_picture.rb +37 -47
- data/app/models/alchemy/essence_picture_view.rb +8 -1
- data/app/models/alchemy/folded_page.rb +3 -2
- data/app/models/alchemy/legacy_page_url.rb +3 -3
- data/app/models/alchemy/page.rb +50 -5
- data/app/models/alchemy/page/fixed_attributes.rb +63 -0
- data/app/models/alchemy/page/page_elements.rb +10 -7
- data/app/models/alchemy/page/page_natures.rb +19 -0
- data/app/models/alchemy/picture.rb +1 -0
- data/app/models/alchemy/picture/transformations.rb +1 -1
- data/app/models/alchemy/picture/url.rb +82 -0
- data/app/serializers/alchemy/page_tree_serializer.rb +29 -8
- data/app/views/alchemy/_edit_mode.html.erb +2 -0
- data/app/views/alchemy/_menubar.html.erb +1 -1
- data/app/views/alchemy/_preview_mode_code.html.erb +6 -0
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +25 -5
- data/app/views/alchemy/admin/attachments/_replace_button.html.erb +26 -0
- data/app/views/alchemy/admin/attachments/index.html.erb +1 -1
- data/app/views/alchemy/admin/attachments/show.html.erb +52 -0
- data/app/views/alchemy/admin/elements/_element_header.html.erb +6 -3
- data/app/views/alchemy/admin/elements/create.js.erb +0 -2
- data/app/views/alchemy/admin/elements/trash.js.erb +0 -1
- data/app/views/alchemy/admin/elements/update.js.erb +0 -2
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +1 -4
- data/app/views/alchemy/admin/essence_pictures/edit.html.erb +1 -1
- data/app/views/alchemy/admin/languages/index.html.erb +1 -0
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +26 -27
- data/app/views/alchemy/admin/layoutpages/edit.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_form.html.erb +13 -40
- data/app/views/alchemy/admin/pages/_locked_page.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_page.html.erb +119 -61
- data/app/views/alchemy/admin/pages/_page_for_links.html.erb +4 -2
- data/app/views/alchemy/admin/pages/_page_infos.html.erb +12 -12
- data/app/views/alchemy/admin/pages/_page_status.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_publication_fields.html.erb +35 -0
- data/app/views/alchemy/admin/pages/edit.html.erb +13 -2
- data/app/views/alchemy/admin/pages/index.html.erb +3 -8
- data/app/views/alchemy/admin/pages/info.html.erb +15 -2
- data/app/views/alchemy/admin/pages/sort.js.erb +1 -1
- data/app/views/alchemy/admin/pages/update.js.erb +1 -14
- data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +12 -8
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +4 -4
- data/app/views/alchemy/admin/partials/_search_form.html.erb +1 -1
- data/app/views/alchemy/admin/partials/_sub_navigation.html.erb +9 -6
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture.html.erb +1 -6
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -6
- data/app/views/alchemy/admin/pictures/index.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/show.html.erb +1 -6
- data/app/views/alchemy/admin/uploader/_button.html.erb +4 -4
- data/app/views/alchemy/base/500.html.erb +15 -1
- data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +13 -15
- data/app/views/alchemy/essences/_essence_boolean_view.html.erb +1 -3
- data/app/views/alchemy/essences/_essence_date_editor.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_date_view.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_file_editor.html.erb +2 -7
- data/app/views/alchemy/essences/_essence_file_view.html.erb +1 -3
- data/app/views/alchemy/essences/_essence_html_editor.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_html_view.html.erb +1 -3
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +47 -49
- data/app/views/alchemy/essences/_essence_picture_view.html.erb +1 -3
- data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -2
- data/app/views/alchemy/essences/_essence_richtext_view.html.erb +1 -3
- data/app/views/alchemy/essences/_essence_select_editor.html.erb +27 -29
- data/app/views/alchemy/essences/_essence_select_view.html.erb +1 -3
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +17 -19
- data/app/views/alchemy/essences/_essence_text_view.html.erb +0 -2
- data/app/views/alchemy/pages/_meta_data.html.erb +9 -0
- data/app/views/layouts/alchemy/admin.html.erb +9 -11
- data/bin/alchemy +1 -2
- data/config/alchemy/config.yml +1 -1
- data/config/alchemy/modules.yml +0 -16
- data/config/initializers/dragonfly.rb +0 -18
- data/config/initializers/mini_profiler.rb +6 -0
- data/config/locales/alchemy.de.yml +9 -1
- data/config/locales/alchemy.en.yml +7 -1
- data/config/locales/alchemy.es.yml +6 -0
- data/config/locales/alchemy.fr.yml +2 -0
- data/config/locales/alchemy.it.yml +3 -1
- data/config/locales/alchemy.nl.yml +2 -0
- data/config/locales/alchemy.ru.yml +2 -0
- data/config/routes.rb +3 -8
- data/db/migrate/20160912223112_add_index_to_alchemy_pages_rgt.rb +9 -0
- data/db/migrate/20160927205604_add_foreign_key_indices_and_null_constraints.rb +20 -0
- data/db/migrate/20160928080104_add_foreign_keys.rb +27 -0
- data/lib/alchemy/admin/locale.rb +4 -3
- data/lib/alchemy/engine.rb +2 -4
- data/lib/alchemy/errors.rb +9 -2
- data/lib/alchemy/forms/builder.rb +8 -0
- data/lib/alchemy/modules.rb +20 -19
- data/lib/alchemy/permissions.rb +15 -4
- data/lib/alchemy/resources_helper.rb +4 -2
- data/lib/alchemy/sass_support.rb +9 -0
- data/lib/alchemy/seeder.rb +89 -1
- data/lib/alchemy/test_support/essence_shared_examples.rb +2 -0
- data/lib/alchemy/test_support/factories/attachment_factory.rb +1 -1
- data/lib/alchemy/test_support/factories/content_factory.rb +1 -0
- data/lib/alchemy/test_support/factories/element_factory.rb +1 -0
- data/lib/alchemy/test_support/factories/picture_factory.rb +1 -1
- data/lib/alchemy/test_support/fixtures/image.png +0 -0
- data/lib/alchemy/tinymce.rb +2 -6
- data/lib/alchemy/upgrader.rb +4 -55
- data/lib/alchemy/upgrader/tasks/install_dragonfly_config.rb +14 -0
- data/lib/alchemy/upgrader/three_point_five.rb +32 -0
- data/lib/alchemy/upgrader/three_point_four.rb +2 -8
- data/lib/alchemy/upgrader/three_point_one.rb +30 -30
- data/lib/alchemy/upgrader/three_point_three.rb +31 -31
- data/lib/alchemy/upgrader/three_point_two.rb +25 -25
- data/lib/alchemy/upgrader/three_point_zero.rb +59 -59
- data/lib/alchemy/version.rb +1 -1
- data/lib/rails/generators/alchemy/elements/templates/view.html.erb +1 -1
- data/lib/rails/generators/alchemy/elements/templates/view.html.haml +1 -1
- data/lib/rails/generators/alchemy/elements/templates/view.html.slim +1 -1
- data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +1 -3
- data/lib/rails/generators/alchemy/install/files/_article_view.html.erb +1 -1
- data/lib/rails/generators/alchemy/install/files/application.html.erb +3 -4
- data/lib/rails/generators/alchemy/install/install_generator.rb +4 -0
- data/lib/rails/generators/alchemy/install/templates/dragonfly.rb.tt +35 -0
- data/lib/rails/generators/alchemy/module/module_generator.rb +1 -1
- data/lib/tasks/alchemy/db.rake +6 -0
- data/lib/tasks/alchemy/tidy.rake +85 -0
- data/lib/tasks/alchemy/upgrade.rake +165 -16
- data/vendor/assets/javascripts/clipboard.min.js +7 -0
- data/vendor/assets/javascripts/fileupload/jquery.fileupload-process.js +4 -4
- data/vendor/assets/javascripts/fileupload/jquery.fileupload-validate.js +2 -2
- data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +29 -14
- data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +2 -2
- data/vendor/assets/javascripts/tinymce/langs/es.js +2 -2
- data/vendor/assets/javascripts/tinymce/langs/fr.js +1 -1
- data/vendor/assets/javascripts/tinymce/langs/it.js +1 -1
- data/vendor/assets/javascripts/tinymce/langs/nl.js +3 -3
- data/vendor/assets/javascripts/tinymce/tinymce.min.js +15 -12
- metadata +44 -88
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/readme.md +0 -1
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.eot +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.eot +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/img/wline.gif +0 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.ie7.min.css +0 -1
- data/app/controllers/alchemy/pictures_controller.rb +0 -97
- data/app/views/alchemy/admin/elements/_refresh_editor.js.erb +0 -8
- data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/code/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.min.js +0 -1
- data/vendor/assets/javascripts/tinymce/themes/modern/theme.min.js +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4fe515cb79092ae441a7980d07d5da38e3023221
|
|
4
|
+
data.tar.gz: e5d16e9d4d83c30b7025cd69b14a9288e5c8ac23
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 079aab266840a0ae38173832d45bcceb9eb17a6294e53284cad2182933603b3839ab239bfb7ad601640590db4c4bfca87841f89b232b933e20f7a5a08d471c92
|
|
7
|
+
data.tar.gz: 48957ac1b40ed2f58e312e5924f427955605213a2760dfa9eda8f1d704e4ae8706ff750355999ff419aeddf4ea07ef7b32399e786ef34dd26acca557a0cd53df
|
data/.codeclimate.yml
CHANGED
|
@@ -8,6 +8,10 @@ engines:
|
|
|
8
8
|
enabled: false
|
|
9
9
|
duplication:
|
|
10
10
|
enabled: true
|
|
11
|
+
exclude_paths:
|
|
12
|
+
- "lib/alchemy/permissions.rb"
|
|
13
|
+
- "lib/tasks/alchemy/tidy.rake"
|
|
14
|
+
- "lib/tasks/alchemy/upgrade.rake"
|
|
11
15
|
config:
|
|
12
16
|
languages:
|
|
13
17
|
- ruby
|
|
@@ -23,6 +27,8 @@ ratings:
|
|
|
23
27
|
- "**.erb"
|
|
24
28
|
- "**.rb"
|
|
25
29
|
exclude_paths:
|
|
26
|
-
- config/
|
|
27
|
-
- db/
|
|
28
|
-
- spec/
|
|
30
|
+
- "config/"
|
|
31
|
+
- "db/"
|
|
32
|
+
- "spec/"
|
|
33
|
+
- "lib/alchemy/upgrader/"
|
|
34
|
+
- "lib/rails/"
|
data/.teatro.yml
CHANGED
data/.travis.yml
CHANGED
|
@@ -1,35 +1,32 @@
|
|
|
1
1
|
language: ruby
|
|
2
2
|
sudo: false
|
|
3
|
-
cache:
|
|
3
|
+
cache:
|
|
4
|
+
bundler: true
|
|
5
|
+
directories:
|
|
6
|
+
- "travis_phantomjs"
|
|
4
7
|
rvm:
|
|
5
8
|
- 2.1
|
|
6
9
|
- 2.2
|
|
7
10
|
- 2.3.0
|
|
8
11
|
branches:
|
|
9
12
|
only:
|
|
10
|
-
- 3.
|
|
13
|
+
- 3.5-stable
|
|
14
|
+
|
|
11
15
|
before_install:
|
|
16
|
+
- "phantomjs --version"
|
|
17
|
+
- "export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH"
|
|
18
|
+
- "phantomjs --version"
|
|
19
|
+
- "if [ $(phantomjs --version) != '2.1.1' ]; then rm -rf $PWD/travis_phantomjs; mkdir -p $PWD/travis_phantomjs; fi"
|
|
20
|
+
- "if [ $(phantomjs --version) != '2.1.1' ]; then wget https://assets.membergetmember.co/software/phantomjs-2.1.1-linux-x86_64.tar.bz2 -O $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2; fi"
|
|
21
|
+
- "if [ $(phantomjs --version) != '2.1.1' ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
|
|
22
|
+
- "phantomjs --version"
|
|
12
23
|
- gem install bundler
|
|
13
24
|
before_script: bundle exec rake alchemy:spec:prepare
|
|
14
25
|
script: bundle exec rspec
|
|
26
|
+
after_success: bundle exec codeclimate-test-reporter
|
|
15
27
|
env:
|
|
16
28
|
- DB=mysql
|
|
17
29
|
- DB=postgresql
|
|
18
30
|
notifications:
|
|
19
|
-
irc:
|
|
20
|
-
on_success: change
|
|
21
|
-
on_failure: always
|
|
22
|
-
use_notice: true
|
|
23
|
-
channels:
|
|
24
|
-
- irc.freenode.org#alchemy_cms
|
|
25
31
|
slack:
|
|
26
32
|
secure: QzOFw1Ph69pzwWBFgtIVkOnjbcRxB9HPRQ+RYjK+2tg+fsbiTJ+wYgHcZL49tPYcLAls4kymkFWzWBF3PCAXJMfKgUCqXzdQ2FuJC/JoVRTLll4wDnZFPG33jsm5tVznmycZ3ma4+ZWfJQ+C+elEBOba6v1kG9eGIy6sH2cvXfE=
|
|
27
|
-
webhooks:
|
|
28
|
-
urls:
|
|
29
|
-
- https://webhooks.gitter.im/e/4dc02992aca8b4fd883b
|
|
30
|
-
on_success: always
|
|
31
|
-
on_failure: always
|
|
32
|
-
on_start: never
|
|
33
|
-
addons:
|
|
34
|
-
code_climate:
|
|
35
|
-
secure: qmOMqc4FUBRP25XqaYIKuxZQ/GrGLKjIc3vUqZa+XfkQKh6xLXvOF7YUM/XJZ5u6D6hk0Ly8UxjctvDY+tQxEAK49lFwK51i7bODfkQjfVBrFzfht7QhxY5HJKx7F0HHmpyNJet4n8mR0gGlhwVyXv+Tz7Rm6O3Hq3+TEbY9+pk=
|
data/CHANGELOG.md
CHANGED
|
@@ -1,14 +1,49 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
## 3.
|
|
3
|
+
## 3.5.0 (unreleased)
|
|
4
|
+
|
|
5
|
+
__New Features__
|
|
6
|
+
|
|
7
|
+
* New API endpoint for retrieving a nested page tree (#1155)
|
|
8
|
+
`api/pages/nested` returns a nested JSON tree of all pages.
|
|
9
|
+
* Add page and user seeding support (#1160)
|
|
10
|
+
* Files of attachments are replaceable now (#1167)
|
|
11
|
+
* Add fixed page attributes (#1168)
|
|
12
|
+
Page attributes can be defined as fixed_attributes to prevent changes by the user.
|
|
13
|
+
* Allow to declare which user role can edit page content on the page layout level.
|
|
4
14
|
|
|
5
15
|
__Notable Changes__
|
|
6
16
|
|
|
7
|
-
*
|
|
17
|
+
* The essence view partials don't get cached anymore (#1099)
|
|
18
|
+
* The essence editor partials don't get cached anymore (#1171)
|
|
19
|
+
* Removes update_essence_select_elements (#1103)
|
|
20
|
+
* The admin resource form now uses the datetime-picker instead of the date-picker for datetime fields.
|
|
21
|
+
* The `preview_mode_code` helper is moved to a partial in `alchemy/preview_mode_code`. (#1110)
|
|
22
|
+
* The `render_meta_data` helper is moved to a partial in `alchemy/pages/meta_data` and can be rendered with the same options as before but now passed in as locals. (#1110)
|
|
23
|
+
* The view helpers `preview_mode_code`, `render_meta_data`, `render_meta_tag`, `render_page_title`, `render_title_tag` are now deprecated. (#1110)
|
|
24
|
+
* An easy way to include several edit mode related partials is now available (#1120):
|
|
25
|
+
`render 'alchemy/edit_mode'` loads `menubar` and `preview_mode_code` at once
|
|
26
|
+
* Add support for Turbolinks 5.0 (#1095)
|
|
27
|
+
* Use Dragonfly middleware to render pictures and remove our custom solution (#1084)
|
|
28
|
+
* `image_size` option is now deprecated. Please use just `size` (#1084)
|
|
29
|
+
* `show_alchemy_picture_path` helper is now deprecated. Please use `picture.url` instead (#1084)
|
|
30
|
+
* Display download information on the Attachment Modal Dialog (#1137)
|
|
31
|
+
* Added foreign keys to important associations (#1149)
|
|
32
|
+
* Also destroy trashed elements when page gets destroyed (#1149)
|
|
33
|
+
* Upgrade tasks can now be run separately (#1152)
|
|
34
|
+
* Update to Tinymce 4.4.3
|
|
35
|
+
* New sitemap UI (#1172)
|
|
8
36
|
|
|
9
37
|
__Fixed Bugs__
|
|
10
38
|
|
|
11
|
-
*
|
|
39
|
+
* Fix setting of locale when `current_alchemy_user.language` doesn't return a Symbol (#1097)
|
|
40
|
+
* Presence validation of EssenceFile is not working (#1096)
|
|
41
|
+
|
|
42
|
+
## 3.4.2 (unreleased)
|
|
43
|
+
|
|
44
|
+
__Notable Changes__
|
|
45
|
+
|
|
46
|
+
* Allow users to manually publish changes on global pages
|
|
12
47
|
|
|
13
48
|
## 3.4.1 (2016-08-31)
|
|
14
49
|
|
|
@@ -57,16 +92,19 @@ __Notable Changes__
|
|
|
57
92
|
* List pages from all sites in currently locked pages tabs and Dashboard widget (#1067)
|
|
58
93
|
* The locked value on page is now a timestamp (`locked_at`), so we can order locked pages by (#1070)
|
|
59
94
|
* Persist user in dummy app
|
|
95
|
+
* When publishing a page with the publish button, `Page#public_on` does not get
|
|
96
|
+
reset to the current time when it is already set and in the past, and
|
|
97
|
+
`Page#public_until` does not get nilled when it is in the future.
|
|
60
98
|
|
|
61
99
|
__Fixed Bugs__
|
|
62
100
|
|
|
101
|
+
* Fix table width for attachments and resources on small window sizes.
|
|
63
102
|
* Generators don't delete directories any more (#850)
|
|
64
103
|
* Some elements crashed the backend's JS when being saved (#1091)
|
|
65
104
|
|
|
66
|
-
## 3.3.3 (2016-
|
|
105
|
+
## 3.3.3 (2016-09-11)
|
|
67
106
|
|
|
68
|
-
* Fix bug that rendered duplicate nested elements within a cell
|
|
69
|
-
* Merge `html_options` in EssenceFile view (#1115)
|
|
107
|
+
* Fix bug that rendered duplicate nested elements within a cell after copying a parent element.
|
|
70
108
|
|
|
71
109
|
## 3.3.2 (2016-08-02)
|
|
72
110
|
|
data/Gemfile
CHANGED
|
@@ -2,17 +2,20 @@ source 'https://rubygems.org'
|
|
|
2
2
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
|
+
# Profiling
|
|
6
|
+
gem 'rack-mini-profiler', group: :development, require: false
|
|
7
|
+
|
|
5
8
|
gem 'sqlite3' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
|
|
6
9
|
gem 'mysql2', '~> 0.3.18' if ENV['DB'] == 'mysql'
|
|
7
10
|
gem 'pg' if ENV['DB'] == 'postgresql'
|
|
11
|
+
gem 'sassc-rails'
|
|
8
12
|
|
|
9
13
|
group :development, :test do
|
|
10
14
|
gem 'jasmine-rails', github: 'searls/jasmine-rails'
|
|
11
15
|
gem 'jasmine-jquery-rails', github: 'travisjeffery/jasmine-jquery-rails'
|
|
16
|
+
gem 'simplecov', require: false
|
|
12
17
|
if ENV['TRAVIS']
|
|
13
|
-
gem
|
|
14
|
-
else
|
|
15
|
-
gem 'simplecov', require: false
|
|
18
|
+
gem 'codeclimate-test-reporter', '~> 1.0', require: false
|
|
16
19
|
end
|
|
17
20
|
unless ENV['CI']
|
|
18
21
|
gem 'launchy'
|
|
@@ -28,7 +31,7 @@ group :development, :test do
|
|
|
28
31
|
gem 'capybara', '~> 2.4'
|
|
29
32
|
gem 'database_cleaner', '~> 1.3'
|
|
30
33
|
gem 'factory_girl_rails', '~> 4.5'
|
|
31
|
-
gem 'poltergeist', '~> 1.
|
|
34
|
+
gem 'poltergeist', '~> 1.10'
|
|
32
35
|
gem 'rspec-activemodel-mocks', '~> 1.0'
|
|
33
36
|
gem 'rspec-rails', '~> 3.0'
|
|
34
37
|
gem 'shoulda-matchers', '~> 3.1'
|
data/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[](http://badge.fury.io/rb/alchemy_cms)
|
|
2
|
-
[](https://travis-ci.org/AlchemyCMS/alchemy_cms)
|
|
3
3
|
[](https://codeclimate.com/github/AlchemyCMS/alchemy_cms)
|
|
4
4
|
[](https://codeclimate.com/github/AlchemyCMS/alchemy_cms)
|
|
5
5
|
[](http://slack.alchemy-cms.com)
|
|
@@ -22,7 +22,7 @@ Read more about Alchemy on the [website](https://alchemy-cms.com) and in the [gu
|
|
|
22
22
|
- User Access Control
|
|
23
23
|
- Build in contact form mailer
|
|
24
24
|
- Attachments and downloads
|
|
25
|
-
-
|
|
25
|
+
- On-the-fly image rendering
|
|
26
26
|
- Extendable via Rails engines
|
|
27
27
|
- Integrates into existing Rails Apps
|
|
28
28
|
- Flexible caching
|
|
@@ -56,7 +56,7 @@ For a Ruby 1.8.7 compatible version use the [`2.3-stable` branch](https://github
|
|
|
56
56
|
Use the installer:
|
|
57
57
|
|
|
58
58
|
```shell
|
|
59
|
-
$ gem install alchemy_cms
|
|
59
|
+
$ gem install alchemy_cms --pre
|
|
60
60
|
$ alchemy new my_magicpage
|
|
61
61
|
```
|
|
62
62
|
|
|
@@ -75,7 +75,7 @@ $ alchemy --help
|
|
|
75
75
|
Put this into your `Gemfile`:
|
|
76
76
|
|
|
77
77
|
```ruby
|
|
78
|
-
gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: '3.
|
|
78
|
+
gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: '3.5-stable'
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
If you want to use Russian translation and have better i18n support, you should put:
|
|
@@ -102,11 +102,9 @@ the Devise based user model that Alchemy provides and was extracted [into its ow
|
|
|
102
102
|
If you don't have your own user class, you can use the Alchemy user model. Just add the following gem into your `Gemfile`:
|
|
103
103
|
|
|
104
104
|
```ruby
|
|
105
|
-
gem 'alchemy-devise', github: 'AlchemyCMS/alchemy-devise', branch: '3.
|
|
105
|
+
gem 'alchemy-devise', github: 'AlchemyCMS/alchemy-devise', branch: '3.5-stable'
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
**NOTE:** You normally want to use a stable branch, like `3.3-stable`.
|
|
109
|
-
|
|
110
108
|
Then run:
|
|
111
109
|
|
|
112
110
|
```shell
|
|
@@ -185,9 +183,25 @@ Alchemy.admin_constraints = {subdomain: 'hidden'}
|
|
|
185
183
|
|
|
186
184
|
will move the dashboard to <http://hidden.example.com/backend>.
|
|
187
185
|
|
|
186
|
+
### Picture caching
|
|
187
|
+
|
|
188
|
+
Alchemy uses the Dragonfly gem to render pictures on-the-fly.
|
|
189
|
+
|
|
190
|
+
To make this as performant as possible the rendered picture gets stored into `public/pictures`
|
|
191
|
+
so the web server can pick up the file and serve it without hitting the Rails process at all.
|
|
192
|
+
|
|
193
|
+
This may or may not what you want. Especially for multi server setups you eventually want to use
|
|
194
|
+
something like S3.
|
|
195
|
+
|
|
196
|
+
Please follow the guidelines about picture caching on the Dragonfly homepage for further instructions:
|
|
197
|
+
|
|
198
|
+
http://markevans.github.io/dragonfly/cache/
|
|
199
|
+
|
|
200
|
+
|
|
188
201
|
## Upgrading
|
|
189
202
|
|
|
190
|
-
The Alchemy team takes upgrades very seriously and tries to make them as smooth as we can.
|
|
203
|
+
The Alchemy team takes upgrades very seriously and tries to make them as smooth as we can.
|
|
204
|
+
Therefore we have build in upgrade tasks, that try to automate as much as possible.
|
|
191
205
|
|
|
192
206
|
That's why after updating the Alchemy gem you should **always run the upgrader**:
|
|
193
207
|
|
|
@@ -196,12 +210,48 @@ $ bundle update alchemy_cms
|
|
|
196
210
|
$ bin/rake alchemy:upgrade
|
|
197
211
|
```
|
|
198
212
|
|
|
199
|
-
Alchemy will print out useful information after running the automated tasks that help a smooth upgrade path.
|
|
213
|
+
Alchemy will print out useful information after running the automated tasks that help a smooth upgrade path.
|
|
214
|
+
So please **take your time and read them**.
|
|
200
215
|
|
|
201
216
|
Always be sure to keep an eye on the `config/alchemy/config.yml.defaults` file and update your `config/alchemy/config.yml` accordingly.
|
|
202
217
|
|
|
203
|
-
Also, `git diff` is your friend.
|
|
218
|
+
Also, `git diff` is your friend.
|
|
219
|
+
|
|
220
|
+
### Customize the upgrade preparation
|
|
221
|
+
|
|
222
|
+
The Alchemy upgrader comes prepared with with several rake tasks in a specific order.
|
|
223
|
+
This is sometimes not what you want or could even break upgrades.
|
|
224
|
+
In order to customize the upgrade preparation process you can instead run each of the tasks on their own.
|
|
225
|
+
|
|
226
|
+
```shell
|
|
227
|
+
$ bin/rake alchemy:install:migrations
|
|
228
|
+
$ bin/rake db:migrate
|
|
229
|
+
$ bin/rake alchemy:db:seed
|
|
230
|
+
$ bin/rake alchemy:upgrade:config
|
|
231
|
+
$ bin/rake alchemy:upgrade:run
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**WARNING:** This is only recommended, if you have problems with the default `rake alchemy:upgrade` task and need to
|
|
235
|
+
repair your data in between. The upgrader depends on these upgrade tasks running in this specific order, otherwise
|
|
236
|
+
we can't ensure smooth upgrades for you.
|
|
237
|
+
|
|
238
|
+
### Run an individual upgrade
|
|
239
|
+
|
|
240
|
+
You can also run an individual upgrade on its own:
|
|
241
|
+
|
|
242
|
+
```shell
|
|
243
|
+
$ bin/rake -T alchemy:upgrade
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
provides you with a list of each upgrade you can run individually.
|
|
247
|
+
|
|
248
|
+
#### Example
|
|
249
|
+
|
|
250
|
+
```shell
|
|
251
|
+
$ bin/rake alchemy:upgrade:3.2
|
|
252
|
+
```
|
|
204
253
|
|
|
254
|
+
runs only the Alchemy 3.2 upgrade
|
|
205
255
|
|
|
206
256
|
## Deployment
|
|
207
257
|
|
data/Rakefile
CHANGED
|
@@ -40,7 +40,7 @@ namespace :alchemy do
|
|
|
40
40
|
namespace :spec do
|
|
41
41
|
desc "Prepares database for testing Alchemy"
|
|
42
42
|
task :prepare do
|
|
43
|
-
system 'cd spec/dummy && RAILS_ENV=test bundle exec rake db:
|
|
43
|
+
system 'cd spec/dummy && RAILS_ENV=test bundle exec rake db:drop db:create db:migrate:reset && cd -'
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
end
|
data/alchemy_cms.gemspec
CHANGED
|
@@ -19,30 +19,27 @@ Gem::Specification.new do |gem|
|
|
|
19
19
|
gem.executables = 'alchemy'
|
|
20
20
|
gem.require_paths = ['lib']
|
|
21
21
|
|
|
22
|
-
gem.add_runtime_dependency 'actionpack-page_caching', ['~> 1.0.0']
|
|
23
22
|
gem.add_runtime_dependency 'active_model_serializers', ['~> 0.9.0']
|
|
24
23
|
gem.add_runtime_dependency 'acts_as_list', ['~> 0.3']
|
|
25
|
-
gem.add_runtime_dependency 'acts-as-taggable-on', ['~>
|
|
26
|
-
gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.
|
|
24
|
+
gem.add_runtime_dependency 'acts-as-taggable-on', ['~> 4.0']
|
|
25
|
+
gem.add_runtime_dependency 'awesome_nested_set', ['~> 3.1']
|
|
26
|
+
gem.add_runtime_dependency 'bourbon', ['~> 4.2']
|
|
27
27
|
gem.add_runtime_dependency 'cancancan', ['~> 1.9']
|
|
28
28
|
gem.add_runtime_dependency 'coffee-rails', ['~> 4.0']
|
|
29
|
-
gem.add_runtime_dependency 'compass-rails', ['>= 2.0.4', '< 4.0']
|
|
30
29
|
gem.add_runtime_dependency 'dragonfly', ['~> 1.0.1']
|
|
31
30
|
gem.add_runtime_dependency 'dragonfly_svg', ['~> 0.0.4']
|
|
32
31
|
gem.add_runtime_dependency 'jquery-rails', ['~> 4.0']
|
|
33
32
|
gem.add_runtime_dependency 'jquery-ui-rails', ['~> 5.0.0']
|
|
34
33
|
gem.add_runtime_dependency 'kaminari', ['~> 0.15']
|
|
35
|
-
gem.add_runtime_dependency 'magiclabs-userstamp', ['~>
|
|
34
|
+
gem.add_runtime_dependency 'magiclabs-userstamp', ['~> 3.0']
|
|
36
35
|
gem.add_runtime_dependency 'non-stupid-digest-assets', ['~> 1.0.8']
|
|
37
36
|
gem.add_runtime_dependency 'rails', ['>= 4.2.0', '< 5.0']
|
|
38
37
|
gem.add_runtime_dependency 'ransack', ['~> 1.4']
|
|
39
38
|
gem.add_runtime_dependency 'request_store', ['~> 1.2']
|
|
40
39
|
gem.add_runtime_dependency 'responders', ['~> 2.0']
|
|
41
|
-
gem.add_runtime_dependency 'sass-rails', ['~> 5.0']
|
|
42
|
-
gem.add_runtime_dependency 'sassy-buttons', ['~> 0.2.6']
|
|
43
40
|
gem.add_runtime_dependency 'select2-rails', ['>= 3.5.9.1', '< 4.0']
|
|
44
41
|
gem.add_runtime_dependency 'simple_form', ['~> 3.0']
|
|
45
|
-
gem.add_runtime_dependency 'turbolinks', ['
|
|
42
|
+
gem.add_runtime_dependency 'turbolinks', ['>= 2.5']
|
|
46
43
|
|
|
47
44
|
gem.post_install_message = <<-MSG
|
|
48
45
|
-------------------------------------------------------------
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
//= require jquery-ui/tabs
|
|
11
11
|
//= require tinymce/tinymce.min
|
|
12
12
|
//= require_tree ../../../../vendor/assets/javascripts/jquery_plugins/
|
|
13
|
+
//= require clipboard.min
|
|
13
14
|
//= require spin.min
|
|
14
15
|
//= require keymaster
|
|
15
16
|
//= require requestAnimationFrame
|
|
@@ -49,5 +50,6 @@
|
|
|
49
50
|
//= require alchemy/alchemy.sitemap
|
|
50
51
|
//= require alchemy/alchemy.spinner
|
|
51
52
|
//= require alchemy/alchemy.tinymce
|
|
53
|
+
//= require alchemy/alchemy.tooltips
|
|
52
54
|
//= require alchemy/alchemy.translations
|
|
53
55
|
//= require alchemy/alchemy.trash_window
|
|
@@ -13,7 +13,7 @@ Alchemy.Hotkeys = (scope) ->
|
|
|
13
13
|
key.unbind(hotkey)
|
|
14
14
|
|
|
15
15
|
# Binds keyboard shortcuts to search fields.
|
|
16
|
-
$search_fields = $('
|
|
16
|
+
$search_fields = $('.search_input_field', scope)
|
|
17
17
|
$search_fields_clear = $('.search_field_clear, .js_filter_field_clear', scope)
|
|
18
18
|
|
|
19
19
|
key 'alt+f', ->
|
|
@@ -15,8 +15,8 @@ Alchemy.Initializer = ->
|
|
|
15
15
|
Alchemy.Growler.fade()
|
|
16
16
|
|
|
17
17
|
# Add observer for please wait overlay.
|
|
18
|
-
$('
|
|
19
|
-
.not('*[data-alchemy-confirm],
|
|
18
|
+
$('.please_wait, #main_navi a, .button_with_label form :submit, .locked_page a, .pagination a')
|
|
19
|
+
.not('*[data-alchemy-confirm], .locked_page button')
|
|
20
20
|
.click ->
|
|
21
21
|
unless Alchemy.isPageDirty()
|
|
22
22
|
Alchemy.pleaseWaitOverlay()
|
|
@@ -55,16 +55,18 @@ Alchemy.Initializer = ->
|
|
|
55
55
|
scrollingTop: 122,
|
|
56
56
|
zIndex: 1
|
|
57
57
|
|
|
58
|
-
# Enabling the Turbolinks Progress Bar
|
|
59
|
-
Turbolinks.enableProgressBar()
|
|
58
|
+
# Enabling the Turbolinks Progress Bar for v2.5
|
|
59
|
+
Turbolinks.enableProgressBar() if Turbolinks.enableProgressBar
|
|
60
60
|
|
|
61
|
-
# Turbolinks DOM Ready
|
|
62
|
-
|
|
61
|
+
# Turbolinks DOM Ready.
|
|
62
|
+
# Handle both v2.5(page:change), and v.5.0 (turbolinks:load)
|
|
63
|
+
$(document).on 'page:change turbolinks:load', ->
|
|
63
64
|
Alchemy.Initializer()
|
|
64
65
|
return
|
|
65
66
|
|
|
66
67
|
# Turbolinks before parsing a new page
|
|
67
|
-
|
|
68
|
+
# Handle both v2.5(page:receive), and v.5.0 (turbolinks:request-end)
|
|
69
|
+
$(document).on 'page:receive turbolinks:request-end', ->
|
|
68
70
|
# Ensure that all tinymce editors get removed before parsing a new page
|
|
69
71
|
Alchemy.Tinymce.removeFrom $('.has_tinymce')
|
|
70
72
|
return
|