alchemy_cms 7.1.11 → 7.2.0.b
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +132 -24
- data/Gemfile +2 -4
- data/LICENSE +1 -1
- data/README.md +5 -6
- data/SECURITY.md +1 -1
- data/alchemy_cms.gemspec +3 -4
- data/app/assets/javascripts/alchemy/admin.js +0 -9
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +5 -15
- data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +5 -4
- data/app/assets/javascripts/alchemy/templates/index.js +0 -1
- data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
- data/app/assets/javascripts/alchemy/templates/page_folder.hbs +1 -1
- data/app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js +20 -7
- data/app/assets/stylesheets/alchemy/_custom-properties.scss +12 -0
- data/app/assets/stylesheets/alchemy/_mixins.scss +10 -6
- data/app/assets/stylesheets/alchemy/_variables.scss +3 -0
- data/app/assets/stylesheets/alchemy/admin.scss +2 -2
- data/app/assets/stylesheets/alchemy/archive.scss +4 -3
- data/app/assets/stylesheets/alchemy/attachment-select.scss +19 -0
- data/app/assets/stylesheets/alchemy/base.scss +31 -18
- data/app/assets/stylesheets/alchemy/buttons.scss +3 -4
- data/app/assets/stylesheets/alchemy/dashboard.scss +1 -1
- data/app/assets/stylesheets/alchemy/dialogs.scss +2 -5
- data/app/assets/stylesheets/alchemy/elements.scss +73 -41
- data/app/assets/stylesheets/alchemy/flash.scss +20 -70
- data/app/assets/stylesheets/alchemy/forms.scss +41 -36
- data/app/assets/stylesheets/alchemy/frame.scss +12 -3
- data/app/assets/stylesheets/alchemy/icons.scss +34 -2
- data/app/assets/stylesheets/alchemy/image_library.scss +18 -9
- data/app/assets/stylesheets/alchemy/{filter_field.scss → list_filter.scss} +8 -7
- data/app/assets/stylesheets/alchemy/lists.scss +1 -1
- data/app/assets/stylesheets/alchemy/navigation.scss +9 -12
- data/app/assets/stylesheets/alchemy/node-select.scss +1 -1
- data/app/assets/stylesheets/alchemy/nodes.scss +15 -13
- data/app/assets/stylesheets/alchemy/notices.scss +56 -39
- data/app/assets/stylesheets/alchemy/page-select.scss +1 -4
- data/app/assets/stylesheets/alchemy/pagination.scss +11 -1
- data/app/assets/stylesheets/alchemy/preview_window.scss +3 -3
- data/app/assets/stylesheets/alchemy/search.scss +4 -4
- data/app/assets/stylesheets/alchemy/selects.scss +13 -7
- data/app/assets/stylesheets/alchemy/shoelace.scss +33 -2
- data/app/assets/stylesheets/alchemy/sitemap.scss +155 -159
- data/app/assets/stylesheets/alchemy/tables.scss +49 -12
- data/app/assets/stylesheets/alchemy/tags.scss +17 -11
- data/app/assets/stylesheets/alchemy/toolbar.scss +2 -2
- data/app/assets/stylesheets/alchemy/typography.scss +41 -22
- data/app/assets/stylesheets/alchemy/upload.scss +5 -4
- data/app/components/alchemy/admin/attachment_select.rb +39 -0
- data/app/components/alchemy/admin/icon.rb +72 -0
- data/app/components/alchemy/admin/link_dialog/anchor_tab.rb +41 -0
- data/app/components/alchemy/admin/link_dialog/base_tab.rb +75 -0
- data/app/components/alchemy/admin/link_dialog/external_tab.rb +42 -0
- data/app/components/alchemy/admin/link_dialog/file_tab.rb +45 -0
- data/app/components/alchemy/admin/link_dialog/internal_tab.rb +66 -0
- data/app/components/alchemy/admin/link_dialog/tabs.rb +33 -0
- data/app/components/alchemy/admin/list_filter.rb +42 -0
- data/app/components/alchemy/admin/message.rb +19 -0
- data/app/components/alchemy/admin/tags_autocomplete.rb +25 -0
- data/app/components/alchemy/admin/toolbar_button.rb +111 -0
- data/app/components/alchemy/ingredients/link_view.rb +1 -7
- data/app/components/alchemy/ingredients/picture_view.rb +2 -2
- data/app/components/alchemy/ingredients/text_view.rb +1 -2
- data/app/controllers/alchemy/admin/base_controller.rb +1 -1
- data/app/controllers/alchemy/admin/elements_controller.rb +4 -2
- data/app/controllers/alchemy/admin/ingredients_controller.rb +2 -0
- data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
- data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -19
- data/app/controllers/alchemy/admin/legacy_page_urls_controller.rb +12 -4
- data/app/controllers/alchemy/admin/nodes_controller.rb +26 -0
- data/app/controllers/alchemy/admin/pages_controller.rb +11 -78
- data/app/controllers/alchemy/admin/picture_descriptions_controller.rb +15 -0
- data/app/controllers/alchemy/admin/pictures_controller.rb +18 -1
- data/app/controllers/alchemy/admin/resources_controller.rb +15 -10
- data/app/controllers/alchemy/api/attachments_controller.rb +44 -0
- data/app/controllers/alchemy/api/pages_controller.rb +10 -6
- data/app/controllers/alchemy/base_controller.rb +2 -2
- data/app/controllers/alchemy/messages_controller.rb +3 -3
- data/app/controllers/alchemy/pages_controller.rb +8 -6
- data/app/controllers/concerns/alchemy/admin/current_language.rb +1 -11
- data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +1 -1
- data/app/decorators/alchemy/element_editor.rb +2 -2
- data/app/helpers/alchemy/admin/base_helper.rb +8 -60
- data/app/helpers/alchemy/admin/elements_helper.rb +1 -1
- data/app/helpers/alchemy/admin/ingredients_helper.rb +1 -1
- data/app/helpers/alchemy/base_helper.rb +9 -91
- data/app/helpers/alchemy/elements_helper.rb +3 -3
- data/app/helpers/alchemy/pages_helper.rb +16 -9
- data/app/javascript/alchemy_admin/components/attachment_select.js +24 -0
- data/app/javascript/alchemy_admin/components/button.js +3 -0
- data/app/javascript/alchemy_admin/components/clipboard_button.js +3 -2
- data/app/javascript/alchemy_admin/components/dialog_link.js +10 -7
- data/app/javascript/alchemy_admin/components/dom_id_select.js +69 -0
- data/app/javascript/alchemy_admin/components/element_editor/delete_element_button.js +42 -0
- data/app/javascript/alchemy_admin/components/element_editor/publish_element_button.js +4 -2
- data/app/javascript/alchemy_admin/components/element_editor.js +21 -13
- data/app/javascript/alchemy_admin/components/elements_window.js +87 -0
- data/app/javascript/alchemy_admin/components/growl.js +13 -0
- data/app/javascript/alchemy_admin/components/icon.js +51 -0
- data/app/javascript/alchemy_admin/components/index.js +24 -0
- data/app/javascript/alchemy_admin/components/ingredient_group.js +6 -0
- data/app/javascript/alchemy_admin/components/link_buttons/link_button.js +21 -11
- data/app/javascript/alchemy_admin/components/link_buttons/unlink_button.js +2 -1
- data/app/javascript/alchemy_admin/components/link_buttons.js +1 -0
- data/app/javascript/alchemy_admin/components/list_filter.js +68 -0
- data/app/javascript/alchemy_admin/components/message.js +69 -0
- data/app/javascript/alchemy_admin/components/node_select.js +1 -1
- data/app/javascript/alchemy_admin/components/overlay.js +6 -6
- data/app/javascript/alchemy_admin/components/page_select.js +3 -7
- data/app/javascript/alchemy_admin/components/preview_window.js +121 -0
- data/app/javascript/alchemy_admin/components/remote_select.js +4 -1
- data/app/javascript/alchemy_admin/components/select.js +37 -1
- data/app/javascript/alchemy_admin/components/tags_autocomplete.js +57 -0
- data/app/javascript/alchemy_admin/components/uploader/file_upload.js +4 -3
- data/app/javascript/alchemy_admin/components/uploader/progress.js +1 -1
- data/app/javascript/alchemy_admin/confirm_dialog.js +133 -0
- data/app/javascript/alchemy_admin/dirty.js +19 -14
- data/app/javascript/alchemy_admin/fixed_elements.js +24 -0
- data/app/javascript/alchemy_admin/growler.js +15 -0
- data/app/javascript/alchemy_admin/gui.js +2 -4
- data/app/javascript/alchemy_admin/hotkeys.js +60 -0
- data/app/javascript/alchemy_admin/image_loader.js +2 -2
- data/app/javascript/alchemy_admin/ingredient_anchor_link.js +2 -3
- data/app/javascript/alchemy_admin/initializer.js +1 -8
- data/app/javascript/alchemy_admin/link_dialog.js +131 -0
- data/app/javascript/alchemy_admin/locales/en.js +3 -0
- data/app/javascript/alchemy_admin/node_tree.js +4 -3
- data/app/javascript/alchemy_admin/page_sorter.js +23 -14
- data/app/javascript/alchemy_admin/picture_editors.js +6 -5
- data/app/javascript/alchemy_admin/shoelace_theme.js +60 -0
- data/app/javascript/alchemy_admin/sitemap.js +9 -3
- data/app/javascript/alchemy_admin/sortable_elements.js +4 -6
- data/app/javascript/alchemy_admin.js +18 -42
- data/app/models/alchemy/current.rb +26 -0
- data/app/models/alchemy/element.rb +1 -1
- data/app/models/alchemy/ingredients/audio.rb +0 -11
- data/app/models/alchemy/ingredients/headline.rb +8 -1
- data/app/models/alchemy/ingredients/picture.rb +6 -0
- data/app/models/alchemy/ingredients/video.rb +0 -12
- data/app/models/alchemy/language.rb +8 -6
- data/app/models/alchemy/node.rb +2 -2
- data/app/models/alchemy/page/page_elements.rb +8 -8
- data/app/models/alchemy/page/page_layouts.rb +3 -3
- data/app/models/alchemy/page/page_natures.rb +13 -9
- data/app/models/alchemy/page/page_scopes.rb +2 -2
- data/app/models/alchemy/page/publisher.rb +1 -0
- data/app/models/alchemy/page.rb +13 -28
- data/app/models/alchemy/picture.rb +8 -0
- data/app/models/alchemy/picture_description.rb +8 -0
- data/app/models/alchemy/picture_variant.rb +1 -1
- data/app/models/alchemy/site.rb +10 -7
- data/app/serializers/alchemy/attachment_serializer.rb +8 -0
- data/app/serializers/alchemy/page_node_serializer.rb +9 -0
- data/app/views/alchemy/_menubar.html.erb +1 -1
- data/app/views/alchemy/_preview_mode_code.html.erb +1 -1
- data/app/views/alchemy/admin/attachments/_tag_list.html.erb +2 -2
- data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +0 -1
- data/app/views/alchemy/admin/attachments/edit.html.erb +3 -4
- data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
- data/app/views/alchemy/admin/clipboard/index.html.erb +1 -1
- data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
- data/app/views/alchemy/admin/clipboard/remove.js.erb +1 -1
- data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/_sites.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/help.html.erb +48 -12
- data/app/views/alchemy/admin/dashboard/index.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/info.html.erb +5 -8
- data/app/views/alchemy/admin/elements/_add_nested_element_form.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_element.html.erb +5 -5
- data/app/views/alchemy/admin/elements/_footer.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_header.html.erb +6 -2
- data/app/views/alchemy/admin/elements/_toolbar.html.erb +8 -6
- data/app/views/alchemy/admin/elements/create.js.erb +0 -5
- data/app/views/alchemy/admin/elements/index.html.erb +70 -34
- data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +1 -2
- data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +3 -5
- data/app/views/alchemy/admin/languages/_language.html.erb +1 -1
- data/app/views/alchemy/admin/languages/index.html.erb +2 -2
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +18 -18
- data/app/views/alchemy/admin/layoutpages/edit.html.erb +4 -5
- data/app/views/alchemy/admin/layoutpages/index.html.erb +2 -2
- data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +10 -11
- data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +15 -17
- data/app/views/alchemy/admin/legacy_page_urls/_table.html.erb +16 -0
- data/app/views/alchemy/admin/legacy_page_urls/_update.turbo_stream.erb +12 -0
- data/app/views/alchemy/admin/legacy_page_urls/create.turbo_stream.erb +8 -0
- data/app/views/alchemy/admin/legacy_page_urls/destroy.turbo_stream.erb +1 -0
- data/app/views/alchemy/admin/legacy_page_urls/edit.html.erb +27 -0
- data/app/views/alchemy/admin/legacy_page_urls/show.html.erb +1 -0
- data/app/views/alchemy/admin/legacy_page_urls/update.turbo_stream.erb +1 -0
- data/app/views/alchemy/admin/nodes/_form.html.erb +12 -11
- data/app/views/alchemy/admin/nodes/_label.html.erb +1 -0
- data/app/views/alchemy/admin/nodes/_node.html.erb +19 -19
- data/app/views/alchemy/admin/nodes/_page_nodes.html.erb +48 -0
- data/app/views/alchemy/admin/nodes/_update.turbo_stream.erb +9 -0
- data/app/views/alchemy/admin/nodes/create.turbo_stream.erb +1 -0
- data/app/views/alchemy/admin/nodes/destroy.turbo_stream.erb +1 -0
- data/app/views/alchemy/admin/nodes/index.html.erb +3 -3
- data/app/views/alchemy/admin/pages/_form.html.erb +3 -4
- data/app/views/alchemy/admin/pages/_legacy_urls.html.erb +4 -15
- data/app/views/alchemy/admin/pages/_page.html.erb +39 -39
- data/app/views/alchemy/admin/pages/_table_row.html.erb +3 -3
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +2 -2
- data/app/views/alchemy/admin/pages/configure.html.erb +6 -0
- data/app/views/alchemy/admin/pages/edit.html.erb +15 -62
- data/app/views/alchemy/admin/pages/unlock.js.erb +3 -3
- data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +3 -1
- data/app/views/alchemy/admin/partials/_flash_notices.html.erb +4 -2
- data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +1 -1
- data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +5 -2
- data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
- data/app/views/alchemy/admin/partials/_search_form.html.erb +2 -2
- data/app/views/alchemy/admin/partials/_site_select.html.erb +1 -1
- data/app/views/alchemy/admin/picture_descriptions/_form.html.erb +11 -0
- data/app/views/alchemy/admin/picture_descriptions/edit.html.erb +6 -0
- data/app/views/alchemy/admin/pictures/_form.html.erb +4 -3
- data/app/views/alchemy/admin/pictures/_infos.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_picture_description_field.html.erb +29 -0
- data/app/views/alchemy/admin/pictures/_tag_list.html.erb +2 -2
- data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +0 -2
- data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +3 -3
- data/app/views/alchemy/admin/pictures/show.html.erb +3 -3
- data/app/views/alchemy/admin/resources/_form.html.erb +3 -4
- data/app/views/alchemy/admin/resources/_per_page_select.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_tag_list.html.erb +2 -2
- data/app/views/alchemy/admin/resources/index.html.erb +2 -2
- data/app/views/alchemy/admin/sites/index.html.erb +1 -1
- data/app/views/alchemy/admin/styleguide/index.html.erb +29 -24
- data/app/views/alchemy/admin/tags/_tag.html.erb +1 -1
- data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
- data/app/views/alchemy/admin/tags/index.html.erb +1 -1
- data/app/views/alchemy/base/500.html.erb +7 -18
- data/app/views/alchemy/base/error_notice.html.erb +3 -1
- data/app/views/alchemy/ingredients/_boolean_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_datetime_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_headline_editor.html.erb +13 -8
- data/app/views/alchemy/ingredients/_picture_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +1 -1
- data/app/views/alchemy/language_links/_language.html.erb +1 -1
- data/app/views/kaminari/alchemy/_first_page.html.erb +2 -2
- data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
- data/app/views/kaminari/alchemy/_last_page.html.erb +2 -2
- data/app/views/kaminari/alchemy/_next_page.html.erb +2 -2
- data/app/views/kaminari/alchemy/_prev_page.html.erb +2 -2
- data/app/views/layouts/alchemy/admin.html.erb +2 -1
- data/bundles/shoelace.js +3 -1
- data/config/locales/alchemy.en.yml +16 -3
- data/config/routes.rb +4 -2
- data/db/migrate/20240314105244_create_alchemy_picture_descriptions.rb +11 -0
- data/lib/alchemy/configuration_methods.rb +1 -1
- data/lib/alchemy/controller_actions.rb +3 -3
- data/lib/alchemy/element_definition.rb +10 -6
- data/lib/alchemy/engine.rb +19 -2
- data/lib/alchemy/page_layout.rb +10 -6
- data/lib/alchemy/permissions.rb +4 -3
- data/lib/alchemy/routing_constraints.rb +1 -1
- data/lib/alchemy/seeder.rb +2 -2
- data/lib/alchemy/test_support/capybara_helpers.rb +4 -0
- data/lib/alchemy/test_support/factories/language_factory.rb +1 -1
- data/lib/alchemy/test_support/shared_contexts.rb +8 -0
- data/lib/alchemy/tinymce.rb +2 -1
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy.rb +36 -0
- data/lib/alchemy_cms.rb +0 -1
- data/lib/generators/alchemy/menus/templates/node.html.erb +2 -2
- data/lib/generators/alchemy/menus/templates/node.html.haml +2 -2
- data/lib/generators/alchemy/menus/templates/node.html.slim +2 -2
- data/lib/generators/alchemy/menus/templates/wrapper.html.erb +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.haml +1 -1
- data/lib/generators/alchemy/menus/templates/wrapper.html.slim +1 -1
- data/lib/tasks/alchemy/sitemap.rake +97 -0
- data/lib/tasks/alchemy/tidy.rake +1 -0
- data/package.json +8 -8
- data/vendor/assets/fonts/remixicon.symbol.svg +11 -0
- data/vendor/javascript/shoelace.min.js +333 -118
- data/vendor/javascript/sortable.min.js +1 -1
- data/vendor/javascript/tinymce.min.js +1 -1
- data/vendor/javascript/ungap-custom-elements.min.js +1 -1
- metadata +61 -55
- data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +0 -85
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +0 -107
- data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +0 -66
- data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +0 -45
- data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +0 -24
- data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +0 -49
- data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +0 -0
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +0 -230
- data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +0 -49
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +0 -82
- data/app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee +0 -11
- data/app/assets/javascripts/alchemy/templates/page.hbs +0 -19
- data/app/javascript/alchemy_admin/tags_autocomplete.js +0 -46
- data/app/models/alchemy/tree_node.rb +0 -7
- data/app/views/alchemy/admin/elements/destroy.js.erb +0 -8
- data/app/views/alchemy/admin/legacy_page_urls/_form.html.erb +0 -5
- data/app/views/alchemy/admin/legacy_page_urls/create.js.erb +0 -9
- data/app/views/alchemy/admin/legacy_page_urls/destroy.js.erb +0 -6
- data/app/views/alchemy/admin/legacy_page_urls/update.js.erb +0 -2
- data/app/views/alchemy/admin/pages/_anchor_link.html.erb +0 -22
- data/app/views/alchemy/admin/pages/_external_link.html.erb +0 -31
- data/app/views/alchemy/admin/pages/_file_link.html.erb +0 -31
- data/app/views/alchemy/admin/pages/_internal_link.html.erb +0 -35
- data/app/views/alchemy/admin/pages/link.html.erb +0 -26
- data/app/views/alchemy/admin/partials/_flash.html.erb +0 -4
- data/app/views/alchemy/admin/partials/_toolbar_button.html.erb +0 -29
- data/lib/alchemy/test_support/current_language_shared_examples.rb +0 -33
- data/vendor/assets/fonts/remixicon.eot +0 -0
- data/vendor/assets/fonts/remixicon.svg +0 -7816
- data/vendor/assets/fonts/remixicon.ttf +0 -0
- data/vendor/assets/fonts/remixicon.woff +0 -0
- data/vendor/assets/fonts/remixicon.woff2 +0 -0
- data/vendor/assets/stylesheets/remixicon.scss +0 -10480
@@ -1,3 +1,3 @@
|
|
1
1
|
/*! (c) Andrea Giammarchi @webreflection ISC */
|
2
|
-
!function(){var e=function(e,t){var n=function(e){for(var t=0,n=e.length;t<n;t++)r(e[t]);},r=function(e){var t=e.target,n=e.attributeName,r=e.oldValue;t.attributeChangedCallback(n,r,t.getAttribute(n));};return function(o,a){var l=o.constructor.observedAttributes;return l&&e(a).then((function(){new t(n).observe(o,{attributes:!0,attributeOldValue:!0,attributeFilter:l});for(var e=0,a=l.length;e<a;e++)o.hasAttribute(l[e])&&r({target:o,attributeName:l[e],oldValue:null});})),o}};function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return "Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n
|
2
|
+
!function(){var e=function(e,t){var n=function(e){for(var t=0,n=e.length;t<n;t++)r(e[t]);},r=function(e){var t=e.target,n=e.attributeName,r=e.oldValue;t.attributeChangedCallback(n,r,t.getAttribute(n));};return function(o,a){var l=o.constructor.observedAttributes;return l&&e(a).then((function(){new t(n).observe(o,{attributes:!0,attributeOldValue:!0,attributeFilter:l});for(var e=0,a=l.length;e<a;e++)o.hasAttribute(l[e])&&r({target:o,attributeName:l[e],oldValue:null});})),o}};function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function n(e,n){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,n){if(e){if("string"==typeof e)return t(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);return "Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}(e))||n){r&&(e=r);var o=0,a=function(){};return {s:a,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,i=!0,c=!1;return {s:function(){r=r.call(e);},n:function(){var e=r.next();return i=e.done,e},e:function(e){c=!0,l=e;},f:function(){try{i||null==r.return||r.return();}finally{if(c)throw l}}}}
|
3
3
|
/*! (c) Andrea Giammarchi - ISC */var r=!0,o=!1,a="querySelectorAll",l="querySelectorAll",i=self,c=i.document,u=i.Element,s=i.MutationObserver,f=i.Set,d=i.WeakMap,h=function(e){return l in e},v=[].filter,p=function(e){var t=new d,i=function(n,r){var o;if(r)for(var a,l=function(e){return e.matches||e.webkitMatchesSelector||e.msMatchesSelector}(n),i=0,c=y.length;i<c;i++)l.call(n,a=y[i])&&(t.has(n)||t.set(n,new f),(o=t.get(n)).has(a)||(o.add(a),e.handle(n,r,a)));else t.has(n)&&(o=t.get(n),t.delete(n),o.forEach((function(t){e.handle(n,r,t);})));},p=function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=0,r=e.length;n<r;n++)i(e[n],t);},y=e.query,g=e.root||c,m=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:MutationObserver,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:["*"],c=function t(o,l,i,c,u,s){var f,d=n(o);try{for(d.s();!(f=d.n()).done;){var h=f.value;(s||a in h)&&(u?i.has(h)||(i.add(h),c.delete(h),e(h,u)):c.has(h)||(c.add(h),i.delete(h),e(h,u)),s||t(h[a](l),l,i,c,u,r));}}catch(e){d.e(e);}finally{d.f();}},u=new l((function(e){if(i.length){var t,a=i.join(","),l=new Set,u=new Set,s=n(e);try{for(s.s();!(t=s.n()).done;){var f=t.value,d=f.addedNodes,h=f.removedNodes;c(h,a,l,u,o,o),c(d,a,l,u,r,o);}}catch(e){s.e(e);}finally{s.f();}}})),s=u.observe;return (u.observe=function(e){return s.call(u,e,{subtree:r,childList:r})})(t),u}(i,g,s,y),w=u.prototype.attachShadow;return w&&(u.prototype.attachShadow=function(e){var t=w.call(this,e);return m.observe(t),t}),y.length&&p(g[l](y)),{drop:function(e){for(var n=0,r=e.length;n<r;n++)t.delete(e[n]);},flush:function(){for(var e=m.takeRecords(),t=0,n=e.length;t<n;t++)p(v.call(e[t].removedNodes,h),!1),p(v.call(e[t].addedNodes,h),!0);},observer:m,parse:p}},y=self,g=y.document,m=y.Map,w=y.MutationObserver,b=y.Object,E=y.Set,S=y.WeakMap,A=y.Element,M=y.HTMLElement,O=y.Node,N=y.Error,C=y.TypeError,T=y.Reflect,q=b.defineProperty,D=b.keys,I=b.getOwnPropertyNames,P=b.setPrototypeOf,k=!self.customElements,L=function(e){for(var t=D(e),n=[],r=new E,o=t.length,a=0;a<o;a++){n[a]=e[t[a]];try{delete e[t[a]];}catch(e){r.add(a);}}return function(){for(var a=0;a<o;a++)r.has(a)||(e[t[a]]=n[a]);}};if(k){var x=function(){var e=this.constructor;if(!$.has(e))throw new C("Illegal constructor");var t=$.get(e);if(W)return F(W,t);var n=H.call(g,t);return F(P(n,e.prototype),t)},H=g.createElement,$=new m,_=new m,j=new m,R=new m,V=[],U=p({query:V,handle:function(e,t,n){var r=j.get(n);if(t&&!r.isPrototypeOf(e)){var o=L(e);W=P(e,r);try{new r.constructor;}finally{W=null,o();}}var a="".concat(t?"":"dis","connectedCallback");a in r&&e[a]();}}).parse,W=null,B=function(e){if(!_.has(e)){var t,n=new Promise((function(e){t=e;}));_.set(e,{$:n,_:t});}return _.get(e).$},F=e(B,w);self.customElements={define:function(e,t){if(R.has(e))throw new N('the name "'.concat(e,'" has already been used with this registry'));$.set(t,e),j.set(e,t.prototype),R.set(e,t),V.push(e),B(e).then((function(){U(g.querySelectorAll(e));})),_.get(e)._(t);},get:function(e){return R.get(e)},whenDefined:B},q(x.prototype=M.prototype,"constructor",{value:x}),self.HTMLElement=x,g.createElement=function(e,t){var n=t&&t.is,r=n?R.get(n):R.get(e);return r?new r:H.call(g,e)},"isConnected"in O.prototype||q(O.prototype,"isConnected",{configurable:!0,get:function(){return !(this.ownerDocument.compareDocumentPosition(this)&this.DOCUMENT_POSITION_DISCONNECTED)}});}else if(k=!self.customElements.get("extends-br"))try{var z=function e(){return self.Reflect.construct(HTMLBRElement,[],e)};z.prototype=HTMLLIElement.prototype;var G="extends-br";self.customElements.define("extends-br",z,{extends:"br"}),k=g.createElement("br",{is:G}).outerHTML.indexOf(G)<0;var J=self.customElements,K=J.get,Q=J.whenDefined;self.customElements.whenDefined=function(e){var t=this;return Q.call(this,e).then((function(n){return n||K.call(t,e)}))};}catch(e){}if(k){var X=function(e){var t=ae.get(e);ve(t.querySelectorAll(this),e.isConnected);},Y=self.customElements,Z=g.createElement,ee=Y.define,te=Y.get,ne=Y.upgrade,re=T||{construct:function(e){return e.call(this)}},oe=re.construct,ae=new S,le=new E,ie=new m,ce=new m,ue=new m,se=new m,fe=[],de=[],he=function(e){return se.get(e)||te.call(Y,e)},ve=p({query:de,handle:function(e,t,n){var r=ue.get(n);if(t&&!r.isPrototypeOf(e)){var o=L(e);we=P(e,r);try{new r.constructor;}finally{we=null,o();}}var a="".concat(t?"":"dis","connectedCallback");a in r&&e[a]();}}).parse,pe=p({query:fe,handle:function(e,t){ae.has(e)&&(t?le.add(e):le.delete(e),de.length&&X.call(de,e));}}).parse,ye=A.prototype.attachShadow;ye&&(A.prototype.attachShadow=function(e){var t=ye.call(this,e);return ae.set(this,t),t});var ge=function(e){if(!ce.has(e)){var t,n=new Promise((function(e){t=e;}));ce.set(e,{$:n,_:t});}return ce.get(e).$},me=e(ge,w),we=null;I(self).filter((function(e){return /^HTML.*Element$/.test(e)})).forEach((function(e){var t=self[e];function n(){var e=this.constructor;if(!ie.has(e))throw new C("Illegal constructor");var n=ie.get(e),r=n.is,o=n.tag;if(r){if(we)return me(we,r);var a=Z.call(g,o);return a.setAttribute("is",r),me(P(a,e.prototype),r)}return oe.call(this,t,[],e)}q(n.prototype=t.prototype,"constructor",{value:n}),q(self,e,{value:n});})),g.createElement=function(e,t){var n=t&&t.is;if(n){var r=se.get(n);if(r&&ie.get(r).tag===e)return new r}var o=Z.call(g,e);return n&&o.setAttribute("is",n),o},Y.get=he,Y.whenDefined=ge,Y.upgrade=function(e){var t=e.getAttribute("is");if(t){var n=se.get(t);if(n)return void me(P(e,n.prototype),t)}ne.call(Y,e);},Y.define=function(e,t,n){if(he(e))throw new N("'".concat(e,"' has already been defined as a custom element"));var r,o=n&&n.extends;ie.set(t,o?{is:e,tag:o}:{is:"",tag:e}),o?(r="".concat(o,'[is="').concat(e,'"]'),ue.set(r,t.prototype),se.set(e,t),de.push(r)):(ee.apply(Y,arguments),fe.push(r=e)),ge(e).then((function(){o?(ve(g.querySelectorAll(r)),le.forEach(X,[r])):pe(g.querySelectorAll(r));})),ce.get(e)._(t);};}}();
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.2.0.b
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas von Deyen
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2024-
|
16
|
+
date: 2024-05-16 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: actionmailer
|
@@ -413,20 +413,6 @@ dependencies:
|
|
413
413
|
- - "<"
|
414
414
|
- !ruby/object:Gem::Version
|
415
415
|
version: '5.0'
|
416
|
-
- !ruby/object:Gem::Dependency
|
417
|
-
name: request_store
|
418
|
-
requirement: !ruby/object:Gem::Requirement
|
419
|
-
requirements:
|
420
|
-
- - "~>"
|
421
|
-
- !ruby/object:Gem::Version
|
422
|
-
version: '1.2'
|
423
|
-
type: :runtime
|
424
|
-
prerelease: false
|
425
|
-
version_requirements: !ruby/object:Gem::Requirement
|
426
|
-
requirements:
|
427
|
-
- - "~>"
|
428
|
-
- !ruby/object:Gem::Version
|
429
|
-
version: '1.2'
|
430
416
|
- !ruby/object:Gem::Dependency
|
431
417
|
name: responders
|
432
418
|
requirement: !ruby/object:Gem::Requirement
|
@@ -510,7 +496,7 @@ dependencies:
|
|
510
496
|
version: '1.4'
|
511
497
|
- - "<"
|
512
498
|
- !ruby/object:Gem::Version
|
513
|
-
version: '2'
|
499
|
+
version: '2.1'
|
514
500
|
type: :runtime
|
515
501
|
prerelease: false
|
516
502
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -520,7 +506,7 @@ dependencies:
|
|
520
506
|
version: '1.4'
|
521
507
|
- - "<"
|
522
508
|
- !ruby/object:Gem::Version
|
523
|
-
version: '2'
|
509
|
+
version: '2.1'
|
524
510
|
- !ruby/object:Gem::Dependency
|
525
511
|
name: view_component
|
526
512
|
requirement: !ruby/object:Gem::Requirement
|
@@ -719,7 +705,7 @@ dependencies:
|
|
719
705
|
version: '0.9'
|
720
706
|
description: Alchemy is a powerful, userfriendly and flexible Rails CMS.
|
721
707
|
email:
|
722
|
-
-
|
708
|
+
- alchemy@blish.cloud
|
723
709
|
executables: []
|
724
710
|
extensions: []
|
725
711
|
extra_rdoc_files: []
|
@@ -742,24 +728,12 @@ files:
|
|
742
728
|
- app/assets/images/alchemy/lupe.cur
|
743
729
|
- app/assets/images/alchemy/missing-image.svg
|
744
730
|
- app/assets/javascripts/alchemy/admin.js
|
745
|
-
- app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee
|
746
731
|
- app/assets/javascripts/alchemy/alchemy.dialog.js.coffee
|
747
|
-
- app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee
|
748
|
-
- app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee
|
749
|
-
- app/assets/javascripts/alchemy/alchemy.fixed_elements.js
|
750
|
-
- app/assets/javascripts/alchemy/alchemy.growler.js.coffee
|
751
|
-
- app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee
|
752
732
|
- app/assets/javascripts/alchemy/alchemy.image_overlay.coffee
|
753
|
-
- app/assets/javascripts/alchemy/alchemy.initializer.js.coffee
|
754
|
-
- app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee
|
755
|
-
- app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee
|
756
733
|
- app/assets/javascripts/alchemy/alchemy.preview.js.coffee
|
757
|
-
- app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee
|
758
|
-
- app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee
|
759
734
|
- app/assets/javascripts/alchemy/preview.js
|
760
735
|
- app/assets/javascripts/alchemy/templates/index.js
|
761
736
|
- app/assets/javascripts/alchemy/templates/node_folder.hbs
|
762
|
-
- app/assets/javascripts/alchemy/templates/page.hbs
|
763
737
|
- app/assets/javascripts/alchemy/templates/page_folder.hbs
|
764
738
|
- app/assets/javascripts/tinymce/icons/remixicons/icons.js
|
765
739
|
- app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js
|
@@ -770,6 +744,7 @@ files:
|
|
770
744
|
- app/assets/stylesheets/alchemy/_variables.scss
|
771
745
|
- app/assets/stylesheets/alchemy/admin.scss
|
772
746
|
- app/assets/stylesheets/alchemy/archive.scss
|
747
|
+
- app/assets/stylesheets/alchemy/attachment-select.scss
|
773
748
|
- app/assets/stylesheets/alchemy/attachments.scss
|
774
749
|
- app/assets/stylesheets/alchemy/base.scss
|
775
750
|
- app/assets/stylesheets/alchemy/buttons.scss
|
@@ -778,7 +753,6 @@ files:
|
|
778
753
|
- app/assets/stylesheets/alchemy/dialogs.scss
|
779
754
|
- app/assets/stylesheets/alchemy/elements.scss
|
780
755
|
- app/assets/stylesheets/alchemy/errors.scss
|
781
|
-
- app/assets/stylesheets/alchemy/filter_field.scss
|
782
756
|
- app/assets/stylesheets/alchemy/flash.scss
|
783
757
|
- app/assets/stylesheets/alchemy/flatpickr.scss
|
784
758
|
- app/assets/stylesheets/alchemy/fonts.scss
|
@@ -790,6 +764,7 @@ files:
|
|
790
764
|
- app/assets/stylesheets/alchemy/image_library.scss
|
791
765
|
- app/assets/stylesheets/alchemy/images.scss
|
792
766
|
- app/assets/stylesheets/alchemy/labels.scss
|
767
|
+
- app/assets/stylesheets/alchemy/list_filter.scss
|
793
768
|
- app/assets/stylesheets/alchemy/lists.scss
|
794
769
|
- app/assets/stylesheets/alchemy/menubar.scss
|
795
770
|
- app/assets/stylesheets/alchemy/navigation.scss
|
@@ -824,8 +799,20 @@ files:
|
|
824
799
|
- app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.min.scss
|
825
800
|
- app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.css
|
826
801
|
- app/assets/stylesheets/tinymce/skins/ui/alchemy/skin.mobile.min.css
|
802
|
+
- app/components/alchemy/admin/attachment_select.rb
|
803
|
+
- app/components/alchemy/admin/icon.rb
|
804
|
+
- app/components/alchemy/admin/link_dialog/anchor_tab.rb
|
805
|
+
- app/components/alchemy/admin/link_dialog/base_tab.rb
|
806
|
+
- app/components/alchemy/admin/link_dialog/external_tab.rb
|
807
|
+
- app/components/alchemy/admin/link_dialog/file_tab.rb
|
808
|
+
- app/components/alchemy/admin/link_dialog/internal_tab.rb
|
809
|
+
- app/components/alchemy/admin/link_dialog/tabs.rb
|
810
|
+
- app/components/alchemy/admin/list_filter.rb
|
811
|
+
- app/components/alchemy/admin/message.rb
|
827
812
|
- app/components/alchemy/admin/node_select.rb
|
828
813
|
- app/components/alchemy/admin/page_select.rb
|
814
|
+
- app/components/alchemy/admin/tags_autocomplete.rb
|
815
|
+
- app/components/alchemy/admin/toolbar_button.rb
|
829
816
|
- app/components/alchemy/ingredients/audio_view.rb
|
830
817
|
- app/components/alchemy/ingredients/base_view.rb
|
831
818
|
- app/components/alchemy/ingredients/boolean_view.rb
|
@@ -852,11 +839,13 @@ files:
|
|
852
839
|
- app/controllers/alchemy/admin/legacy_page_urls_controller.rb
|
853
840
|
- app/controllers/alchemy/admin/nodes_controller.rb
|
854
841
|
- app/controllers/alchemy/admin/pages_controller.rb
|
842
|
+
- app/controllers/alchemy/admin/picture_descriptions_controller.rb
|
855
843
|
- app/controllers/alchemy/admin/pictures_controller.rb
|
856
844
|
- app/controllers/alchemy/admin/resources_controller.rb
|
857
845
|
- app/controllers/alchemy/admin/sites_controller.rb
|
858
846
|
- app/controllers/alchemy/admin/styleguide_controller.rb
|
859
847
|
- app/controllers/alchemy/admin/tags_controller.rb
|
848
|
+
- app/controllers/alchemy/api/attachments_controller.rb
|
860
849
|
- app/controllers/alchemy/api/base_controller.rb
|
861
850
|
- app/controllers/alchemy/api/elements_controller.rb
|
862
851
|
- app/controllers/alchemy/api/ingredients_controller.rb
|
@@ -891,35 +880,51 @@ files:
|
|
891
880
|
- app/helpers/alchemy/url_helper.rb
|
892
881
|
- app/javascript/alchemy_admin.js
|
893
882
|
- app/javascript/alchemy_admin/components/alchemy_html_element.js
|
883
|
+
- app/javascript/alchemy_admin/components/attachment_select.js
|
894
884
|
- app/javascript/alchemy_admin/components/button.js
|
895
885
|
- app/javascript/alchemy_admin/components/char_counter.js
|
896
886
|
- app/javascript/alchemy_admin/components/clipboard_button.js
|
897
887
|
- app/javascript/alchemy_admin/components/datepicker.js
|
898
888
|
- app/javascript/alchemy_admin/components/dialog_link.js
|
889
|
+
- app/javascript/alchemy_admin/components/dom_id_select.js
|
899
890
|
- app/javascript/alchemy_admin/components/element_editor.js
|
891
|
+
- app/javascript/alchemy_admin/components/element_editor/delete_element_button.js
|
900
892
|
- app/javascript/alchemy_admin/components/element_editor/publish_element_button.js
|
893
|
+
- app/javascript/alchemy_admin/components/elements_window.js
|
894
|
+
- app/javascript/alchemy_admin/components/growl.js
|
895
|
+
- app/javascript/alchemy_admin/components/icon.js
|
896
|
+
- app/javascript/alchemy_admin/components/index.js
|
901
897
|
- app/javascript/alchemy_admin/components/ingredient_group.js
|
902
898
|
- app/javascript/alchemy_admin/components/link_buttons.js
|
903
899
|
- app/javascript/alchemy_admin/components/link_buttons/link_button.js
|
904
900
|
- app/javascript/alchemy_admin/components/link_buttons/unlink_button.js
|
901
|
+
- app/javascript/alchemy_admin/components/list_filter.js
|
902
|
+
- app/javascript/alchemy_admin/components/message.js
|
905
903
|
- app/javascript/alchemy_admin/components/node_select.js
|
906
904
|
- app/javascript/alchemy_admin/components/overlay.js
|
907
905
|
- app/javascript/alchemy_admin/components/page_select.js
|
906
|
+
- app/javascript/alchemy_admin/components/preview_window.js
|
908
907
|
- app/javascript/alchemy_admin/components/remote_select.js
|
909
908
|
- app/javascript/alchemy_admin/components/select.js
|
910
909
|
- app/javascript/alchemy_admin/components/spinner.js
|
910
|
+
- app/javascript/alchemy_admin/components/tags_autocomplete.js
|
911
911
|
- app/javascript/alchemy_admin/components/tinymce.js
|
912
912
|
- app/javascript/alchemy_admin/components/uploader.js
|
913
913
|
- app/javascript/alchemy_admin/components/uploader/file_upload.js
|
914
914
|
- app/javascript/alchemy_admin/components/uploader/progress.js
|
915
|
+
- app/javascript/alchemy_admin/confirm_dialog.js
|
915
916
|
- app/javascript/alchemy_admin/dirty.js
|
916
917
|
- app/javascript/alchemy_admin/file_editors.js
|
918
|
+
- app/javascript/alchemy_admin/fixed_elements.js
|
919
|
+
- app/javascript/alchemy_admin/growler.js
|
917
920
|
- app/javascript/alchemy_admin/gui.js
|
921
|
+
- app/javascript/alchemy_admin/hotkeys.js
|
918
922
|
- app/javascript/alchemy_admin/i18n.js
|
919
923
|
- app/javascript/alchemy_admin/image_cropper.js
|
920
924
|
- app/javascript/alchemy_admin/image_loader.js
|
921
925
|
- app/javascript/alchemy_admin/ingredient_anchor_link.js
|
922
926
|
- app/javascript/alchemy_admin/initializer.js
|
927
|
+
- app/javascript/alchemy_admin/link_dialog.js
|
923
928
|
- app/javascript/alchemy_admin/locales/en.js
|
924
929
|
- app/javascript/alchemy_admin/node_tree.js
|
925
930
|
- app/javascript/alchemy_admin/page_publication_fields.js
|
@@ -927,10 +932,10 @@ files:
|
|
927
932
|
- app/javascript/alchemy_admin/picture_editors.js
|
928
933
|
- app/javascript/alchemy_admin/picture_selector.js
|
929
934
|
- app/javascript/alchemy_admin/please_wait_overlay.js
|
935
|
+
- app/javascript/alchemy_admin/shoelace_theme.js
|
930
936
|
- app/javascript/alchemy_admin/sitemap.js
|
931
937
|
- app/javascript/alchemy_admin/sortable_elements.js
|
932
938
|
- app/javascript/alchemy_admin/spinner.js
|
933
|
-
- app/javascript/alchemy_admin/tags_autocomplete.js
|
934
939
|
- app/javascript/alchemy_admin/utils/ajax.js
|
935
940
|
- app/javascript/alchemy_admin/utils/debounce.js
|
936
941
|
- app/javascript/alchemy_admin/utils/dom_helpers.js
|
@@ -946,6 +951,7 @@ files:
|
|
946
951
|
- app/models/alchemy/attachment.rb
|
947
952
|
- app/models/alchemy/attachment/url.rb
|
948
953
|
- app/models/alchemy/base_record.rb
|
954
|
+
- app/models/alchemy/current.rb
|
949
955
|
- app/models/alchemy/eager_loading.rb
|
950
956
|
- app/models/alchemy/element.rb
|
951
957
|
- app/models/alchemy/element/definitions.rb
|
@@ -993,6 +999,7 @@ files:
|
|
993
999
|
- app/models/alchemy/picture/preprocessor.rb
|
994
1000
|
- app/models/alchemy/picture/transformations.rb
|
995
1001
|
- app/models/alchemy/picture/url.rb
|
1002
|
+
- app/models/alchemy/picture_description.rb
|
996
1003
|
- app/models/alchemy/picture_thumb.rb
|
997
1004
|
- app/models/alchemy/picture_thumb/create.rb
|
998
1005
|
- app/models/alchemy/picture_thumb/file_store.rb
|
@@ -1002,7 +1009,6 @@ files:
|
|
1002
1009
|
- app/models/alchemy/site.rb
|
1003
1010
|
- app/models/alchemy/site/layout.rb
|
1004
1011
|
- app/models/alchemy/tag.rb
|
1005
|
-
- app/models/alchemy/tree_node.rb
|
1006
1012
|
- app/models/concerns/alchemy/dom_ids.rb
|
1007
1013
|
- app/models/concerns/alchemy/picture_thumbnails.rb
|
1008
1014
|
- app/models/concerns/alchemy/touch_elements.rb
|
@@ -1011,6 +1017,7 @@ files:
|
|
1011
1017
|
- app/serializers/alchemy/element_serializer.rb
|
1012
1018
|
- app/serializers/alchemy/ingredient_serializer.rb
|
1013
1019
|
- app/serializers/alchemy/node_serializer.rb
|
1020
|
+
- app/serializers/alchemy/page_node_serializer.rb
|
1014
1021
|
- app/serializers/alchemy/page_serializer.rb
|
1015
1022
|
- app/serializers/alchemy/page_tree_serializer.rb
|
1016
1023
|
- app/serializers/alchemy/picture_serializer.rb
|
@@ -1053,7 +1060,6 @@ files:
|
|
1053
1060
|
- app/views/alchemy/admin/elements/_header.html.erb
|
1054
1061
|
- app/views/alchemy/admin/elements/_toolbar.html.erb
|
1055
1062
|
- app/views/alchemy/admin/elements/create.js.erb
|
1056
|
-
- app/views/alchemy/admin/elements/destroy.js.erb
|
1057
1063
|
- app/views/alchemy/admin/elements/index.html.erb
|
1058
1064
|
- app/views/alchemy/admin/elements/new.html.erb
|
1059
1065
|
- app/views/alchemy/admin/ingredients/_audio_fields.html.erb
|
@@ -1075,25 +1081,29 @@ files:
|
|
1075
1081
|
- app/views/alchemy/admin/layoutpages/edit.html.erb
|
1076
1082
|
- app/views/alchemy/admin/layoutpages/index.html.erb
|
1077
1083
|
- app/views/alchemy/admin/leave.html.erb
|
1078
|
-
- app/views/alchemy/admin/legacy_page_urls/_form.html.erb
|
1079
1084
|
- app/views/alchemy/admin/legacy_page_urls/_label.html.erb
|
1080
1085
|
- app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb
|
1081
1086
|
- app/views/alchemy/admin/legacy_page_urls/_new.html.erb
|
1082
|
-
- app/views/alchemy/admin/legacy_page_urls/
|
1083
|
-
- app/views/alchemy/admin/legacy_page_urls/
|
1084
|
-
- app/views/alchemy/admin/legacy_page_urls/
|
1087
|
+
- app/views/alchemy/admin/legacy_page_urls/_table.html.erb
|
1088
|
+
- app/views/alchemy/admin/legacy_page_urls/_update.turbo_stream.erb
|
1089
|
+
- app/views/alchemy/admin/legacy_page_urls/create.turbo_stream.erb
|
1090
|
+
- app/views/alchemy/admin/legacy_page_urls/destroy.turbo_stream.erb
|
1091
|
+
- app/views/alchemy/admin/legacy_page_urls/edit.html.erb
|
1092
|
+
- app/views/alchemy/admin/legacy_page_urls/show.html.erb
|
1093
|
+
- app/views/alchemy/admin/legacy_page_urls/update.turbo_stream.erb
|
1085
1094
|
- app/views/alchemy/admin/nodes/_form.html.erb
|
1095
|
+
- app/views/alchemy/admin/nodes/_label.html.erb
|
1086
1096
|
- app/views/alchemy/admin/nodes/_node.html.erb
|
1097
|
+
- app/views/alchemy/admin/nodes/_page_nodes.html.erb
|
1098
|
+
- app/views/alchemy/admin/nodes/_update.turbo_stream.erb
|
1099
|
+
- app/views/alchemy/admin/nodes/create.turbo_stream.erb
|
1100
|
+
- app/views/alchemy/admin/nodes/destroy.turbo_stream.erb
|
1087
1101
|
- app/views/alchemy/admin/nodes/edit.html.erb
|
1088
1102
|
- app/views/alchemy/admin/nodes/index.html.erb
|
1089
1103
|
- app/views/alchemy/admin/nodes/new.html.erb
|
1090
|
-
- app/views/alchemy/admin/pages/_anchor_link.html.erb
|
1091
1104
|
- app/views/alchemy/admin/pages/_create_language_form.html.erb
|
1092
1105
|
- app/views/alchemy/admin/pages/_current_page.html.erb
|
1093
|
-
- app/views/alchemy/admin/pages/_external_link.html.erb
|
1094
|
-
- app/views/alchemy/admin/pages/_file_link.html.erb
|
1095
1106
|
- app/views/alchemy/admin/pages/_form.html.erb
|
1096
|
-
- app/views/alchemy/admin/pages/_internal_link.html.erb
|
1097
1107
|
- app/views/alchemy/admin/pages/_legacy_urls.html.erb
|
1098
1108
|
- app/views/alchemy/admin/pages/_locked_page.html.erb
|
1099
1109
|
- app/views/alchemy/admin/pages/_new_page_form.html.erb
|
@@ -1111,7 +1121,6 @@ files:
|
|
1111
1121
|
- app/views/alchemy/admin/pages/flush.js.erb
|
1112
1122
|
- app/views/alchemy/admin/pages/index.html.erb
|
1113
1123
|
- app/views/alchemy/admin/pages/info.html.erb
|
1114
|
-
- app/views/alchemy/admin/pages/link.html.erb
|
1115
1124
|
- app/views/alchemy/admin/pages/list/_table.html.erb
|
1116
1125
|
- app/views/alchemy/admin/pages/locked.html.erb
|
1117
1126
|
- app/views/alchemy/admin/pages/new.html.erb
|
@@ -1119,7 +1128,6 @@ files:
|
|
1119
1128
|
- app/views/alchemy/admin/pages/unlock.js.erb
|
1120
1129
|
- app/views/alchemy/admin/pages/update.js.erb
|
1121
1130
|
- app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb
|
1122
|
-
- app/views/alchemy/admin/partials/_flash.html.erb
|
1123
1131
|
- app/views/alchemy/admin/partials/_flash_notices.html.erb
|
1124
1132
|
- app/views/alchemy/admin/partials/_language_tree_select.html.erb
|
1125
1133
|
- app/views/alchemy/admin/partials/_main_navigation_entry.html.erb
|
@@ -1128,13 +1136,15 @@ files:
|
|
1128
1136
|
- app/views/alchemy/admin/partials/_search_form.html.erb
|
1129
1137
|
- app/views/alchemy/admin/partials/_site_select.html.erb
|
1130
1138
|
- app/views/alchemy/admin/partials/_sub_navigation.html.erb
|
1131
|
-
- app/views/alchemy/admin/
|
1139
|
+
- app/views/alchemy/admin/picture_descriptions/_form.html.erb
|
1140
|
+
- app/views/alchemy/admin/picture_descriptions/edit.html.erb
|
1132
1141
|
- app/views/alchemy/admin/pictures/_archive.html.erb
|
1133
1142
|
- app/views/alchemy/admin/pictures/_archive_overlay.html.erb
|
1134
1143
|
- app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb
|
1135
1144
|
- app/views/alchemy/admin/pictures/_form.html.erb
|
1136
1145
|
- app/views/alchemy/admin/pictures/_infos.html.erb
|
1137
1146
|
- app/views/alchemy/admin/pictures/_picture.html.erb
|
1147
|
+
- app/views/alchemy/admin/pictures/_picture_description_field.html.erb
|
1138
1148
|
- app/views/alchemy/admin/pictures/_picture_to_assign.html.erb
|
1139
1149
|
- app/views/alchemy/admin/pictures/_tag_list.html.erb
|
1140
1150
|
- app/views/alchemy/admin/pictures/archive_overlay.js.erb
|
@@ -1257,6 +1267,7 @@ files:
|
|
1257
1267
|
- db/migrate/20230123112425_add_searchable_to_alchemy_pages.rb
|
1258
1268
|
- db/migrate/20230505132743_add_indexes_to_alchemy_pictures.rb
|
1259
1269
|
- db/migrate/20231113104432_create_page_mutexes.rb
|
1270
|
+
- db/migrate/20240314105244_create_alchemy_picture_descriptions.rb
|
1260
1271
|
- eslint.config.js
|
1261
1272
|
- lib/alchemy.rb
|
1262
1273
|
- lib/alchemy/ability_helper.rb
|
@@ -1304,7 +1315,6 @@ files:
|
|
1304
1315
|
- lib/alchemy/test_support.rb
|
1305
1316
|
- lib/alchemy/test_support/capybara_helpers.rb
|
1306
1317
|
- lib/alchemy/test_support/config_stubbing.rb
|
1307
|
-
- lib/alchemy/test_support/current_language_shared_examples.rb
|
1308
1318
|
- lib/alchemy/test_support/factories/attachment_factory.rb
|
1309
1319
|
- lib/alchemy/test_support/factories/dummy_user_factory.rb
|
1310
1320
|
- lib/alchemy/test_support/factories/element_factory.rb
|
@@ -1377,23 +1387,19 @@ files:
|
|
1377
1387
|
- lib/non_stupid_digest_assets.rb
|
1378
1388
|
- lib/tasks/alchemy/db.rake
|
1379
1389
|
- lib/tasks/alchemy/install.rake
|
1390
|
+
- lib/tasks/alchemy/sitemap.rake
|
1380
1391
|
- lib/tasks/alchemy/thumbnails.rake
|
1381
1392
|
- lib/tasks/alchemy/tidy.rake
|
1382
1393
|
- lib/tasks/alchemy/upgrade.rake
|
1383
1394
|
- lib/tasks/alchemy/usage.rake
|
1384
1395
|
- package.json
|
1385
1396
|
- rollup.config.mjs
|
1386
|
-
- vendor/assets/fonts/remixicon.
|
1387
|
-
- vendor/assets/fonts/remixicon.svg
|
1388
|
-
- vendor/assets/fonts/remixicon.ttf
|
1389
|
-
- vendor/assets/fonts/remixicon.woff
|
1390
|
-
- vendor/assets/fonts/remixicon.woff2
|
1397
|
+
- vendor/assets/fonts/remixicon.symbol.svg
|
1391
1398
|
- vendor/assets/images/Jcrop.gif
|
1392
1399
|
- vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js
|
1393
1400
|
- vendor/assets/javascripts/jquery_plugins/select2.js
|
1394
1401
|
- vendor/assets/stylesheets/alchemy_admin/select2.scss
|
1395
1402
|
- vendor/assets/stylesheets/jquery.Jcrop.min.scss
|
1396
|
-
- vendor/assets/stylesheets/remixicon.scss
|
1397
1403
|
- vendor/assets/stylesheets/tinymce/skins/content/default/content.min.css
|
1398
1404
|
- vendor/javascript/clipboard.min.js
|
1399
1405
|
- vendor/javascript/flatpickr.min.js
|
@@ -1405,7 +1411,7 @@ files:
|
|
1405
1411
|
- vendor/javascript/ungap-custom-elements.min.js
|
1406
1412
|
homepage: https://alchemy-cms.com
|
1407
1413
|
licenses:
|
1408
|
-
- BSD
|
1414
|
+
- BSD-3-Clause
|
1409
1415
|
metadata: {}
|
1410
1416
|
post_install_message: |+
|
1411
1417
|
-------------------------------------------------------------
|
@@ -1443,7 +1449,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1443
1449
|
version: '0'
|
1444
1450
|
requirements:
|
1445
1451
|
- ImageMagick (libmagick), v6.6 or greater.
|
1446
|
-
rubygems_version: 3.5.
|
1452
|
+
rubygems_version: 3.5.9
|
1447
1453
|
signing_key:
|
1448
1454
|
specification_version: 4
|
1449
1455
|
summary: A powerful, userfriendly and flexible CMS for Rails
|
@@ -1,85 +0,0 @@
|
|
1
|
-
class window.Alchemy.ConfirmDialog extends Alchemy.Dialog
|
2
|
-
|
3
|
-
DEFAULTS:
|
4
|
-
header_height: 36
|
5
|
-
size: '300x100'
|
6
|
-
padding: true
|
7
|
-
modal: true
|
8
|
-
title: 'Please confirm'
|
9
|
-
ok_label: 'Yes'
|
10
|
-
cancel_label: 'No'
|
11
|
-
on_ok: ->
|
12
|
-
|
13
|
-
constructor: (@message, @options = {}) ->
|
14
|
-
super('', @options)
|
15
|
-
|
16
|
-
load: ->
|
17
|
-
@dialog_title.text @options.title
|
18
|
-
@dialog_body.html "<p>#{@message}</p>"
|
19
|
-
@dialog_body.append @build_buttons()
|
20
|
-
@bind_buttons()
|
21
|
-
|
22
|
-
build_buttons: ->
|
23
|
-
$btn_container = $('<div class="alchemy-dialog-buttons" />')
|
24
|
-
@cancel_button = $("<button class=\"cancel secondary\">#{@options.cancel_label}</button>")
|
25
|
-
@ok_button = $("<button class=\"confirm\">#{@options.ok_label}</button>")
|
26
|
-
$btn_container.append(@cancel_button)
|
27
|
-
$btn_container.append(@ok_button)
|
28
|
-
$btn_container
|
29
|
-
|
30
|
-
bind_buttons: ->
|
31
|
-
@cancel_button.focus()
|
32
|
-
@cancel_button.on "click", =>
|
33
|
-
@close()
|
34
|
-
false
|
35
|
-
@ok_button.on "click", =>
|
36
|
-
@close()
|
37
|
-
@options.on_ok()
|
38
|
-
false
|
39
|
-
|
40
|
-
# Opens a confirm dialog
|
41
|
-
#
|
42
|
-
# Arguments:
|
43
|
-
#
|
44
|
-
# message - The message that will be displayed to the user (String)
|
45
|
-
#
|
46
|
-
# Options:
|
47
|
-
#
|
48
|
-
# title: '' - The title of the overlay window (String)
|
49
|
-
# cancel_label: '' - The label of the cancel button (String)
|
50
|
-
# ok_label: '' - The label of the ok button (String)
|
51
|
-
# on_ok: null - The function to invoke on confirmation (Function)
|
52
|
-
#
|
53
|
-
window.Alchemy.openConfirmDialog = (message, options = {}) ->
|
54
|
-
dialog = new Alchemy.ConfirmDialog(message, options)
|
55
|
-
dialog.open()
|
56
|
-
|
57
|
-
# Opens a confirm to delete dialog
|
58
|
-
#
|
59
|
-
# Arguments:
|
60
|
-
#
|
61
|
-
# url - The url to the server delete action. Uses DELETE as HTTP method. (String)
|
62
|
-
# opts - An options object (Object)
|
63
|
-
#
|
64
|
-
# Options:
|
65
|
-
#
|
66
|
-
# title: '' - The title of the confirmation window (String)
|
67
|
-
# message: '' - The message that will be displayed to the user (String)
|
68
|
-
# ok_label: '' - The label for the ok button (String)
|
69
|
-
# cancel_label: '' - The label for the cancel button (String)
|
70
|
-
#
|
71
|
-
window.Alchemy.confirmToDeleteDialog = (url, opts) ->
|
72
|
-
options =
|
73
|
-
on_ok: ->
|
74
|
-
Alchemy.pleaseWaitOverlay()
|
75
|
-
$.ajax
|
76
|
-
url: url
|
77
|
-
type: "DELETE"
|
78
|
-
error: (xhr, status, error) ->
|
79
|
-
type = if xhr.status == 403 then 'warning' else 'error'
|
80
|
-
Alchemy.growl(xhr.responseText || error, type)
|
81
|
-
complete: () ->
|
82
|
-
Alchemy.pleaseWaitOverlay(false)
|
83
|
-
|
84
|
-
$.extend(options, opts)
|
85
|
-
Alchemy.openConfirmDialog options.message, options
|
@@ -1,107 +0,0 @@
|
|
1
|
-
window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
|
2
|
-
|
3
|
-
# Adds buttons into a toolbar inside of overlay windows
|
4
|
-
Alchemy.ToolbarButton = (options) ->
|
5
|
-
$btn = $("<sl-tooltip content='#{options.label}' placement='top-#{options.align}'></sl-tooltip>")
|
6
|
-
if options.align
|
7
|
-
$btn.addClass(options.class)
|
8
|
-
if options.buttonId
|
9
|
-
$btn.attr(id: options.buttonId)
|
10
|
-
$lnk = $("<a class='icon_button' href='#' />")
|
11
|
-
if options.hotkey
|
12
|
-
$lnk.attr('data-alchemy-hotkey', options.hotkey)
|
13
|
-
$lnk.on "click", (e) ->
|
14
|
-
e.preventDefault()
|
15
|
-
options.onClick(e)
|
16
|
-
return
|
17
|
-
$lnk.append "<i class='icon ri-#{options.iconClass} ri-fw' />"
|
18
|
-
$btn.append $lnk
|
19
|
-
$btn
|
20
|
-
|
21
|
-
Alchemy.ElementsWindow =
|
22
|
-
|
23
|
-
init: (url, options, callback) ->
|
24
|
-
@hidden = false
|
25
|
-
@$body = $('body')
|
26
|
-
@element_window = $('<div id="alchemy_elements_window"/>')
|
27
|
-
@element_area = $('<div id="element_area"/>')
|
28
|
-
@url = url
|
29
|
-
@options = options
|
30
|
-
@callback = callback
|
31
|
-
@element_window.append @createToolbar(options.toolbarButtons)
|
32
|
-
@element_window.append @element_area
|
33
|
-
@button = $('#element_window_button')
|
34
|
-
@button.on "click", =>
|
35
|
-
@hide()
|
36
|
-
false
|
37
|
-
|
38
|
-
window.requestAnimationFrame =>
|
39
|
-
spinner = new Alchemy.Spinner('medium')
|
40
|
-
spinner.spin @element_area[0]
|
41
|
-
|
42
|
-
window.addEventListener 'message', (event) =>
|
43
|
-
data = event.data
|
44
|
-
if data?.message == 'Alchemy.focusElementEditor'
|
45
|
-
element = document.getElementById("element_#{data.element_id}")
|
46
|
-
Alchemy.ElementsWindow.show()
|
47
|
-
element?.focusElement()
|
48
|
-
true
|
49
|
-
|
50
|
-
@$body.on "click", (evt) =>
|
51
|
-
unless evt.target.closest(".element-editor")
|
52
|
-
@element_area.find('.element-editor').removeClass('selected')
|
53
|
-
Alchemy.PreviewWindow.postMessage(message: 'Alchemy.blurElements')
|
54
|
-
return
|
55
|
-
|
56
|
-
$('#main_content').append(@element_window)
|
57
|
-
@show()
|
58
|
-
@reload()
|
59
|
-
|
60
|
-
createToolbar: (buttons) ->
|
61
|
-
@toolbar = $('<div class="elements-window-toolbar" />')
|
62
|
-
buttons.push
|
63
|
-
label: Alchemy.t("Collapse all elements")
|
64
|
-
iconClass: "contract-up-down-line"
|
65
|
-
align: "end"
|
66
|
-
class: "right"
|
67
|
-
onClick: =>
|
68
|
-
$("alchemy-element-editor:not([compact]):not([fixed])").each () ->
|
69
|
-
@collapse()
|
70
|
-
for btn in buttons
|
71
|
-
@toolbar.append Alchemy.ToolbarButton(btn)
|
72
|
-
@toolbar.append @collapseAllBtn
|
73
|
-
|
74
|
-
reload: ->
|
75
|
-
$.get @url, (data) =>
|
76
|
-
@element_area.html data
|
77
|
-
Alchemy.SortableElements()
|
78
|
-
if @callback
|
79
|
-
@callback.call()
|
80
|
-
.fail (xhr, status, error) =>
|
81
|
-
Alchemy.Dialog::show_error(xhr, error, @element_area)
|
82
|
-
|
83
|
-
hide: ->
|
84
|
-
@$body.removeClass('elements-window-visible');
|
85
|
-
@hidden = true
|
86
|
-
@toggleButton()
|
87
|
-
|
88
|
-
show: ->
|
89
|
-
@$body.addClass('elements-window-visible');
|
90
|
-
@hidden = false
|
91
|
-
@toggleButton()
|
92
|
-
|
93
|
-
toggleButton: ->
|
94
|
-
if @hidden
|
95
|
-
@button.find('label').text(@options.texts.showElements)
|
96
|
-
@button.find('.icon').removeClass("ri-menu-unfold-line").addClass("ri-menu-fold-line")
|
97
|
-
@button.off('click')
|
98
|
-
@button.on "click", =>
|
99
|
-
@show()
|
100
|
-
false
|
101
|
-
else
|
102
|
-
@button.find('label').text(@options.texts.hideElements)
|
103
|
-
@button.find('.icon').removeClass("ri-menu-fold-line").addClass("ri-menu-unfold-line")
|
104
|
-
@button.off('click')
|
105
|
-
@button.on "click", =>
|
106
|
-
@hide()
|
107
|
-
false
|
@@ -1,66 +0,0 @@
|
|
1
|
-
window.Alchemy = {} if typeof(window.Alchemy) is 'undefined'
|
2
|
-
|
3
|
-
Alchemy.FileProgress = (file) ->
|
4
|
-
|
5
|
-
# Build Wrapper
|
6
|
-
@$fileProgressWrapper = $('<div class="progress-wrapper"/>')
|
7
|
-
|
8
|
-
# Build Container
|
9
|
-
@$fileProgressElement = $('<div class="progress-container"/>')
|
10
|
-
|
11
|
-
# Append Cancel Button
|
12
|
-
@$fileProgressCancel = $('<a href="javascript:void(0);" class="progress-cancel"><i class="icon ri-close-line ri-fw" /></a>')
|
13
|
-
@$fileProgressElement.append @$fileProgressCancel
|
14
|
-
|
15
|
-
# Append Filename
|
16
|
-
@$fileProgressElement.append "<div class=\"progress-name\">" + file.name + "</div>"
|
17
|
-
|
18
|
-
# Append Progressbar Status Text
|
19
|
-
@$fileProgressStatus = $('<div class="progress-bar-status"> </div>')
|
20
|
-
@$fileProgressElement.append @$fileProgressStatus
|
21
|
-
|
22
|
-
# Build Progressbar Container
|
23
|
-
$progressBarContainer = $('<div class="progress-bar-container"/>')
|
24
|
-
|
25
|
-
# Build Progressbar
|
26
|
-
@$progressBar = $('<div class="progress-bar-in-progress"/>')
|
27
|
-
|
28
|
-
# Knit all together
|
29
|
-
$progressBarContainer.append @$progressBar
|
30
|
-
@$fileProgressElement.append $progressBarContainer
|
31
|
-
@$fileProgressWrapper.append @$fileProgressElement
|
32
|
-
$('.upload-progress-container').append @$fileProgressWrapper
|
33
|
-
this
|
34
|
-
|
35
|
-
Alchemy.FileProgress::reset = ->
|
36
|
-
@$fileProgressStatus.html ' '
|
37
|
-
@$progressBar.removeClass().addClass 'progress-bar-in-progress'
|
38
|
-
@$progressBar.css width: '0%'
|
39
|
-
|
40
|
-
Alchemy.FileProgress::setProgress = (percentage) ->
|
41
|
-
@$progressBar.removeClass().addClass 'progress-bar-in-progress'
|
42
|
-
@$progressBar.css width: percentage + '%'
|
43
|
-
|
44
|
-
Alchemy.FileProgress::setComplete = ->
|
45
|
-
@$progressBar.removeClass().addClass 'progress-bar-complete'
|
46
|
-
@$progressBar.css width: '100%'
|
47
|
-
@$fileProgressCancel.hide()
|
48
|
-
@$fileProgressWrapper.delay(1500).fadeOut ->
|
49
|
-
$(this).remove()
|
50
|
-
|
51
|
-
Alchemy.FileProgress::setError = ->
|
52
|
-
@$progressBar.removeClass().addClass 'progress-bar-error'
|
53
|
-
@$progressBar.css width: '100%'
|
54
|
-
|
55
|
-
Alchemy.FileProgress::setCancelled = ->
|
56
|
-
@$progressBar.removeClass().addClass 'progress-bar-canceled'
|
57
|
-
@$progressBar.css width: '100%'
|
58
|
-
@$fileProgressCancel.hide()
|
59
|
-
@$fileProgressWrapper.delay(1500).fadeOut ->
|
60
|
-
$(this).remove()
|
61
|
-
if $('.upload-progress-container').is(':empty')
|
62
|
-
$('.overall-upload').removeClass('visible')
|
63
|
-
return
|
64
|
-
|
65
|
-
Alchemy.FileProgress::setStatus = (status) ->
|
66
|
-
@$fileProgressStatus.text Alchemy.t(status)
|