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,92 +1,80 @@
|
|
|
1
|
-
#= require alchemy/alchemy.jquery_loader
|
|
2
|
-
#= require alchemy/alchemy.browser
|
|
3
1
|
#= require alchemy/alchemy.i18n
|
|
4
2
|
|
|
5
|
-
window.Alchemy =
|
|
3
|
+
window.Alchemy = Alchemy || {}
|
|
6
4
|
|
|
7
|
-
Alchemy.initAlchemyPreviewMode =
|
|
8
|
-
|
|
9
|
-
# Setting jQueryUIs global animation duration
|
|
10
|
-
$.fx.speeds._default = 400
|
|
5
|
+
Alchemy.initAlchemyPreviewMode = ->
|
|
11
6
|
|
|
12
7
|
# The Alchemy JavaScript Object contains all Functions
|
|
13
|
-
|
|
8
|
+
Object.assign Alchemy,
|
|
14
9
|
|
|
15
10
|
ElementSelector:
|
|
16
11
|
|
|
17
|
-
# defaults
|
|
18
|
-
scrollOffset: 20
|
|
19
|
-
|
|
20
12
|
styles:
|
|
21
13
|
reset:
|
|
22
14
|
outline: ""
|
|
23
15
|
"outline-offset": ""
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
outline: "
|
|
16
|
+
cursor: ""
|
|
17
|
+
hover:
|
|
18
|
+
outline: "2px dashed #f0b437"
|
|
27
19
|
"outline-offset": "4px"
|
|
28
20
|
cursor: "pointer"
|
|
29
|
-
|
|
30
|
-
outline: "
|
|
31
|
-
moz_hover:
|
|
32
|
-
"-moz-outline-radius": "3px"
|
|
33
|
-
default_selected:
|
|
34
|
-
outline: "3px solid #90B9D0"
|
|
21
|
+
selected:
|
|
22
|
+
outline: "2px dashed #90b9d0"
|
|
35
23
|
"outline-offset": "4px"
|
|
36
|
-
webkit_selected:
|
|
37
|
-
outline: "4px auto #90B9D0"
|
|
38
|
-
moz_selected:
|
|
39
|
-
"-moz-outline-radius": "3px"
|
|
40
24
|
|
|
41
25
|
init: ->
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
# Focus the element editor
|
|
69
|
-
@focusElementEditor($el)
|
|
26
|
+
window.addEventListener "message", (message) =>
|
|
27
|
+
if message.data == "blurAlchemyElements"
|
|
28
|
+
@blurElements()
|
|
29
|
+
, false
|
|
30
|
+
@elements = document.querySelectorAll("[data-alchemy-element]")
|
|
31
|
+
@elements.forEach (element) =>
|
|
32
|
+
element.addEventListener 'mouseover', =>
|
|
33
|
+
element.setAttribute('title', Alchemy.t('click_to_edit'))
|
|
34
|
+
unless element.classList.contains('selected')
|
|
35
|
+
Object.assign element.style, @getStyle('hover')
|
|
36
|
+
return
|
|
37
|
+
element.addEventListener 'mouseout', =>
|
|
38
|
+
element.removeAttribute('title')
|
|
39
|
+
unless element.classList.contains('selected')
|
|
40
|
+
Object.assign element.style, @getStyle('reset')
|
|
41
|
+
return
|
|
42
|
+
element.addEventListener 'SelectPreviewElement.Alchemy', =>
|
|
43
|
+
@selectElement(element)
|
|
44
|
+
return
|
|
45
|
+
, false
|
|
46
|
+
element.addEventListener 'click', (e) =>
|
|
47
|
+
e.stopPropagation()
|
|
48
|
+
e.preventDefault()
|
|
49
|
+
@selectElement(element)
|
|
50
|
+
@focusElementEditor(element)
|
|
51
|
+
return
|
|
70
52
|
return
|
|
71
53
|
return
|
|
72
54
|
|
|
73
55
|
# Mark element in preview frame as selected and scrolls to it.
|
|
74
|
-
selectElement: (
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
56
|
+
selectElement: (element) ->
|
|
57
|
+
@blurElements()
|
|
58
|
+
element.classList.add('selected')
|
|
59
|
+
Object.assign element.style, @getStyle('selected')
|
|
60
|
+
element.scrollIntoView
|
|
61
|
+
behavior: 'smooth'
|
|
62
|
+
block: 'start'
|
|
63
|
+
return
|
|
64
|
+
|
|
65
|
+
# Blur all elements in preview frame.
|
|
66
|
+
blurElements: ->
|
|
67
|
+
@elements.forEach (element) =>
|
|
68
|
+
element.classList.remove('selected')
|
|
69
|
+
Object.assign element.style, @getStyle('reset')
|
|
70
|
+
return
|
|
82
71
|
return
|
|
83
72
|
|
|
84
73
|
# Focus the element editor in the Alchemy element window.
|
|
85
|
-
focusElementEditor: (
|
|
74
|
+
focusElementEditor: (element) ->
|
|
86
75
|
alchemy_window = window.parent
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
$element_editor = alchemy_$("#element_#{target_id}")
|
|
76
|
+
target_id = element.getAttribute('data-alchemy-element')
|
|
77
|
+
$element_editor = alchemy_window.$("#element_#{target_id}")
|
|
90
78
|
elements_window = alchemy_window.Alchemy.ElementsWindow
|
|
91
79
|
$element_editor.trigger("FocusElementEditor.Alchemy", target_id)
|
|
92
80
|
elements_window.show() if elements_window.hidden
|
|
@@ -96,17 +84,8 @@ Alchemy.initAlchemyPreviewMode = ($) ->
|
|
|
96
84
|
if state == "reset"
|
|
97
85
|
@styles["reset"]
|
|
98
86
|
else
|
|
99
|
-
|
|
100
|
-
browser = "webkit" if Alchemy.Browser.isWebKit
|
|
101
|
-
browser = "moz" if Alchemy.Browser.isFirefox
|
|
102
|
-
if browser
|
|
103
|
-
$.extend(default_state_style, @styles["#{browser}_#{state}"])
|
|
104
|
-
else
|
|
105
|
-
default_state_style
|
|
87
|
+
@styles[state]
|
|
106
88
|
|
|
107
89
|
Alchemy.ElementSelector.init()
|
|
108
90
|
|
|
109
|
-
|
|
110
|
-
Alchemy.loadjQuery(Alchemy.initAlchemyPreviewMode)
|
|
111
|
-
else
|
|
112
|
-
Alchemy.initAlchemyPreviewMode(jQuery)
|
|
91
|
+
Alchemy.initAlchemyPreviewMode()
|
|
@@ -13,16 +13,12 @@ Alchemy.PreviewWindow =
|
|
|
13
13
|
$('body').append($iframe)
|
|
14
14
|
@currentWindow = $iframe
|
|
15
15
|
@_bindReloadButton()
|
|
16
|
-
@resize()
|
|
17
16
|
|
|
18
|
-
resize: ->
|
|
19
|
-
width = @_calculateWidth()
|
|
20
|
-
height = $(window).height() - @HEIGHT
|
|
17
|
+
resize: (width) ->
|
|
21
18
|
width = @MIN_WIDTH if width < @MIN_WIDTH
|
|
22
19
|
@currentWidth = width
|
|
23
20
|
@currentWindow.css
|
|
24
21
|
width: width
|
|
25
|
-
height: height
|
|
26
22
|
|
|
27
23
|
refresh: (callback) ->
|
|
28
24
|
$iframe = $('#alchemy_preview_window')
|
|
@@ -43,20 +39,15 @@ Alchemy.PreviewWindow =
|
|
|
43
39
|
|
|
44
40
|
_hideSpinner: ->
|
|
45
41
|
@spinner.stop()
|
|
46
|
-
@reload.html('<
|
|
42
|
+
@reload.html('<i class="icon fas fa-redo fa-fw"></i>')
|
|
47
43
|
|
|
48
44
|
_bindReloadButton: ->
|
|
49
45
|
$reload = $('#reload_preview_button')
|
|
50
46
|
key 'alt+r', =>
|
|
51
47
|
@refresh()
|
|
52
|
-
$reload.click =>
|
|
48
|
+
$reload.click (e) =>
|
|
49
|
+
e.preventDefault()
|
|
53
50
|
@refresh()
|
|
54
51
|
|
|
55
|
-
_calculateWidth: ->
|
|
56
|
-
width = $(window).width() - $('#left_menu').width()
|
|
57
|
-
unless Alchemy.ElementsWindow.hidden
|
|
58
|
-
width -= $('#alchemy_elements_window').width()
|
|
59
|
-
return width
|
|
60
|
-
|
|
61
52
|
Alchemy.reloadPreview = ->
|
|
62
53
|
Alchemy.PreviewWindow.refresh()
|
|
@@ -63,12 +63,18 @@ $.extend Alchemy.Tinymce,
|
|
|
63
63
|
|
|
64
64
|
# Gets called after an editor instance gets intialized
|
|
65
65
|
#
|
|
66
|
-
initInstanceCallback: (
|
|
67
|
-
$this = $("##{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
Alchemy.setElementDirty(
|
|
66
|
+
initInstanceCallback: (editor) ->
|
|
67
|
+
$this = $("##{editor.id}")
|
|
68
|
+
element = $this.closest('.element-editor')
|
|
69
|
+
element.find('.spinner').remove()
|
|
70
|
+
editor.on 'dirty', ->
|
|
71
|
+
Alchemy.setElementDirty(element)
|
|
72
|
+
return
|
|
73
|
+
editor.on 'click', (event) ->
|
|
74
|
+
event.target = element[0]
|
|
75
|
+
Alchemy.ElementEditors.onClickElement(event)
|
|
76
|
+
return
|
|
77
|
+
return
|
|
72
78
|
|
|
73
79
|
# Removes the TinyMCE editor from given dom ids.
|
|
74
80
|
#
|
|
@@ -3,34 +3,6 @@ window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
|
|
|
3
3
|
# Holds translations for javascripts
|
|
4
4
|
#
|
|
5
5
|
Alchemy.translations =
|
|
6
|
-
|
|
7
|
-
# German
|
|
8
|
-
de:
|
|
9
|
-
allowed_chars: 'von %{count} Zeichen'
|
|
10
|
-
cancel: 'Abbrechen'
|
|
11
|
-
cancelled: 'Abgebrochen'
|
|
12
|
-
click_to_edit: 'Klicken zum Bearbeiten'
|
|
13
|
-
complete: 'Abgeschlossen'
|
|
14
|
-
element_dirty_notice: 'Dieses Element hat nicht gespeicherte Änderungen. Möchten Sie es wirklich einklappen?'
|
|
15
|
-
help: 'Hilfe'
|
|
16
|
-
ok: 'Ok'
|
|
17
|
-
page_dirty_notice: 'Sie haben ungesicherte Änderungen auf der Seite. Diese gehen verloren, wenn Sie fortfahren.'
|
|
18
|
-
page_found: 'Seite gefunden'
|
|
19
|
-
pages_found: 'Seiten gefunden'
|
|
20
|
-
url_validation_failed: 'Die URL hat kein gültiges Format.'
|
|
21
|
-
warning: 'Achtung!'
|
|
22
|
-
'File is too large': 'Datei ist zu groß.'
|
|
23
|
-
'File is too small': 'Datei ist zu klein.'
|
|
24
|
-
'File type not allowed': 'Dateityp nicht erlaubt.'
|
|
25
|
-
'Maximum number of files exceeded': 'Maximale Anzahl gleichzeitig erlaubter Datei-Uploads erreicht.'
|
|
26
|
-
'Uploaded bytes exceed file size': 'Maximale Größe der erlaubten Dateigröße erreicht.'
|
|
27
|
-
formats:
|
|
28
|
-
datetime: "d.m.Y H:i"
|
|
29
|
-
date: "d.m.Y"
|
|
30
|
-
time: "H:i"
|
|
31
|
-
start_of_week: 1
|
|
32
|
-
|
|
33
|
-
# English
|
|
34
6
|
en:
|
|
35
7
|
allowed_chars: 'of %{count} chars'
|
|
36
8
|
cancel: 'Cancel'
|
|
@@ -55,133 +27,3 @@ Alchemy.translations =
|
|
|
55
27
|
date: "Y-m-d"
|
|
56
28
|
time: "H:i"
|
|
57
29
|
start_of_week: 0
|
|
58
|
-
|
|
59
|
-
# Dutch
|
|
60
|
-
nl:
|
|
61
|
-
allowed_chars: 'of %{count} chars'
|
|
62
|
-
cancel: 'Annuleren'
|
|
63
|
-
cancelled: 'Afgebroken'
|
|
64
|
-
click_to_edit: 'klik om aan te passen'
|
|
65
|
-
complete: 'Klaar'
|
|
66
|
-
element_dirty_notice: 'Dit element bevat niet opgeslagen wijzigingen. Wilt u dit echt inklappen?'
|
|
67
|
-
help: 'Hulp'
|
|
68
|
-
ok: 'Ok'
|
|
69
|
-
page_found: 'Page found'
|
|
70
|
-
pages_found: 'Pages found'
|
|
71
|
-
page_dirty_notice: 'Er zijn wijzigingen op deze pagina aangebracht. Deze gaan verloren als u doorgaat.'
|
|
72
|
-
url_validation_failed: 'De url heeft geen geldig formaat.'
|
|
73
|
-
warning: 'Waarschuwing!'
|
|
74
|
-
'File is too large': 'File is too large'
|
|
75
|
-
'File is too small': 'File is too small'
|
|
76
|
-
'File type not allowed': 'File type not allowed'
|
|
77
|
-
'Maximum number of files exceeded': 'Uploadlimiet bereikt.'
|
|
78
|
-
'Uploaded bytes exceed file size': 'Uploaded bytes exceed file size'
|
|
79
|
-
formats:
|
|
80
|
-
datetime: "Y-m-d H:i"
|
|
81
|
-
date: "Y-m-d"
|
|
82
|
-
time: "H:i"
|
|
83
|
-
start_of_week: 1
|
|
84
|
-
|
|
85
|
-
# French
|
|
86
|
-
fr:
|
|
87
|
-
allowed_chars: 'von %{count} signes'
|
|
88
|
-
cancel: 'abandonner'
|
|
89
|
-
cancelled: 'annulé'
|
|
90
|
-
click_to_edit: 'Cliquez pour modifier'
|
|
91
|
-
complete: 'terminé'
|
|
92
|
-
element_dirty_notice: 'Cet élément a des modifications non enregistrées. Souhaitez-vous vraiment plier?'
|
|
93
|
-
help: 'Aide'
|
|
94
|
-
ok: 'Ok'
|
|
95
|
-
page_dirty_notice: 'Vous avez des modifications non enregistrées sur la page. Ce sera perdue si vous continuez.'
|
|
96
|
-
page_found: 'page trouvée'
|
|
97
|
-
pages_found: 'pages trouvées'
|
|
98
|
-
url_validation_failed: "L'URL n'est pas correctement formatée."
|
|
99
|
-
warning: 'Attention!'
|
|
100
|
-
'File is too large': 'Le fichier est trop grand.'
|
|
101
|
-
'File is too small': 'Le fichier est trop petit.'
|
|
102
|
-
'File type not allowed': 'Type de document non autorisé.'
|
|
103
|
-
'Maximum number of files exceeded': 'Le nombre maximum de fichiers est atteint.'
|
|
104
|
-
'Uploaded bytes exceed file size': 'Taille de fichier maximale autorisée atteint.'
|
|
105
|
-
formats:
|
|
106
|
-
datetime: "d.m.Y H:i"
|
|
107
|
-
date: "d.m.Y"
|
|
108
|
-
time: "H:i"
|
|
109
|
-
start_of_week: 1
|
|
110
|
-
|
|
111
|
-
# Russian
|
|
112
|
-
ru:
|
|
113
|
-
allowed_chars: '%{count} знаков'
|
|
114
|
-
cancel: 'Отмена'
|
|
115
|
-
cancelled: 'Отменено'
|
|
116
|
-
click_to_edit: 'нажмите, чтобы редактировать'
|
|
117
|
-
complete: 'Завершено'
|
|
118
|
-
element_dirty_notice: 'Для этого элемента есть несохраненные изменения. Вы действительно хотите их сбросить?'
|
|
119
|
-
help: 'Помощь'
|
|
120
|
-
ok: 'Ок'
|
|
121
|
-
page_dirty_notice: 'На странице есть несохраненные изменения. Если вы продолжите, то они пропадут.'
|
|
122
|
-
page_found: 'Страница найдена'
|
|
123
|
-
pages_found: 'Страницы найдены'
|
|
124
|
-
url_validation_failed: 'Адрес (URL) имеет неверный формат.'
|
|
125
|
-
warning: 'Внимание!'
|
|
126
|
-
'File is too large': 'Файл слишком большой'
|
|
127
|
-
'File is too small': 'Файл слишком маленький'
|
|
128
|
-
'File type not allowed': 'Этот тип файла не разрешен'
|
|
129
|
-
'Maximum number of files exceeded': 'Исчерпано максимальное количество файлов.'
|
|
130
|
-
'Uploaded bytes exceed file size': 'Превышен максимальный размер файла'
|
|
131
|
-
formats:
|
|
132
|
-
datetime: "d.m.Y H:i"
|
|
133
|
-
date: "d.m.Y"
|
|
134
|
-
time: "H:i"
|
|
135
|
-
start_of_week: 1
|
|
136
|
-
|
|
137
|
-
# Spanish
|
|
138
|
-
es:
|
|
139
|
-
allowed_chars: 'de %{count} caracteres'
|
|
140
|
-
cancel: 'Cancelar'
|
|
141
|
-
cancelled: 'Cancelado'
|
|
142
|
-
click_to_edit: 'Pulsar para editar'
|
|
143
|
-
complete: 'Completado'
|
|
144
|
-
element_dirty_notice: 'Este elemento tiene cambios sin guardar. ¿Realmente quieres plegarlo?'
|
|
145
|
-
help: 'Ayuda'
|
|
146
|
-
ok: 'Aceptar'
|
|
147
|
-
page_dirty_notice: 'Tienes cambios sin guardar en esta página. Si continúas se perderán.'
|
|
148
|
-
page_found: 'Página encontrada'
|
|
149
|
-
pages_found: 'Páginas encontradas'
|
|
150
|
-
url_validation_failed: 'La url no tiene un formato válido.'
|
|
151
|
-
warning: '¡Atención!'
|
|
152
|
-
'File is too large': 'El archivo es demasiado grande'
|
|
153
|
-
'File is too small': 'El archivo es demasiado pequeño'
|
|
154
|
-
'File type not allowed': 'El tipo de archivo no está permitido'
|
|
155
|
-
'Maximum number of files exceeded': 'Número máximo de archivos excedido.'
|
|
156
|
-
'Uploaded bytes exceed file size': 'Los bytes subidos exceden el tamaño del archivo'
|
|
157
|
-
formats:
|
|
158
|
-
datetime: "d/m/Y H:i"
|
|
159
|
-
date: "d/m/Y"
|
|
160
|
-
time: "H:i"
|
|
161
|
-
start_of_week: 1
|
|
162
|
-
|
|
163
|
-
# Italian
|
|
164
|
-
it:
|
|
165
|
-
allowed_chars: 'di %{count} caratteri'
|
|
166
|
-
cancel: 'Annulla'
|
|
167
|
-
cancelled: 'Annullato'
|
|
168
|
-
click_to_edit: 'clicca per modificare'
|
|
169
|
-
complete: 'Completato'
|
|
170
|
-
element_dirty_notice: 'Questo elemento contiene delle modifiche non salvate. Vuoi veramenter chiuderlo?'
|
|
171
|
-
help: 'Aiuto'
|
|
172
|
-
ok: 'Ok'
|
|
173
|
-
page_dirty_notice: 'Su questa pagina hai delle modifiche non salvate. Verranno perse se decidi di continuare.'
|
|
174
|
-
page_found: 'Pagina trovata'
|
|
175
|
-
pages_found: 'Pagine trovate'
|
|
176
|
-
url_validation_failed: 'Formato URL non valido.'
|
|
177
|
-
warning: 'Attenzione!'
|
|
178
|
-
'File is too large': 'Il file è troppo grande'
|
|
179
|
-
'File is too small': 'Il file è troppo piccolo'
|
|
180
|
-
'File type not allowed': 'Tipo di file non consentito'
|
|
181
|
-
'Maximum number of files exceeded': 'Numero massimo di file raggiunto.'
|
|
182
|
-
'Uploaded bytes exceed file size': 'Il numero di byte caricati eccede la dimensione del file'
|
|
183
|
-
formats:
|
|
184
|
-
datetime: "Y-m-d H:i"
|
|
185
|
-
date: "Y-m-d"
|
|
186
|
-
time: "H:i"
|
|
187
|
-
start_of_week: 1
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
%rounded-border {
|
|
2
|
-
border-radius: $default-border-radius;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
1
|
%text-overflow {
|
|
6
2
|
white-space: nowrap;
|
|
7
3
|
overflow: hidden;
|
|
@@ -33,20 +29,19 @@
|
|
|
33
29
|
}
|
|
34
30
|
|
|
35
31
|
%default-input-style {
|
|
36
|
-
|
|
37
|
-
box-shadow:
|
|
32
|
+
border-radius: $default-border-radius;
|
|
33
|
+
box-shadow: $form-field-box-shadow;
|
|
38
34
|
font: $default-font-style;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
border-
|
|
44
|
-
border-
|
|
45
|
-
border-
|
|
35
|
+
color: $form-field-text-color;
|
|
36
|
+
padding: $form-field-padding;
|
|
37
|
+
margin: $form-field-margin;
|
|
38
|
+
background: $form-field-background-color;
|
|
39
|
+
border-width: $form-field-border-width;
|
|
40
|
+
border-style: $form-field-border-style;
|
|
41
|
+
border-color: $form-field-border-color;
|
|
46
42
|
width: 100%;
|
|
47
|
-
font-size:
|
|
48
|
-
line-height:
|
|
49
|
-
height: $default-form-field-height;
|
|
43
|
+
font-size: $form-field-font-size;
|
|
44
|
+
line-height: $form-field-line-height;
|
|
50
45
|
transition-property: box-shadow, background-color, border;
|
|
51
46
|
transition-duration: 0.25s;
|
|
52
47
|
transition-timing-function: ease-in-out;
|
|
@@ -56,8 +51,8 @@
|
|
|
56
51
|
}
|
|
57
52
|
|
|
58
53
|
&[disabled], .disabled {
|
|
59
|
-
color:
|
|
60
|
-
background-color:
|
|
54
|
+
color: $form-field-disabled-text-color;
|
|
55
|
+
background-color: $form-field-disabled-bg-color;
|
|
61
56
|
cursor: not-allowed;
|
|
62
57
|
}
|
|
63
58
|
}
|