alchemy_cms 4.0.6 → 4.1.0.beta
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 +1 -0
- data/.gitignore +1 -0
- data/.localeapp/config.rb +8 -0
- data/.rubocop.yml +26 -13
- data/.travis.yml +12 -14
- data/CHANGELOG.md +5 -24
- data/Gemfile +10 -7
- data/README.md +16 -14
- data/Rakefile +1 -1
- data/alchemy_cms.gemspec +6 -7
- data/app/assets/images/alchemy/alchemy-logo.png +0 -0
- data/app/assets/images/alchemy/alchemy-logo.svg +1 -70
- data/app/assets/images/alchemy/favicon.ico +0 -0
- data/app/assets/images/alchemy/icon.svg +1 -14
- data/app/assets/javascripts/alchemy/admin.js +0 -7
- data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +2 -2
- data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +1 -0
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +19 -6
- data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +2 -7
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +36 -26
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +6 -15
- data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +8 -11
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +4 -1
- data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +5 -14
- data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +54 -75
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +4 -13
- data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +1 -0
- data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +12 -6
- data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +0 -158
- data/app/assets/stylesheets/alchemy/_defaults.scss +0 -2
- data/app/assets/stylesheets/alchemy/_extends.scss +13 -18
- data/app/assets/stylesheets/alchemy/_mixins.scss +72 -46
- data/app/assets/stylesheets/alchemy/_variables.scss +128 -59
- data/app/assets/stylesheets/alchemy/admin.scss +7 -1
- data/app/assets/stylesheets/alchemy/archive.scss +23 -27
- data/app/assets/stylesheets/alchemy/base.scss +5 -355
- data/app/assets/stylesheets/alchemy/buttons.scss +23 -60
- data/app/assets/stylesheets/alchemy/clipboard.scss +26 -0
- data/app/assets/stylesheets/alchemy/dashboard.scss +7 -40
- data/app/assets/stylesheets/alchemy/dialogs.scss +23 -36
- data/app/assets/stylesheets/alchemy/elements.scss +80 -156
- data/app/assets/stylesheets/alchemy/errors.scss +2 -2
- data/app/assets/stylesheets/alchemy/flash.scss +19 -10
- data/app/assets/stylesheets/alchemy/fonts.scss +13 -0
- data/app/assets/stylesheets/alchemy/forms.scss +6 -1
- data/app/assets/stylesheets/alchemy/frame.scss +24 -65
- data/app/assets/stylesheets/alchemy/hints.scss +2 -2
- data/app/assets/stylesheets/alchemy/icons.scss +3 -337
- data/app/assets/stylesheets/alchemy/image_library.scss +9 -10
- data/app/assets/stylesheets/alchemy/jquery-ui.scss +21 -839
- data/app/assets/stylesheets/alchemy/jquery.datetimepicker.scss +32 -57
- data/app/assets/stylesheets/alchemy/lists.scss +4 -8
- data/app/assets/stylesheets/alchemy/menubar.scss +26 -29
- data/app/assets/stylesheets/alchemy/navigation.scss +23 -25
- data/app/assets/stylesheets/alchemy/notices.scss +25 -25
- data/app/assets/stylesheets/alchemy/pagination.scss +12 -7
- data/app/assets/stylesheets/alchemy/preview_window.scss +20 -0
- data/app/assets/stylesheets/alchemy/resource_info.scss +1 -1
- data/app/assets/stylesheets/alchemy/search.scss +19 -15
- data/app/assets/stylesheets/alchemy/selects.scss +63 -32
- data/app/assets/stylesheets/alchemy/sitemap.scss +70 -148
- data/app/assets/stylesheets/alchemy/tables.scss +16 -59
- data/app/assets/stylesheets/alchemy/toolbar.scss +9 -36
- data/app/assets/stylesheets/alchemy/trash.scss +8 -0
- data/app/assets/stylesheets/alchemy/upload.scss +5 -6
- data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +1 -0
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +78 -43
- data/app/controllers/alchemy/admin/attachments_controller.rb +6 -6
- data/app/controllers/alchemy/admin/base_controller.rb +9 -9
- data/app/controllers/alchemy/admin/contents_controller.rb +0 -17
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -4
- data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -3
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +1 -3
- data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pictures_controller.rb +5 -5
- data/app/controllers/alchemy/admin/resources_controller.rb +10 -10
- data/app/controllers/alchemy/admin/tags_controller.rb +7 -7
- data/app/controllers/alchemy/api/contents_controller.rb +6 -1
- data/app/controllers/alchemy/api/elements_controller.rb +5 -1
- data/app/controllers/alchemy/api/pages_controller.rb +6 -1
- data/app/controllers/alchemy/base_controller.rb +5 -3
- data/app/controllers/alchemy/pages_controller.rb +1 -1
- data/app/helpers/alchemy/admin/base_helper.rb +14 -15
- data/app/helpers/alchemy/admin/contents_helper.rb +1 -2
- data/app/helpers/alchemy/admin/elements_helper.rb +7 -6
- data/app/helpers/alchemy/admin/tags_helper.rb +3 -4
- data/app/helpers/alchemy/base_helper.rb +35 -5
- data/app/helpers/alchemy/elements_helper.rb +2 -2
- data/app/helpers/alchemy/pages_helper.rb +4 -2
- data/app/models/alchemy/attachment.rb +14 -23
- data/app/models/alchemy/base_record.rb +13 -0
- data/app/models/alchemy/cell.rb +1 -1
- data/app/models/alchemy/content.rb +1 -2
- data/app/models/alchemy/content/factory.rb +1 -1
- data/app/models/alchemy/element.rb +10 -12
- data/app/models/alchemy/essence_boolean.rb +1 -1
- data/app/models/alchemy/essence_date.rb +2 -2
- data/app/models/alchemy/essence_file.rb +1 -1
- data/app/models/alchemy/essence_html.rb +1 -1
- data/app/models/alchemy/essence_link.rb +1 -1
- data/app/models/alchemy/essence_picture.rb +1 -1
- data/app/models/alchemy/essence_richtext.rb +1 -1
- data/app/models/alchemy/essence_select.rb +1 -1
- data/app/models/alchemy/essence_text.rb +1 -1
- data/app/models/alchemy/folded_page.rb +1 -1
- data/app/models/alchemy/language.rb +21 -5
- data/app/models/alchemy/page.rb +17 -5
- data/app/models/alchemy/page/page_elements.rb +14 -2
- data/app/models/alchemy/page/page_naming.rb +17 -4
- data/app/models/alchemy/picture.rb +4 -7
- data/app/models/alchemy/site.rb +3 -3
- data/app/models/alchemy/tag.rb +3 -3
- data/app/models/concerns/alchemy/content_touching.rb +23 -0
- data/app/serializers/alchemy/element_serializer.rb +2 -0
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +11 -21
- data/app/views/alchemy/admin/attachments/_files_list.html.erb +26 -29
- data/app/views/alchemy/admin/attachments/_filter_bar.html.erb +2 -3
- data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +3 -4
- data/app/views/alchemy/admin/attachments/_replace_button.html.erb +2 -3
- data/app/views/alchemy/admin/attachments/_tag_list.html.erb +3 -3
- data/app/views/alchemy/admin/attachments/destroy.js.erb +1 -1
- data/app/views/alchemy/admin/attachments/edit.html.erb +2 -2
- data/app/views/alchemy/admin/attachments/index.html.erb +3 -2
- data/app/views/alchemy/admin/attachments/show.html.erb +7 -8
- data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
- data/app/views/alchemy/admin/clipboard/index.html.erb +23 -7
- data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
- data/app/views/alchemy/admin/clipboard/remove.js.erb +2 -2
- data/app/views/alchemy/admin/contents/create.js.erb +1 -1
- data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +9 -6
- data/app/views/alchemy/admin/dashboard/_recent_pages.html.erb +6 -4
- data/app/views/alchemy/admin/dashboard/_sites.html.erb +4 -2
- data/app/views/alchemy/admin/dashboard/_users.html.erb +6 -4
- data/app/views/alchemy/admin/dashboard/index.html.erb +3 -3
- data/app/views/alchemy/admin/dashboard/info.html.erb +6 -7
- data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_element.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_element_header.html.erb +14 -14
- data/app/views/alchemy/admin/elements/_element_toolbar.html.erb +3 -3
- data/app/views/alchemy/admin/elements/_new_element_form.html.erb +2 -3
- data/app/views/alchemy/admin/elements/index.html.erb +2 -4
- data/app/views/alchemy/admin/elements/new.html.erb +1 -2
- data/app/views/alchemy/admin/elements/publish.js.erb +5 -5
- data/app/views/alchemy/admin/languages/_language.html.erb +4 -9
- data/app/views/alchemy/admin/languages/_table.html.erb +1 -1
- data/app/views/alchemy/admin/languages/index.html.erb +1 -1
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +5 -5
- data/app/views/alchemy/admin/layoutpages/index.html.erb +5 -4
- data/app/views/alchemy/admin/leave.html.erb +1 -1
- data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +1 -1
- data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_form.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_locked_page.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_page.html.erb +31 -23
- data/app/views/alchemy/admin/pages/_page_for_links.html.erb +5 -5
- data/app/views/alchemy/admin/pages/_page_infos.html.erb +3 -3
- data/app/views/alchemy/admin/pages/_publication_fields.html.erb +1 -1
- data/app/views/alchemy/admin/pages/edit.html.erb +22 -21
- data/app/views/alchemy/admin/pages/index.html.erb +5 -21
- data/app/views/alchemy/admin/pages/info.html.erb +5 -5
- data/app/views/alchemy/admin/pages/sort.html.erb +1 -1
- data/app/views/alchemy/admin/pages/unlock.js.erb +2 -4
- data/app/views/alchemy/admin/partials/_flash.html.erb +1 -1
- data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +7 -3
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
- data/app/views/alchemy/admin/partials/_search_form.html.erb +3 -3
- data/app/views/alchemy/admin/pictures/_archive.html.erb +19 -17
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +13 -13
- data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +2 -3
- data/app/views/alchemy/admin/pictures/_form.html.erb +3 -3
- data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +2 -3
- data/app/views/alchemy/admin/pictures/_picture.html.erb +7 -7
- data/app/views/alchemy/admin/pictures/_tag_list.html.erb +3 -3
- data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +6 -7
- data/app/views/alchemy/admin/pictures/index.html.erb +12 -12
- data/app/views/alchemy/admin/pictures/index.js.erb +0 -1
- data/app/views/alchemy/admin/pictures/show.html.erb +9 -9
- data/app/views/alchemy/admin/resources/_filter_bar.html.erb +2 -3
- data/app/views/alchemy/admin/resources/_form.html.erb +10 -2
- data/app/views/alchemy/admin/resources/_resource.html.erb +9 -14
- data/app/views/alchemy/admin/resources/_table.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_tag_list.html.erb +4 -4
- data/app/views/alchemy/admin/resources/index.html.erb +2 -3
- data/app/views/alchemy/admin/sites/index.html.erb +1 -1
- data/app/views/alchemy/admin/tags/_tag.html.erb +7 -11
- data/app/views/alchemy/admin/tags/index.html.erb +4 -4
- data/app/views/alchemy/admin/trash/index.html.erb +2 -3
- data/app/views/alchemy/admin/uploader/_button.html.erb +1 -2
- data/app/views/alchemy/base/500.html.erb +1 -1
- data/app/views/alchemy/base/permission_denied.js.erb +1 -1
- data/app/views/alchemy/base/redirect.js.erb +1 -2
- data/app/views/alchemy/elements/_editor_not_found.html.erb +2 -3
- data/app/views/alchemy/essences/_essence_date_editor.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_file_editor.html.erb +7 -11
- data/app/views/alchemy/essences/_essence_picture_editor.html.erb +9 -7
- data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +1 -1
- data/app/views/alchemy/pages/_meta_data.html.erb +1 -1
- data/app/views/kaminari/alchemy/_first_page.html.erb +7 -3
- data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
- data/app/views/kaminari/alchemy/_last_page.html.erb +7 -3
- data/app/views/kaminari/alchemy/_next_page.html.erb +4 -2
- data/app/views/kaminari/alchemy/_page.html.erb +1 -1
- data/app/views/kaminari/alchemy/_prev_page.html.erb +4 -2
- data/app/views/layouts/alchemy/admin.html.erb +8 -6
- data/bin/rails +2 -2
- data/bin/rspec +1 -1
- data/config/alchemy/config.yml +0 -2
- data/config/alchemy/modules.yml +5 -5
- data/config/initializers/simple_form.rb +45 -8
- data/config/locales/alchemy.en.yml +66 -179
- data/config/routes.rb +1 -1
- data/db/migrate/20180226123013_alchemy_four_point_zero.rb +392 -0
- data/db/migrate/20180227224537_migrate_tags_to_gutentag.rb +41 -0
- data/lib/alchemy/config.rb +0 -2
- data/lib/alchemy/engine.rb +5 -9
- data/lib/alchemy/essence.rb +6 -6
- data/lib/alchemy/filetypes.rb +13 -1
- data/lib/alchemy/forms/builder.rb +5 -3
- data/lib/alchemy/i18n.rb +8 -6
- data/lib/alchemy/modules.rb +1 -1
- data/lib/alchemy/name_conversions.rb +0 -2
- data/lib/alchemy/page_layout.rb +3 -2
- data/lib/alchemy/paths.rb +5 -5
- data/lib/alchemy/resource.rb +9 -9
- data/lib/alchemy/resources_helper.rb +11 -15
- data/lib/alchemy/routing_constraints.rb +2 -2
- data/lib/alchemy/shell.rb +0 -1
- data/lib/alchemy/taggable.rb +40 -0
- data/lib/alchemy/tasks/tidy.rb +1 -9
- data/lib/alchemy/test_support/factories/content_factory.rb +10 -0
- data/lib/alchemy/test_support/factories/element_factory.rb +5 -0
- data/lib/alchemy/test_support/shared_contexts.rb +1 -1
- data/lib/alchemy/tinymce.rb +2 -2
- data/lib/alchemy/upgrader/four_point_one.rb +42 -0
- data/lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb +27 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +2 -3
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +2 -2
- data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
- data/lib/rails/generators/alchemy/install/install_generator.rb +4 -8
- data/lib/rails/generators/alchemy/module/module_generator.rb +1 -1
- data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +2 -2
- data/lib/rails/generators/alchemy/site_layouts/site_layouts_generator.rb +2 -2
- data/lib/rails/generators/alchemy/views/views_generator.rb +1 -1
- data/lib/tasks/alchemy/db.rake +2 -1
- data/lib/tasks/alchemy/tidy.rake +0 -6
- data/lib/tasks/alchemy/upgrade.rake +11 -144
- data/vendor/assets/fonts/fa-regular-400.eot +0 -0
- data/vendor/assets/fonts/fa-regular-400.svg +363 -0
- data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
- data/vendor/assets/fonts/fa-regular-400.woff +0 -0
- data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
- data/vendor/assets/fonts/fa-solid-900.eot +0 -0
- data/vendor/assets/fonts/fa-solid-900.svg +1413 -0
- data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
- data/vendor/assets/fonts/fa-solid-900.woff +0 -0
- data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
- data/vendor/assets/javascripts/tinymce/license.txt +6 -6
- data/vendor/assets/javascripts/tinymce/tinymce.min.js +2 -15
- data/vendor/assets/stylesheets/fontawesome/_animated.scss +20 -0
- data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +20 -0
- data/vendor/assets/stylesheets/fontawesome/_core.scss +16 -0
- data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +6 -0
- data/vendor/assets/stylesheets/fontawesome/_icons.scss +792 -0
- data/vendor/assets/stylesheets/fontawesome/_larger.scss +23 -0
- data/vendor/assets/stylesheets/fontawesome/_list.scss +18 -0
- data/vendor/assets/stylesheets/fontawesome/_mixins.scss +57 -0
- data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +23 -0
- data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +5 -0
- data/vendor/assets/stylesheets/fontawesome/_stacked.scss +31 -0
- data/vendor/assets/stylesheets/fontawesome/_variables.scss +805 -0
- data/vendor/assets/stylesheets/fontawesome/fa-regular.scss +22 -0
- data/vendor/assets/stylesheets/fontawesome/fa-solid.scss +23 -0
- data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +16 -0
- metadata +78 -112
- data/app/assets/fonts/alchemy/icons.eot +0 -0
- data/app/assets/fonts/alchemy/icons.svg +0 -33
- data/app/assets/fonts/alchemy/icons.ttf +0 -0
- data/app/assets/fonts/alchemy/icons.woff +0 -0
- data/app/assets/images/alchemy/icons.png +0 -0
- data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/sassy-ie-overlay.png +0 -0
- data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +0 -42
- data/app/assets/stylesheets/alchemy/icon-font.scss +0 -75
- data/app/assets/stylesheets/alchemy/modules.scss +0 -27
- data/app/models/alchemy.rb +0 -7
- data/app/views/alchemy/admin/contents/destroy.js.erb +0 -4
- data/app/views/alchemy/admin/pictures/flush.js.erb +0 -2
- data/config/locales/alchemy.de.yml +0 -932
- data/config/locales/alchemy.es.yml +0 -960
- data/config/locales/alchemy.fr.yml +0 -938
- data/config/locales/alchemy.it.yml +0 -938
- data/config/locales/alchemy.nl.yml +0 -918
- data/config/locales/alchemy.ru.yml +0 -830
- data/config/locales/simple_form.de.yml +0 -26
- data/config/locales/simple_form.en.yml +0 -25
- data/config/locales/simple_form.es.yml +0 -6
- data/config/locales/simple_form.fr.yml +0 -26
- data/config/locales/simple_form.it.yml +0 -25
- data/config/locales/simple_form.nl.yml +0 -25
- data/config/locales/simple_form.ru.yml +0 -25
- data/db/migrate/20130827094554_alchemy_two_point_six.rb +0 -378
- data/db/migrate/20130828121054_remove_do_not_index_from_alchemy_essence_texts.rb +0 -5
- data/db/migrate/20130828121120_remove_do_not_index_from_alchemy_essence_richtexts.rb +0 -5
- data/db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb +0 -5
- data/db/migrate/20150608204610_add_parent_element_id_to_alchemy_elements.rb +0 -6
- data/db/migrate/20150729151825_add_link_text_to_alchemy_essence_files.rb +0 -5
- data/db/migrate/20150906195818_add_locale_to_alchemy_languages.rb +0 -7
- data/db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb +0 -32
- data/db/migrate/20160422195310_add_image_file_format_to_alchemy_pictures.rb +0 -9
- data/db/migrate/20160617224938_change_alchemy_pages_locked_to_locked_at.rb +0 -22
- data/db/migrate/20160912223112_add_index_to_alchemy_pages_rgt.rb +0 -9
- data/db/migrate/20160927205604_add_foreign_key_indices_and_null_constraints.rb +0 -20
- data/db/migrate/20160928080104_add_foreign_keys.rb +0 -27
- data/lib/alchemy/touching.rb +0 -42
- data/lib/alchemy/upgrader/tasks/available_contents_upgrader.rb +0 -161
- data/lib/alchemy/upgrader/tasks/install_asset_manifests.rb +0 -15
- data/lib/alchemy/upgrader/tasks/install_dragonfly_config.rb +0 -14
- data/lib/alchemy/upgrader/tasks/nestable_elements_migration.rb +0 -71
- data/lib/alchemy/upgrader/tasks/three_point_two_task.rb +0 -31
- data/lib/alchemy/upgrader/three_point_five.rb +0 -32
- data/lib/alchemy/upgrader/three_point_four.rb +0 -52
- data/lib/alchemy/upgrader/three_point_one.rb +0 -54
- data/lib/alchemy/upgrader/three_point_three.rb +0 -50
- data/lib/alchemy/upgrader/three_point_two.rb +0 -40
- data/lib/alchemy/upgrader/three_point_zero.rb +0 -92
- data/vendor/assets/javascripts/jquery_plugins/jquery.floatThead.min.js +0 -3
- data/vendor/assets/javascripts/tinymce/langs/de.js +0 -219
- data/vendor/assets/javascripts/tinymce/langs/es.js +0 -219
- data/vendor/assets/javascripts/tinymce/langs/fr.js +0 -219
- data/vendor/assets/javascripts/tinymce/langs/it.js +0 -219
- data/vendor/assets/javascripts/tinymce/langs/nl.js +0 -219
- data/vendor/assets/javascripts/tinymce/langs/ru.js +0 -219
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
<%- if @elements.blank? -%>
|
|
2
|
-
|
|
3
|
-
<%= render_icon('info') %>
|
|
2
|
+
<%= render_message do %>
|
|
4
3
|
<%= Alchemy.t('Your trash is empty') %>
|
|
5
|
-
|
|
4
|
+
<% end %>
|
|
6
5
|
<%- else -%>
|
|
7
6
|
<%= render_message do %>
|
|
8
7
|
<%= Alchemy.t('Drag an element over to the element window to restore it') %>
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
(function() {
|
|
2
2
|
var dialog = Alchemy.currentDialog();
|
|
3
3
|
var callback = function() {
|
|
4
|
-
|
|
5
|
-
window.location.href = '<%= url_for(@redirect_url) %>';
|
|
4
|
+
Turbolinks.visit('<%= url_for(@redirect_url) %>');
|
|
6
5
|
};
|
|
7
6
|
if (dialog) {
|
|
8
7
|
Alchemy.closeCurrentDialog(callback);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<% dialog_link = link_to_dialog('',
|
|
1
|
+
<% dialog_link = link_to_dialog render_icon(:file, style: 'regular'),
|
|
2
2
|
alchemy.admin_attachments_path(
|
|
3
3
|
content_id: content.id,
|
|
4
4
|
only: content.settings_value(:only, local_assigns.fetch(:options, {})),
|
|
@@ -10,29 +10,26 @@
|
|
|
10
10
|
size: '780x585',
|
|
11
11
|
padding: false
|
|
12
12
|
},
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
title: Alchemy.t(:assign_file)
|
|
16
|
-
}
|
|
17
|
-
) %>
|
|
13
|
+
class: 'file_icon',
|
|
14
|
+
title: Alchemy.t(:assign_file) %>
|
|
18
15
|
|
|
19
16
|
<div class="content_editor essence_file" id="<%= content.dom_id %>" data-content-id="<%= content.id %>">
|
|
20
17
|
<%= content_label(content) %>
|
|
21
18
|
<div class="file" id="file_<%= content.id %>">
|
|
22
|
-
<div class="file_icon">
|
|
23
19
|
<% if content.ingredient %>
|
|
24
|
-
|
|
20
|
+
<div class="file_icon">
|
|
21
|
+
<%= render_icon(content.ingredient.icon_css_class) %>
|
|
22
|
+
</div>
|
|
25
23
|
<% else %>
|
|
26
24
|
<%= dialog_link %>
|
|
27
25
|
<% end %>
|
|
28
|
-
</div>
|
|
29
26
|
<div class="file_name">
|
|
30
27
|
<%= content.ingredient.try(:name) ||
|
|
31
28
|
("←" + Alchemy.t(:assign_file_from_archive)).html_safe %>
|
|
32
29
|
</div>
|
|
33
30
|
<div class="essence_file_tools">
|
|
34
31
|
<%= dialog_link %>
|
|
35
|
-
<%= link_to_dialog
|
|
32
|
+
<%= link_to_dialog render_icon(:edit),
|
|
36
33
|
alchemy.edit_admin_essence_file_path(
|
|
37
34
|
id: content.essence.id,
|
|
38
35
|
options: local_assigns.fetch(:options, {})
|
|
@@ -41,7 +38,6 @@
|
|
|
41
38
|
title: Alchemy.t(:edit_file_properties),
|
|
42
39
|
size: '400x215'
|
|
43
40
|
},
|
|
44
|
-
class: 'edit_file',
|
|
45
41
|
title: Alchemy.t(:edit_file_properties) %>
|
|
46
42
|
</div>
|
|
47
43
|
<%= hidden_field_tag content.form_field_name(:attachment_id),
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<%= content_tag :div, id: content.dom_id, data: {"content-id" => content.id}, class: [
|
|
2
|
-
"
|
|
2
|
+
"essence_picture",
|
|
3
3
|
options[:sortable] ? "draggable_picture" : nil,
|
|
4
4
|
options[:grouped] ? nil : "content_editor"
|
|
5
5
|
].compact.join(" ") do %>
|
|
6
|
-
<% unless options[:grouped] %><%= content_label(content)
|
|
6
|
+
<% unless options[:grouped] %><%= content_label(content) %><br/><% end %>
|
|
7
7
|
<div class="picture_thumbnail">
|
|
8
8
|
<span class="picture_tool delete">
|
|
9
9
|
<% if options[:grouped] %>
|
|
10
|
-
<%= link_to_confirm_dialog
|
|
10
|
+
<%= link_to_confirm_dialog render_icon(:minus), Alchemy.t(:confirm_to_delete_image),
|
|
11
11
|
alchemy.admin_essence_picture_path(
|
|
12
12
|
id: content,
|
|
13
13
|
options: options
|
|
14
14
|
), {title: Alchemy.t(:delete_image)} %>
|
|
15
15
|
<% else %>
|
|
16
|
-
<%= link_to
|
|
16
|
+
<%= link_to render_icon(:times), '#',
|
|
17
17
|
onclick: "return Alchemy.removePicture('##{content.form_field_id(:picture_id)}');" %>
|
|
18
18
|
<% end %>
|
|
19
19
|
</span>
|
|
@@ -21,10 +21,12 @@
|
|
|
21
21
|
<div class="picture_handle" title="<%= Alchemy.t(:drag_to_sort) if options[:sortable] %>"></div>
|
|
22
22
|
<%- end -%>
|
|
23
23
|
<div class="picture_image">
|
|
24
|
-
<div class="thumbnail_background
|
|
24
|
+
<div class="thumbnail_background">
|
|
25
25
|
<%- if content.ingredient -%>
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
<%= essence_picture_thumbnail(content, options) %>
|
|
27
|
+
<%= hidden_field_tag content.form_field_name(:picture_id), content.ingredient.id %>
|
|
28
|
+
<% else %>
|
|
29
|
+
<%= render_icon(:image, style: 'regular') %>
|
|
28
30
|
<% end %>
|
|
29
31
|
</div>
|
|
30
32
|
</div>
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
<a href="#" class="disabled"><%= render_icon('crop') %></a>
|
|
16
16
|
<%- end -%>
|
|
17
17
|
|
|
18
|
-
<%= link_to_dialog render_icon('
|
|
18
|
+
<%= link_to_dialog render_icon('file-image', style: 'regular'),
|
|
19
19
|
alchemy.admin_pictures_path(
|
|
20
20
|
element_id: content.element,
|
|
21
21
|
content_id: content.id,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<% if @page %>
|
|
2
2
|
<meta charset="utf-8">
|
|
3
|
-
<title><%= page_title prefix: local_assigns.fetch(:title_prefix, nil), separator: local_assigns.fetch(:title_separator, nil) %></title>
|
|
3
|
+
<title><%= page_title prefix: local_assigns.fetch(:title_prefix, nil), suffix: local_assigns.fetch(:title_suffix, nil), separator: local_assigns.fetch(:title_separator, nil) %></title>
|
|
4
4
|
<%= tag(:meta, name: 'created', content: @page.updated_at) %>
|
|
5
5
|
<%= tag(:meta, name: 'robots', content: meta_robots) %>
|
|
6
6
|
<%= tag(:meta, name: 'description', content: meta_description, lang: @page.language_code) if meta_description.present? %>
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
per_page: number of items to fetch per page
|
|
7
7
|
remote: data-remote
|
|
8
8
|
-%>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
<% if current_page.first? %>
|
|
10
|
+
<span class="first-page disabled"><i class="icon fas fa-angle-double-left"></i></span>
|
|
11
|
+
<% else %>
|
|
12
|
+
<%= link_to url, remote: remote, title: Alchemy.t(:first, scope: 'pagination'), class: 'first-page' do %>
|
|
13
|
+
<i class="icon fas fa-angle-double-left"></i>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% end %>
|
|
@@ -6,6 +6,10 @@
|
|
|
6
6
|
per_page: number of items to fetch per page
|
|
7
7
|
remote: data-remote
|
|
8
8
|
-%>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
<% if current_page.last? %>
|
|
10
|
+
<span class="last-page disabled"><i class="icon fas fa-angle-double-right"></i></span>
|
|
11
|
+
<% else %>
|
|
12
|
+
<%= link_to url, remote: remote, title: Alchemy.t(:last, scope: 'pagination'), class: 'last-page' do %>
|
|
13
|
+
<i class="icon fas fa-angle-double-right"></i>
|
|
14
|
+
<% end %>
|
|
15
|
+
<% end %>
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
remote: data-remote
|
|
8
8
|
-%>
|
|
9
9
|
<% if current_page.last? -%>
|
|
10
|
-
<span class="next_page disabled"
|
|
10
|
+
<span class="next_page disabled"><i class="icon fas fa-angle-right"></i></span>
|
|
11
11
|
<% else -%>
|
|
12
|
-
<%= link_to
|
|
12
|
+
<%= link_to url, rel: 'next', remote: remote, title: Alchemy.t(:next_page, scope: 'pagination'), class: 'next_page' do %>
|
|
13
|
+
<i class="icon fas fa-angle-right"></i>
|
|
14
|
+
<% end %>
|
|
13
15
|
<% end -%>
|
|
@@ -10,5 +10,5 @@
|
|
|
10
10
|
<% if page.current? -%>
|
|
11
11
|
<span class="page current"><%= page -%></span>
|
|
12
12
|
<% else -%>
|
|
13
|
-
<%= link_to page, url, opts = {remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil, class: '
|
|
13
|
+
<%= link_to page, url, opts = {remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil, class: 'page'} -%>
|
|
14
14
|
<% end -%>
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
remote: data-remote
|
|
8
8
|
-%>
|
|
9
9
|
<% if current_page.first? -%>
|
|
10
|
-
<span class="previous_page disabled"
|
|
10
|
+
<span class="previous_page disabled"><i class="icon fas fa-angle-left"></i></span>
|
|
11
11
|
<% else -%>
|
|
12
|
-
<%= link_to
|
|
12
|
+
<%= link_to url, rel: 'prev', remote: remote, class: 'previous_page', title: Alchemy.t(:previous_page, scope: 'pagination') do %>
|
|
13
|
+
<i class="icon fas fa-angle-left"></i>
|
|
14
|
+
<% end %>
|
|
13
15
|
<% end -%>
|
|
@@ -54,17 +54,17 @@
|
|
|
54
54
|
<% end %>
|
|
55
55
|
<%= yield(:alchemy_main_navigation) %>
|
|
56
56
|
</div>
|
|
57
|
-
<div id="logout">
|
|
57
|
+
<div id="logout" class="main_navi_entry">
|
|
58
58
|
<% if current_alchemy_user %>
|
|
59
59
|
<%= link_to_dialog(
|
|
60
|
-
"#{render_icon('
|
|
60
|
+
"#{render_icon('sign-out-alt', size: 'lg', class: 'module')}<label>#{Alchemy.t(:leave)}</label>".html_safe,
|
|
61
61
|
alchemy.leave_admin_path, {
|
|
62
62
|
size: "300x155",
|
|
63
63
|
title: Alchemy.t("Leave Alchemy")
|
|
64
64
|
}, {'data-alchemy-hotkey' => 'alt+q'}) %>
|
|
65
65
|
<% else %>
|
|
66
66
|
<%= link_to(alchemy.root_path) do %>
|
|
67
|
-
<
|
|
67
|
+
<i class="icon fas fa-sign-out-alt fa-fw fa-lg"></i>
|
|
68
68
|
<label><%= Alchemy.t(:leave) %></label>
|
|
69
69
|
<% end %>
|
|
70
70
|
<% end %>
|
|
@@ -80,9 +80,11 @@
|
|
|
80
80
|
<% end %>
|
|
81
81
|
<div id="user_info">
|
|
82
82
|
<%= current_alchemy_user_name %>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
<% if Alchemy::I18n.available_locales.length > 1 %>
|
|
84
|
+
<%= select_tag 'change_locale',
|
|
85
|
+
options_for_select(translations_for_select, ::I18n.locale),
|
|
86
|
+
class: 'alchemy_selectbox tiny' %>
|
|
87
|
+
<% end %>
|
|
86
88
|
</div>
|
|
87
89
|
</div>
|
|
88
90
|
<div id="toolbar">
|
data/bin/rails
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
|
|
3
3
|
|
|
4
|
-
ENGINE_ROOT = File.expand_path('
|
|
5
|
-
ENGINE_PATH = File.expand_path('
|
|
4
|
+
ENGINE_ROOT = File.expand_path('..', __dir__)
|
|
5
|
+
ENGINE_PATH = File.expand_path('../lib/alchemy/engine', __dir__)
|
|
6
6
|
|
|
7
7
|
require 'rails/all'
|
|
8
8
|
require 'rails/engine/commands'
|
data/bin/rspec
CHANGED
data/config/alchemy/config.yml
CHANGED
data/config/alchemy/modules.yml
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
name: 'modules.dashboard'
|
|
8
8
|
controller: 'alchemy/admin/dashboard'
|
|
9
9
|
action: index
|
|
10
|
-
|
|
10
|
+
inline_image: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-4 -6 32 32" class="svg-inline--fa fa-lg fa-fw"><path fill="currentColor" d="M15.7 7.9L9.9 2.2 2.1 4.3 0 12.1l5.7 5.8 7.8-2.1 2.2-7.9zm-5.3 10.3l-1.2 4.4 3.2 3.2 4.4-1.2 1.2-4.4-3.2-3.2-4.4 1.2zM23.5 7.3L17.2 9l-1.7 6.2 4.5 4.6 6.2-1.7 1.7-6.2-4.4-4.6z"/></svg>'
|
|
11
11
|
|
|
12
12
|
- name: pages
|
|
13
13
|
engine_name: alchemy
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
name: 'modules.pages'
|
|
17
17
|
controller: 'alchemy/admin/pages'
|
|
18
18
|
action: index
|
|
19
|
-
icon:
|
|
19
|
+
icon: file-alt
|
|
20
20
|
sub_navigation:
|
|
21
21
|
- name: 'modules.pages'
|
|
22
22
|
controller: 'alchemy/admin/pages'
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
name: 'modules.languages'
|
|
36
36
|
controller: 'alchemy/admin/languages'
|
|
37
37
|
action: index
|
|
38
|
-
icon:
|
|
38
|
+
icon: flag
|
|
39
39
|
|
|
40
40
|
- name: sites
|
|
41
41
|
engine_name: alchemy
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
name: 'modules.sites'
|
|
45
45
|
controller: 'alchemy/admin/sites'
|
|
46
46
|
action: index
|
|
47
|
-
icon:
|
|
47
|
+
icon: bullseye
|
|
48
48
|
|
|
49
49
|
- name: tags
|
|
50
50
|
engine_name: alchemy
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
controller: 'alchemy/admin/pictures'
|
|
63
63
|
action: index
|
|
64
64
|
name: 'modules.library'
|
|
65
|
-
icon:
|
|
65
|
+
icon: archive
|
|
66
66
|
sub_navigation:
|
|
67
67
|
- name: 'modules.pictures'
|
|
68
68
|
controller: 'alchemy/admin/pictures'
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
#
|
|
3
|
+
# Uncomment this and change the path if necessary to include your own
|
|
4
|
+
# components.
|
|
5
|
+
# See https://github.com/plataformatec/simple_form#custom-components to know
|
|
6
|
+
# more about custom components.
|
|
7
|
+
# Dir[Rails.root.join('lib/components/**/*.rb')].each { |f| require f }
|
|
8
|
+
#
|
|
1
9
|
# Use this setup block to configure all options available in SimpleForm.
|
|
2
10
|
SimpleForm.setup do |config|
|
|
3
11
|
# Wrappers are used by the form builder to generate a
|
|
@@ -6,9 +14,10 @@ SimpleForm.setup do |config|
|
|
|
6
14
|
# stack. The options given below are used to wrap the
|
|
7
15
|
# whole input.
|
|
8
16
|
config.wrappers :alchemy,
|
|
9
|
-
class:
|
|
10
|
-
hint_class:
|
|
11
|
-
error_class:
|
|
17
|
+
class: :input,
|
|
18
|
+
hint_class: :field_with_hint,
|
|
19
|
+
error_class: :field_with_errors,
|
|
20
|
+
valid_class: :field_without_errors do |b|
|
|
12
21
|
## Extensions enabled by default
|
|
13
22
|
# Any of these extensions can be disabled for a
|
|
14
23
|
# given input by passing: `f.input EXTENSION_NAME => false`.
|
|
@@ -24,14 +33,18 @@ SimpleForm.setup do |config|
|
|
|
24
33
|
b.use :placeholder
|
|
25
34
|
|
|
26
35
|
## Optional extensions
|
|
27
|
-
# They are disabled unless you pass `f.input EXTENSION_NAME =>
|
|
36
|
+
# They are disabled unless you pass `f.input EXTENSION_NAME => true`
|
|
28
37
|
# to the input. If so, they will retrieve the values from the model
|
|
29
|
-
# if any exists. If you want to enable
|
|
38
|
+
# if any exists. If you want to enable any of those
|
|
30
39
|
# extensions by default, you can change `b.optional` to `b.use`.
|
|
31
40
|
|
|
32
41
|
# Calculates maxlength from length validations for string inputs
|
|
42
|
+
# and/or database column lengths
|
|
33
43
|
b.optional :maxlength
|
|
34
44
|
|
|
45
|
+
# Calculate minlength from length validations for string inputs
|
|
46
|
+
b.optional :minlength
|
|
47
|
+
|
|
35
48
|
# Calculates pattern from format validations for string inputs
|
|
36
49
|
b.optional :pattern
|
|
37
50
|
|
|
@@ -42,9 +55,16 @@ SimpleForm.setup do |config|
|
|
|
42
55
|
b.optional :readonly
|
|
43
56
|
|
|
44
57
|
## Inputs
|
|
58
|
+
# b.use :input, class: 'input', error_class: 'is-invalid'
|
|
45
59
|
b.use :label_input
|
|
46
60
|
b.use :error, wrap_with: { tag: :small, class: :error }
|
|
47
61
|
b.use :hint, wrap_with: { tag: :small, class: :hint }
|
|
62
|
+
|
|
63
|
+
## full_messages_for
|
|
64
|
+
# If you want to display the full error message for the attribute, you can
|
|
65
|
+
# use the component :full_error, like:
|
|
66
|
+
#
|
|
67
|
+
# b.use :full_error, wrap_with: { tag: :span, class: :error }
|
|
48
68
|
end
|
|
49
69
|
|
|
50
70
|
# The default wrapper to be used by the FormBuilder.
|
|
@@ -86,8 +106,7 @@ SimpleForm.setup do |config|
|
|
|
86
106
|
config.collection_wrapper_class = 'control_group'
|
|
87
107
|
|
|
88
108
|
# You can wrap each item in a collection of radio/check boxes with a tag,
|
|
89
|
-
# defaulting to :span.
|
|
90
|
-
# SimpleForm will force this option to be a label.
|
|
109
|
+
# defaulting to :span.
|
|
91
110
|
# config.item_wrapper_tag = :span
|
|
92
111
|
|
|
93
112
|
# You can define a class to use in all item wrappers. Defaulting to none.
|
|
@@ -99,7 +118,8 @@ SimpleForm.setup do |config|
|
|
|
99
118
|
# You can define the class to use on all labels. Default is nil.
|
|
100
119
|
config.label_class = 'control-label'
|
|
101
120
|
|
|
102
|
-
# You can define the class to
|
|
121
|
+
# You can define the default class to be used on forms. Can be overriden
|
|
122
|
+
# with `html: { :class }`. Defaulting to none.
|
|
103
123
|
# config.default_form_class = nil
|
|
104
124
|
|
|
105
125
|
# You can define which elements should obtain additional classes
|
|
@@ -127,6 +147,10 @@ SimpleForm.setup do |config|
|
|
|
127
147
|
# type as key and the wrapper that will be used for all inputs with specified type.
|
|
128
148
|
# config.wrapper_mappings = { string: :prepend }
|
|
129
149
|
|
|
150
|
+
# Namespaces where SimpleForm should look for custom input classes that
|
|
151
|
+
# override default inputs.
|
|
152
|
+
# config.custom_inputs_namespaces << "CustomInputs"
|
|
153
|
+
|
|
130
154
|
# Default priority for time_zone inputs.
|
|
131
155
|
# config.time_zone_priority = nil
|
|
132
156
|
|
|
@@ -141,4 +165,17 @@ SimpleForm.setup do |config|
|
|
|
141
165
|
|
|
142
166
|
# Cache SimpleForm inputs discovery
|
|
143
167
|
# config.cache_discovery = !Rails.env.development?
|
|
168
|
+
|
|
169
|
+
# Default class for inputs
|
|
170
|
+
# config.input_class = nil
|
|
171
|
+
|
|
172
|
+
# Define the default class of the input wrapper of the boolean input.
|
|
173
|
+
config.boolean_label_class = 'checkbox'
|
|
174
|
+
|
|
175
|
+
# Defines if the default input wrapper class should be included in radio
|
|
176
|
+
# collection wrappers.
|
|
177
|
+
# config.include_default_input_wrapper_class = true
|
|
178
|
+
|
|
179
|
+
# Defines which i18n scope will be used in Simple Form.
|
|
180
|
+
config.i18n_scope = 'alchemy.forms'
|
|
144
181
|
end
|