alchemy_cms 7.0.8 → 7.1.0.pre.b1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/backport.yml +36 -0
- data/.github/workflows/test.yml +3 -2
- data/.gitignore +1 -0
- data/.standard.yml +1 -1
- data/CHANGELOG.md +145 -0
- data/Gemfile +8 -10
- data/README.md +10 -8
- data/alchemy_cms.gemspec +3 -2
- data/app/assets/config/alchemy_manifest.js +0 -1
- data/app/assets/javascripts/alchemy/admin.js +1 -19
- data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +2 -3
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +19 -34
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +38 -13
- data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.fixed_elements.js +32 -25
- data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +3 -5
- data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +0 -57
- data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +22 -63
- data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +2 -2
- data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +5 -4
- data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +5 -5
- data/app/assets/javascripts/alchemy/templates/index.js +0 -2
- data/app/assets/javascripts/alchemy/templates/node_folder.hbs +1 -1
- data/app/assets/javascripts/alchemy/templates/page.hbs +1 -1
- data/app/assets/javascripts/alchemy/templates/page_folder.hbs +2 -2
- data/app/assets/stylesheets/alchemy/_custom-properties.scss +82 -0
- data/app/assets/stylesheets/alchemy/_mixins.scss +38 -30
- data/app/assets/stylesheets/alchemy/_variables.scss +12 -5
- data/app/assets/stylesheets/alchemy/admin.scss +3 -4
- data/app/assets/stylesheets/alchemy/archive.scss +107 -50
- data/app/assets/stylesheets/alchemy/attachments.scss +5 -4
- data/app/assets/stylesheets/alchemy/buttons.scss +38 -164
- data/app/assets/stylesheets/alchemy/dashboard.scss +31 -6
- data/app/assets/stylesheets/alchemy/dialogs.scss +12 -28
- data/app/assets/stylesheets/alchemy/elements.scss +273 -282
- data/app/assets/stylesheets/alchemy/flash.scss +20 -12
- data/app/assets/stylesheets/alchemy/forms.scss +21 -34
- data/app/assets/stylesheets/alchemy/frame.scss +11 -32
- data/app/assets/stylesheets/alchemy/hints.scss +4 -62
- data/app/assets/stylesheets/alchemy/image_library.scss +36 -33
- data/app/assets/stylesheets/alchemy/menubar.scss +7 -6
- data/app/assets/stylesheets/alchemy/navigation.scss +27 -15
- data/app/assets/stylesheets/alchemy/nodes.scss +11 -7
- data/app/assets/stylesheets/alchemy/notices.scss +16 -4
- data/app/assets/stylesheets/alchemy/page-select.scss +10 -2
- data/app/assets/stylesheets/alchemy/pagination.scss +22 -13
- data/app/assets/stylesheets/alchemy/resource_info.scss +7 -5
- data/app/assets/stylesheets/alchemy/selects.scss +49 -42
- data/app/assets/stylesheets/alchemy/shoelace.scss +345 -0
- data/app/assets/stylesheets/alchemy/sitemap.scss +24 -14
- data/app/assets/stylesheets/alchemy/spinner.scss +9 -19
- data/app/assets/stylesheets/alchemy/tables.scss +16 -24
- data/app/assets/stylesheets/alchemy/tags.scss +4 -0
- data/app/assets/stylesheets/alchemy/toolbar.scss +29 -25
- data/app/assets/stylesheets/alchemy/upload.scss +140 -89
- data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +80 -108
- data/app/components/alchemy/admin/node_select.rb +39 -0
- data/app/components/alchemy/admin/page_select.rb +42 -0
- data/app/controllers/alchemy/admin/base_controller.rb +5 -6
- data/app/controllers/alchemy/admin/elements_controller.rb +63 -35
- data/app/controllers/alchemy/base_controller.rb +4 -2
- data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +1 -1
- data/app/controllers/concerns/alchemy/site_redirects.rb +1 -1
- data/app/decorators/alchemy/element_editor.rb +0 -2
- data/app/helpers/alchemy/admin/attachments_helper.rb +6 -5
- data/app/helpers/alchemy/admin/base_helper.rb +17 -12
- data/app/helpers/alchemy/admin/ingredients_helper.rb +4 -1
- data/app/helpers/alchemy/admin/pages_helper.rb +5 -11
- data/app/helpers/alchemy/base_helper.rb +47 -13
- data/app/javascript/alchemy_admin/components/alchemy_html_element.js +129 -0
- data/app/javascript/alchemy_admin/components/button.js +59 -0
- data/app/javascript/alchemy_admin/components/char_counter.js +40 -0
- data/app/javascript/alchemy_admin/components/datepicker.js +39 -0
- data/app/javascript/alchemy_admin/components/dialog_link.js +45 -0
- data/app/javascript/alchemy_admin/components/element_editor/publish_element_button.js +36 -0
- data/app/javascript/alchemy_admin/components/element_editor.js +553 -0
- data/app/javascript/alchemy_admin/components/ingredient_group.js +54 -0
- data/app/javascript/alchemy_admin/components/link_buttons/link_button.js +48 -0
- data/app/javascript/alchemy_admin/components/link_buttons/unlink_button.js +38 -0
- data/app/javascript/alchemy_admin/components/link_buttons.js +79 -0
- data/app/javascript/alchemy_admin/components/node_select.js +45 -0
- data/app/javascript/alchemy_admin/components/overlay.js +18 -0
- data/app/javascript/alchemy_admin/components/page_select.js +63 -0
- data/app/javascript/alchemy_admin/components/remote_select.js +134 -0
- data/app/javascript/alchemy_admin/components/select.js +12 -0
- data/app/javascript/alchemy_admin/components/spinner.js +31 -0
- data/app/javascript/alchemy_admin/components/tinymce.js +146 -0
- data/app/javascript/alchemy_admin/components/uploader/file_upload.js +266 -0
- data/app/javascript/alchemy_admin/components/uploader/progress.js +258 -0
- data/app/javascript/alchemy_admin/components/uploader.js +132 -0
- data/app/javascript/alchemy_admin/dirty.js +49 -0
- data/app/javascript/alchemy_admin/file_editors.js +1 -1
- data/app/javascript/alchemy_admin/gui.js +14 -0
- data/app/javascript/alchemy_admin/i18n.js +12 -8
- data/app/javascript/alchemy_admin/image_cropper.js +6 -3
- data/app/javascript/alchemy_admin/image_loader.js +7 -15
- data/app/javascript/alchemy_admin/ingredient_anchor_link.js +2 -5
- data/app/javascript/alchemy_admin/initializer.js +65 -0
- data/app/javascript/alchemy_admin/locales/en.js +31 -0
- data/app/javascript/alchemy_admin/picture_editors.js +2 -2
- data/app/javascript/alchemy_admin/picture_selector.js +38 -0
- data/app/javascript/alchemy_admin/please_wait_overlay.js +8 -0
- data/app/javascript/alchemy_admin/sortable_elements.js +78 -0
- data/app/javascript/alchemy_admin/spinner.js +36 -0
- data/app/javascript/alchemy_admin/tags_autocomplete.js +46 -0
- data/app/javascript/alchemy_admin/utils/ajax.js +6 -5
- data/app/javascript/alchemy_admin/utils/dom_helpers.js +20 -0
- data/app/javascript/alchemy_admin/utils/format.js +11 -0
- data/app/javascript/alchemy_admin/utils/string_conversions.js +10 -0
- data/app/javascript/alchemy_admin.js +70 -13
- data/app/javascript/menubar.js +10 -0
- data/app/models/alchemy/attachment.rb +9 -11
- data/app/models/alchemy/element.rb +11 -0
- data/app/models/alchemy/ingredients/richtext.rb +1 -10
- data/app/models/alchemy/node.rb +4 -0
- data/app/models/alchemy/page/page_natures.rb +10 -2
- data/app/models/alchemy/page.rb +9 -49
- data/app/models/alchemy/picture/url.rb +1 -9
- data/app/serializers/alchemy/page_tree_serializer.rb +2 -1
- data/app/services/alchemy/copy_page.rb +98 -0
- data/app/views/alchemy/_menubar.html.erb +17 -13
- data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -10
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +44 -36
- data/app/views/alchemy/admin/attachments/_replace_button.html.erb +15 -21
- data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +0 -1
- data/app/views/alchemy/admin/attachments/assign.js.erb +1 -1
- data/app/views/alchemy/admin/attachments/index.html.erb +6 -4
- data/app/views/alchemy/admin/attachments/show.html.erb +8 -8
- data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
- data/app/views/alchemy/admin/clipboard/index.html.erb +3 -7
- data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
- data/app/views/alchemy/admin/crop.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
- data/app/views/alchemy/admin/dashboard/index.html.erb +13 -11
- data/app/views/alchemy/admin/dashboard/info.html.erb +7 -7
- data/app/views/alchemy/admin/elements/_add_nested_element_form.html.erb +21 -23
- data/app/views/alchemy/admin/elements/_element.html.erb +52 -44
- data/app/views/alchemy/admin/elements/_footer.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_form.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_header.html.erb +11 -12
- data/app/views/alchemy/admin/elements/_toolbar.html.erb +33 -45
- data/app/views/alchemy/admin/elements/create.js.erb +7 -15
- data/app/views/alchemy/admin/elements/destroy.js.erb +0 -2
- data/app/views/alchemy/admin/elements/index.html.erb +27 -24
- data/app/views/alchemy/admin/elements/new.html.erb +9 -11
- data/app/views/alchemy/admin/ingredients/_file_fields.html.erb +2 -2
- data/app/views/alchemy/admin/ingredients/_picture_fields.html.erb +3 -3
- data/app/views/alchemy/admin/ingredients/_video_fields.html.erb +1 -2
- data/app/views/alchemy/admin/languages/_form.html.erb +2 -3
- data/app/views/alchemy/admin/languages/_language.html.erb +15 -8
- data/app/views/alchemy/admin/languages/_table.html.erb +1 -0
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +28 -16
- data/app/views/alchemy/admin/layoutpages/index.html.erb +2 -2
- data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +12 -8
- data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
- data/app/views/alchemy/admin/nodes/_form.html.erb +20 -21
- data/app/views/alchemy/admin/nodes/_node.html.erb +39 -34
- data/app/views/alchemy/admin/nodes/index.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_anchor_link.html.erb +4 -4
- data/app/views/alchemy/admin/pages/_create_language_form.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_current_page.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_external_link.html.erb +4 -4
- data/app/views/alchemy/admin/pages/_file_link.html.erb +5 -5
- data/app/views/alchemy/admin/pages/_form.html.erb +10 -21
- data/app/views/alchemy/admin/pages/_internal_link.html.erb +4 -4
- data/app/views/alchemy/admin/pages/_locked_page.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_new_page_form.html.erb +4 -17
- data/app/views/alchemy/admin/pages/_page.html.erb +76 -72
- data/app/views/alchemy/admin/pages/_page_infos.html.erb +23 -7
- data/app/views/alchemy/admin/pages/_page_layout_filter.html.erb +2 -1
- data/app/views/alchemy/admin/pages/_page_status.html.erb +11 -21
- data/app/views/alchemy/admin/pages/_publication_fields.html.erb +2 -5
- data/app/views/alchemy/admin/pages/_table.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_table_row.html.erb +43 -39
- data/app/views/alchemy/admin/pages/_toolbar.html.erb +43 -38
- data/app/views/alchemy/admin/pages/configure.html.erb +12 -14
- data/app/views/alchemy/admin/pages/edit.html.erb +80 -103
- data/app/views/alchemy/admin/pages/info.html.erb +20 -11
- data/app/views/alchemy/admin/pages/link.html.erb +22 -16
- data/app/views/alchemy/admin/pages/new.html.erb +9 -11
- data/app/views/alchemy/admin/pages/unlock.js.erb +10 -3
- data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +15 -13
- data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +3 -5
- data/app/views/alchemy/admin/partials/_routes.html.erb +10 -2
- data/app/views/alchemy/admin/partials/_site_select.html.erb +6 -5
- data/app/views/alchemy/admin/partials/_toolbar_button.html.erb +28 -23
- data/app/views/alchemy/admin/pictures/_archive.html.erb +5 -5
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +21 -23
- data/app/views/alchemy/admin/pictures/_infos.html.erb +2 -6
- data/app/views/alchemy/admin/pictures/_picture.html.erb +15 -17
- data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +17 -16
- data/app/views/alchemy/admin/pictures/_tag_list.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +1 -1
- data/app/views/alchemy/admin/pictures/assign.js.erb +1 -1
- data/app/views/alchemy/admin/pictures/index.html.erb +34 -30
- data/app/views/alchemy/admin/pictures/show.html.erb +3 -3
- data/app/views/alchemy/admin/resources/_filter.html.erb +1 -1
- data/app/views/alchemy/admin/resources/_form.html.erb +2 -2
- data/app/views/alchemy/admin/resources/_resource.html.erb +16 -9
- data/app/views/alchemy/admin/resources/_table.html.erb +4 -1
- data/app/views/alchemy/admin/resources/index.html.erb +22 -19
- data/app/views/alchemy/admin/sites/index.html.erb +2 -1
- data/app/views/alchemy/admin/styleguide/index.html.erb +54 -28
- data/app/views/alchemy/admin/tags/_tag.html.erb +16 -14
- data/app/views/alchemy/admin/tags/index.html.erb +15 -12
- data/app/views/alchemy/admin/tinymce/_setup.html.erb +29 -0
- data/app/views/alchemy/admin/uploader/_button.html.erb +23 -29
- data/app/views/alchemy/admin/uploader/_setup.html.erb +3 -8
- data/app/views/alchemy/base/500.html.erb +1 -1
- data/app/views/alchemy/base/error_notice.js.erb +0 -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/_file_editor.html.erb +5 -5
- data/app/views/alchemy/ingredients/_link_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/_node_editor.html.erb +6 -19
- data/app/views/alchemy/ingredients/_page_editor.html.erb +7 -19
- data/app/views/alchemy/ingredients/_picture_editor.html.erb +2 -2
- data/app/views/alchemy/ingredients/_richtext_editor.html.erb +6 -15
- data/app/views/alchemy/ingredients/_select_editor.html.erb +2 -1
- data/app/views/alchemy/ingredients/_text_editor.html.erb +1 -1
- data/app/views/alchemy/ingredients/shared/_anchor.html.erb +1 -1
- data/app/views/alchemy/ingredients/shared/_link_tools.html.erb +10 -20
- data/app/views/alchemy/ingredients/shared/_picture_tools.html.erb +42 -49
- data/app/views/kaminari/alchemy/_first_page.html.erb +4 -2
- data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
- data/app/views/kaminari/alchemy/_last_page.html.erb +4 -2
- data/app/views/kaminari/alchemy/_next_page.html.erb +4 -2
- data/app/views/kaminari/alchemy/_prev_page.html.erb +4 -2
- data/app/views/layouts/alchemy/admin.html.erb +10 -29
- data/config/alchemy/modules.yml +30 -30
- data/config/importmap.rb +10 -1
- data/config/initializers/rails_live_reload.rb +13 -0
- data/config/locales/alchemy.en.yml +23 -9
- data/config/routes.rb +2 -1
- data/lib/alchemy/auth_accessors.rb +6 -1
- data/lib/alchemy/dev_support/live_reload_watcher.rb +5 -0
- data/lib/alchemy/engine.rb +8 -2
- data/lib/alchemy/forms/builder.rb +18 -12
- data/lib/alchemy/resources_helper.rb +3 -3
- data/lib/alchemy/test_support/capybara_helpers.rb +8 -5
- data/lib/alchemy/test_support/rspec_matchers.rb +14 -0
- data/lib/alchemy/test_support/shared_uploader_examples.rb +1 -1
- data/lib/alchemy/tinymce.rb +8 -3
- data/lib/alchemy/version.rb +1 -1
- data/package.json +14 -5
- data/vendor/assets/fonts/remixicon.eot +0 -0
- data/vendor/assets/fonts/remixicon.svg +7816 -0
- 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 +10480 -0
- metadata +83 -88
- data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +0 -30
- data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +0 -53
- data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +0 -45
- data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +0 -19
- data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +0 -59
- data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -79
- data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +0 -267
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +0 -27
- data/app/assets/javascripts/alchemy/alchemy.spinner.js +0 -32
- data/app/assets/javascripts/alchemy/alchemy.tooltips.coffee +0 -10
- data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +0 -131
- data/app/assets/javascripts/alchemy/menubar.js.coffee +0 -8
- data/app/assets/javascripts/alchemy/node_select.js +0 -39
- data/app/assets/javascripts/alchemy/page_select.js +0 -46
- data/app/assets/javascripts/alchemy/templates/node.hbs +0 -16
- data/app/assets/javascripts/alchemy/templates/spinner.hbs +0 -7
- data/app/assets/stylesheets/alchemy/jquery-ui.scss +0 -435
- data/app/javascript/alchemy_admin/datepicker.js +0 -33
- data/app/javascript/alchemy_admin/tinymce.js +0 -146
- data/app/javascript/alchemy_admin/translations.js +0 -32
- data/app/views/alchemy/admin/elements/fold.js.erb +0 -33
- data/app/views/alchemy/admin/elements/order.js.erb +0 -11
- data/app/views/alchemy/admin/elements/publish.js.erb +0 -21
- data/app/views/alchemy/admin/elements/update.js.erb +0 -27
- data/vendor/assets/fonts/fa-regular-400.eot +0 -0
- data/vendor/assets/fonts/fa-regular-400.svg +0 -803
- 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 +0 -4938
- 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/fileupload/jquery.fileupload-process.js +0 -178
- data/vendor/assets/javascripts/fileupload/jquery.fileupload-validate.js +0 -125
- data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +0 -1502
- data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +0 -224
- data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
- data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
- data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/widget.js +0 -754
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1623
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
- data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +0 -7
- data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +0 -296
- data/vendor/assets/stylesheets/fontawesome/_animated.scss +0 -20
- data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +0 -20
- data/vendor/assets/stylesheets/fontawesome/_core.scss +0 -21
- data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +0 -6
- data/vendor/assets/stylesheets/fontawesome/_icons.scss +0 -1441
- data/vendor/assets/stylesheets/fontawesome/_larger.scss +0 -23
- data/vendor/assets/stylesheets/fontawesome/_list.scss +0 -18
- data/vendor/assets/stylesheets/fontawesome/_mixins.scss +0 -56
- data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +0 -24
- data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +0 -5
- data/vendor/assets/stylesheets/fontawesome/_stacked.scss +0 -31
- data/vendor/assets/stylesheets/fontawesome/_variables.scss +0 -1458
- data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +0 -16
- data/vendor/assets/stylesheets/fontawesome/regular.scss +0 -23
- data/vendor/assets/stylesheets/fontawesome/solid.scss +0 -24
Binary file
|
Binary file
|
Binary file
|
@@ -1,178 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* jQuery File Upload Processing Plugin
|
3
|
-
* https://github.com/blueimp/jQuery-File-Upload
|
4
|
-
*
|
5
|
-
* Copyright 2012, Sebastian Tschan
|
6
|
-
* https://blueimp.net
|
7
|
-
*
|
8
|
-
* Licensed under the MIT license:
|
9
|
-
* https://opensource.org/licenses/MIT
|
10
|
-
*/
|
11
|
-
|
12
|
-
/* jshint nomen:false */
|
13
|
-
/* global define, require, window */
|
14
|
-
|
15
|
-
;(function (factory) {
|
16
|
-
'use strict';
|
17
|
-
if (typeof define === 'function' && define.amd) {
|
18
|
-
// Register as an anonymous AMD module:
|
19
|
-
define([
|
20
|
-
'jquery',
|
21
|
-
'./jquery.fileupload'
|
22
|
-
], factory);
|
23
|
-
} else if (typeof exports === 'object') {
|
24
|
-
// Node/CommonJS:
|
25
|
-
factory(
|
26
|
-
require('jquery'),
|
27
|
-
require('./jquery.fileupload')
|
28
|
-
);
|
29
|
-
} else {
|
30
|
-
// Browser globals:
|
31
|
-
factory(
|
32
|
-
window.jQuery
|
33
|
-
);
|
34
|
-
}
|
35
|
-
}(function ($) {
|
36
|
-
'use strict';
|
37
|
-
|
38
|
-
var originalAdd = $.blueimp.fileupload.prototype.options.add;
|
39
|
-
|
40
|
-
// The File Upload Processing plugin extends the fileupload widget
|
41
|
-
// with file processing functionality:
|
42
|
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
43
|
-
|
44
|
-
options: {
|
45
|
-
// The list of processing actions:
|
46
|
-
processQueue: [
|
47
|
-
/*
|
48
|
-
{
|
49
|
-
action: 'log',
|
50
|
-
type: 'debug'
|
51
|
-
}
|
52
|
-
*/
|
53
|
-
],
|
54
|
-
add: function (e, data) {
|
55
|
-
var $this = $(this);
|
56
|
-
data.process(function () {
|
57
|
-
return $this.fileupload('process', data);
|
58
|
-
});
|
59
|
-
originalAdd.call(this, e, data);
|
60
|
-
}
|
61
|
-
},
|
62
|
-
|
63
|
-
processActions: {
|
64
|
-
/*
|
65
|
-
log: function (data, options) {
|
66
|
-
console[options.type](
|
67
|
-
'Processing "' + data.files[data.index].name + '"'
|
68
|
-
);
|
69
|
-
}
|
70
|
-
*/
|
71
|
-
},
|
72
|
-
|
73
|
-
_processFile: function (data, originalData) {
|
74
|
-
var that = this,
|
75
|
-
dfd = $.Deferred().resolveWith(that, [data]),
|
76
|
-
chain = dfd.promise();
|
77
|
-
this._trigger('process', null, data);
|
78
|
-
$.each(data.processQueue, function (i, settings) {
|
79
|
-
var func = function (data) {
|
80
|
-
if (originalData.errorThrown) {
|
81
|
-
return $.Deferred()
|
82
|
-
.rejectWith(that, [originalData]).promise();
|
83
|
-
}
|
84
|
-
return that.processActions[settings.action].call(
|
85
|
-
that,
|
86
|
-
data,
|
87
|
-
settings
|
88
|
-
);
|
89
|
-
};
|
90
|
-
chain = chain.then(func, settings.always && func);
|
91
|
-
});
|
92
|
-
chain
|
93
|
-
.done(function () {
|
94
|
-
that._trigger('processdone', null, data);
|
95
|
-
that._trigger('processalways', null, data);
|
96
|
-
})
|
97
|
-
.fail(function () {
|
98
|
-
that._trigger('processfail', null, data);
|
99
|
-
that._trigger('processalways', null, data);
|
100
|
-
});
|
101
|
-
return chain;
|
102
|
-
},
|
103
|
-
|
104
|
-
// Replaces the settings of each processQueue item that
|
105
|
-
// are strings starting with an "@", using the remaining
|
106
|
-
// substring as key for the option map,
|
107
|
-
// e.g. "@autoUpload" is replaced with options.autoUpload:
|
108
|
-
_transformProcessQueue: function (options) {
|
109
|
-
var processQueue = [];
|
110
|
-
$.each(options.processQueue, function () {
|
111
|
-
var settings = {},
|
112
|
-
action = this.action,
|
113
|
-
prefix = this.prefix === true ? action : this.prefix;
|
114
|
-
$.each(this, function (key, value) {
|
115
|
-
if ($.type(value) === 'string' &&
|
116
|
-
value.charAt(0) === '@') {
|
117
|
-
settings[key] = options[
|
118
|
-
value.slice(1) || (prefix ? prefix +
|
119
|
-
key.charAt(0).toUpperCase() + key.slice(1) : key)
|
120
|
-
];
|
121
|
-
} else {
|
122
|
-
settings[key] = value;
|
123
|
-
}
|
124
|
-
|
125
|
-
});
|
126
|
-
processQueue.push(settings);
|
127
|
-
});
|
128
|
-
options.processQueue = processQueue;
|
129
|
-
},
|
130
|
-
|
131
|
-
// Returns the number of files currently in the processsing queue:
|
132
|
-
processing: function () {
|
133
|
-
return this._processing;
|
134
|
-
},
|
135
|
-
|
136
|
-
// Processes the files given as files property of the data parameter,
|
137
|
-
// returns a Promise object that allows to bind callbacks:
|
138
|
-
process: function (data) {
|
139
|
-
var that = this,
|
140
|
-
options = $.extend({}, this.options, data);
|
141
|
-
if (options.processQueue && options.processQueue.length) {
|
142
|
-
this._transformProcessQueue(options);
|
143
|
-
if (this._processing === 0) {
|
144
|
-
this._trigger('processstart');
|
145
|
-
}
|
146
|
-
$.each(data.files, function (index) {
|
147
|
-
var opts = index ? $.extend({}, options) : options,
|
148
|
-
func = function () {
|
149
|
-
if (data.errorThrown) {
|
150
|
-
return $.Deferred()
|
151
|
-
.rejectWith(that, [data]).promise();
|
152
|
-
}
|
153
|
-
return that._processFile(opts, data);
|
154
|
-
};
|
155
|
-
opts.index = index;
|
156
|
-
that._processing += 1;
|
157
|
-
that._processingQueue = that._processingQueue.then(func, func)
|
158
|
-
.always(function () {
|
159
|
-
that._processing -= 1;
|
160
|
-
if (that._processing === 0) {
|
161
|
-
that._trigger('processstop');
|
162
|
-
}
|
163
|
-
});
|
164
|
-
});
|
165
|
-
}
|
166
|
-
return this._processingQueue;
|
167
|
-
},
|
168
|
-
|
169
|
-
_create: function () {
|
170
|
-
this._super();
|
171
|
-
this._processing = 0;
|
172
|
-
this._processingQueue = $.Deferred().resolveWith(this)
|
173
|
-
.promise();
|
174
|
-
}
|
175
|
-
|
176
|
-
});
|
177
|
-
|
178
|
-
}));
|
@@ -1,125 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* jQuery File Upload Validation Plugin
|
3
|
-
* https://github.com/blueimp/jQuery-File-Upload
|
4
|
-
*
|
5
|
-
* Copyright 2013, Sebastian Tschan
|
6
|
-
* https://blueimp.net
|
7
|
-
*
|
8
|
-
* Licensed under the MIT license:
|
9
|
-
* https://opensource.org/licenses/MIT
|
10
|
-
*/
|
11
|
-
|
12
|
-
/* global define, require, window */
|
13
|
-
|
14
|
-
;(function (factory) {
|
15
|
-
'use strict';
|
16
|
-
if (typeof define === 'function' && define.amd) {
|
17
|
-
// Register as an anonymous AMD module:
|
18
|
-
define([
|
19
|
-
'jquery',
|
20
|
-
'./jquery.fileupload-process'
|
21
|
-
], factory);
|
22
|
-
} else if (typeof exports === 'object') {
|
23
|
-
// Node/CommonJS:
|
24
|
-
factory(
|
25
|
-
require('jquery'),
|
26
|
-
require('./jquery.fileupload-process')
|
27
|
-
);
|
28
|
-
} else {
|
29
|
-
// Browser globals:
|
30
|
-
factory(
|
31
|
-
window.jQuery
|
32
|
-
);
|
33
|
-
}
|
34
|
-
}(function ($) {
|
35
|
-
'use strict';
|
36
|
-
|
37
|
-
// Append to the default processQueue:
|
38
|
-
$.blueimp.fileupload.prototype.options.processQueue.push(
|
39
|
-
{
|
40
|
-
action: 'validate',
|
41
|
-
// Always trigger this action,
|
42
|
-
// even if the previous action was rejected:
|
43
|
-
always: true,
|
44
|
-
// Options taken from the global options map:
|
45
|
-
acceptFileTypes: '@',
|
46
|
-
maxFileSize: '@',
|
47
|
-
minFileSize: '@',
|
48
|
-
maxNumberOfFiles: '@',
|
49
|
-
disabled: '@disableValidation'
|
50
|
-
}
|
51
|
-
);
|
52
|
-
|
53
|
-
// The File Upload Validation plugin extends the fileupload widget
|
54
|
-
// with file validation functionality:
|
55
|
-
$.widget('blueimp.fileupload', $.blueimp.fileupload, {
|
56
|
-
|
57
|
-
options: {
|
58
|
-
/*
|
59
|
-
// The regular expression for allowed file types, matches
|
60
|
-
// against either file type or file name:
|
61
|
-
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
|
62
|
-
// The maximum allowed file size in bytes:
|
63
|
-
maxFileSize: 10000000, // 10 MB
|
64
|
-
// The minimum allowed file size in bytes:
|
65
|
-
minFileSize: undefined, // No minimal file size
|
66
|
-
// The limit of files to be uploaded:
|
67
|
-
maxNumberOfFiles: 10,
|
68
|
-
*/
|
69
|
-
|
70
|
-
// Function returning the current number of files,
|
71
|
-
// has to be overriden for maxNumberOfFiles validation:
|
72
|
-
getNumberOfFiles: $.noop,
|
73
|
-
|
74
|
-
// Error and info messages:
|
75
|
-
messages: {
|
76
|
-
maxNumberOfFiles: 'Maximum number of files exceeded',
|
77
|
-
acceptFileTypes: 'File type not allowed',
|
78
|
-
maxFileSize: 'File is too large',
|
79
|
-
minFileSize: 'File is too small'
|
80
|
-
}
|
81
|
-
},
|
82
|
-
|
83
|
-
processActions: {
|
84
|
-
|
85
|
-
validate: function (data, options) {
|
86
|
-
if (options.disabled) {
|
87
|
-
return data;
|
88
|
-
}
|
89
|
-
var dfd = $.Deferred(),
|
90
|
-
settings = this.options,
|
91
|
-
file = data.files[data.index],
|
92
|
-
fileSize;
|
93
|
-
if (options.minFileSize || options.maxFileSize) {
|
94
|
-
fileSize = file.size;
|
95
|
-
}
|
96
|
-
if ($.type(options.maxNumberOfFiles) === 'number' &&
|
97
|
-
(settings.getNumberOfFiles() || 0) + data.files.length >
|
98
|
-
options.maxNumberOfFiles) {
|
99
|
-
file.error = settings.i18n('maxNumberOfFiles');
|
100
|
-
} else if (options.acceptFileTypes &&
|
101
|
-
!(options.acceptFileTypes.test(file.type) ||
|
102
|
-
options.acceptFileTypes.test(file.name))) {
|
103
|
-
file.error = settings.i18n('acceptFileTypes');
|
104
|
-
} else if (fileSize > options.maxFileSize) {
|
105
|
-
file.error = settings.i18n('maxFileSize');
|
106
|
-
} else if ($.type(fileSize) === 'number' &&
|
107
|
-
fileSize < options.minFileSize) {
|
108
|
-
file.error = settings.i18n('minFileSize');
|
109
|
-
} else {
|
110
|
-
delete file.error;
|
111
|
-
}
|
112
|
-
if (file.error || data.files.error) {
|
113
|
-
data.files.error = true;
|
114
|
-
dfd.rejectWith(this, [data]);
|
115
|
-
} else {
|
116
|
-
dfd.resolveWith(this, [data]);
|
117
|
-
}
|
118
|
-
return dfd.promise();
|
119
|
-
}
|
120
|
-
|
121
|
-
}
|
122
|
-
|
123
|
-
});
|
124
|
-
|
125
|
-
}));
|