binda 0.0.7 → 0.1.0
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/README.md +850 -18
- data/Rakefile +1 -13
- data/app/assets/javascripts/binda/application.js +23 -0
- data/app/assets/javascripts/binda/components/bootstrap.js +9 -0
- data/app/assets/javascripts/binda/components/field_group_editor.js +18 -0
- data/app/assets/javascripts/binda/components/fileupload.js +182 -0
- data/app/assets/javascripts/binda/components/form_item.js +91 -23
- data/app/assets/javascripts/binda/components/form_item_choice.js +15 -8
- data/app/assets/javascripts/binda/components/form_item_editor.js +6 -6
- data/app/assets/javascripts/binda/components/form_item_image.js +23 -0
- data/app/assets/javascripts/binda/components/form_item_repeater.js +70 -23
- data/app/assets/javascripts/binda/components/login-shader.js +193 -0
- data/app/assets/javascripts/binda/components/login_form.js +116 -0
- data/app/assets/javascripts/binda/components/radio-toggle.js +18 -0
- data/app/assets/javascripts/binda/components/select2.js +22 -0
- data/app/assets/javascripts/binda/components/sortable.js +53 -8
- data/app/assets/javascripts/binda/dist/binda.bundle.js +914 -107
- data/app/assets/javascripts/binda/index.js +26 -3
- data/app/assets/stylesheets/binda/application.scss +6 -0
- data/app/assets/stylesheets/binda/components/assets_manager.scss +46 -36
- data/app/assets/stylesheets/binda/components/b-btn.scss +114 -0
- data/app/assets/stylesheets/binda/components/button.scss +4 -1
- data/app/assets/stylesheets/binda/components/fileupload.scss +134 -0
- data/app/assets/stylesheets/binda/components/form_item.scss +233 -168
- data/app/assets/stylesheets/binda/components/form_item_image.scss +0 -0
- data/app/assets/stylesheets/binda/components/form_item_video.scss +25 -0
- data/app/assets/stylesheets/binda/components/main_container.scss +3 -0
- data/app/assets/stylesheets/binda/components/main_content.scss +1 -2
- data/app/assets/stylesheets/binda/components/main_header.scss +21 -20
- data/app/assets/stylesheets/binda/components/main_sidebar.scss +121 -0
- data/app/assets/stylesheets/binda/components/main_table.scss +84 -28
- data/app/assets/stylesheets/binda/components/popup_warning.scss +71 -0
- data/app/assets/stylesheets/binda/components/select2.scss +126 -0
- data/app/assets/stylesheets/binda/components/sortable.scss +83 -56
- data/app/assets/stylesheets/binda/components/standard-form.scss +228 -0
- data/app/assets/stylesheets/binda/components/texts.scss +6 -0
- data/app/assets/stylesheets/binda/controllers/components_index.scss +3 -0
- data/app/assets/stylesheets/binda/controllers/users_sessions_new.scss +309 -0
- data/app/assets/stylesheets/binda/index.scss +16 -8
- data/app/assets/stylesheets/binda/settings/bootstrap_overrides.scss +0 -0
- data/app/assets/stylesheets/binda/settings/buttons.scss +36 -0
- data/app/assets/stylesheets/binda/settings/common.scss +36 -79
- data/app/assets/stylesheets/binda/settings/fonts.scss +88 -31
- data/app/assets/stylesheets/binda/settings/tiny_mce_overrides.scss +82 -0
- data/app/assets/stylesheets/binda/settings/variables.scss +36 -31
- data/app/controllers/binda/application_controller.rb +0 -2
- data/app/controllers/binda/assets_controller.rb +1 -1
- data/app/controllers/binda/boards_controller.rb +15 -4
- data/app/controllers/binda/components_controller.rb +30 -15
- data/app/controllers/binda/field_groups_controller.rb +19 -4
- data/app/controllers/binda/images_controller.rb +68 -0
- data/app/controllers/binda/repeaters_controller.rb +3 -12
- data/app/controllers/binda/structures_controller.rb +8 -1
- data/app/controllers/binda/videos_controller.rb +68 -0
- data/app/controllers/concerns/binda/fieldable_helpers.rb +113 -28
- data/app/controllers/concerns/binda/maintenance_helpers.rb +34 -0
- data/app/helpers/binda/components_helper.rb +26 -2
- data/app/helpers/binda/field_groups_helper.rb +16 -0
- data/app/helpers/binda/structures_helper.rb +6 -0
- data/app/models/binda/asset.rb +0 -4
- data/app/models/binda/b.rb +5 -0
- data/app/models/binda/board.rb +1 -18
- data/app/models/binda/choice.rb +48 -12
- data/app/models/binda/component.rb +20 -0
- data/app/models/binda/field_group.rb +2 -2
- data/app/models/binda/field_setting.rb +61 -28
- data/app/models/binda/gallery.rb +0 -2
- data/app/models/binda/image.rb +7 -0
- data/app/models/binda/relation.rb +79 -0
- data/app/models/binda/relation_link.rb +11 -0
- data/app/models/binda/repeater.rb +1 -1
- data/app/models/binda/selection.rb +0 -9
- data/app/models/binda/structure.rb +41 -39
- data/app/models/binda/video.rb +7 -0
- data/app/models/concerns/binda/default_helpers.rb +186 -0
- data/app/models/concerns/binda/fieldable_associations.rb +276 -30
- data/app/uploaders/binda/{asset → image}/image_uploader.rb +27 -9
- data/app/uploaders/binda/video/video_uploader.rb +51 -0
- data/app/views/binda/boards/edit.html.erb +6 -1
- data/app/views/binda/categories/_form.html.erb +41 -40
- data/app/views/binda/categories/edit.html.erb +1 -1
- data/app/views/binda/categories/index.html.erb +16 -13
- data/app/views/binda/components/edit.html.erb +6 -3
- data/app/views/binda/components/index.html.erb +69 -28
- data/app/views/binda/components/new.html.erb +1 -1
- data/app/views/binda/components/sort_index.html.erb +46 -0
- data/app/views/binda/field_groups/_form_body.html.erb +65 -44
- data/app/views/binda/field_groups/_form_item.html.erb +66 -23
- data/app/views/binda/field_groups/_form_item_choice.erb +34 -15
- data/app/views/binda/field_groups/_form_section.html.erb +6 -10
- data/app/views/binda/field_groups/_form_section_repeater.html.erb +3 -3
- data/app/views/binda/field_groups/edit.html.erb +1 -1
- data/app/views/binda/field_settings/_form_body.html.erb +5 -5
- data/app/views/binda/field_settings/edit.html.erb +1 -1
- data/app/views/binda/fieldable/_form_body.html.erb +93 -79
- data/app/views/binda/fieldable/_form_item_date.html.erb +14 -14
- data/app/views/binda/fieldable/_form_item_image.html.erb +35 -0
- data/app/views/binda/fieldable/_form_item_new_repeater.html.erb +12 -5
- data/app/views/binda/fieldable/_form_item_relation.html.erb +44 -0
- data/app/views/binda/fieldable/_form_item_repeater.html.erb +80 -58
- data/app/views/binda/fieldable/_form_item_selections.html.erb +109 -87
- data/app/views/binda/fieldable/_form_item_string.html.erb +19 -17
- data/app/views/binda/fieldable/_form_item_text.html.erb +19 -16
- data/app/views/binda/fieldable/_form_item_video.html.erb +32 -0
- data/app/views/binda/fieldable/_form_section.html.erb +27 -5
- data/app/views/binda/fieldable/_form_section_repeater.html.erb +30 -10
- data/app/views/binda/fieldable/_form_sidebar.html.erb +44 -20
- data/app/views/binda/manage/users/_form_body.html.erb +42 -37
- data/app/views/binda/manage/users/edit.html.erb +1 -1
- data/app/views/binda/manage/users/index.html.erb +21 -21
- data/app/views/binda/structures/_form_body.html.erb +54 -60
- data/app/views/binda/structures/_form_section.html.erb +32 -18
- data/app/views/binda/structures/_form_sidebar.html.erb +35 -0
- data/app/views/binda/structures/edit.html.erb +2 -2
- data/app/views/binda/structures/index.html.erb +21 -16
- data/app/views/binda/structures/sort_index.html.erb +36 -0
- data/app/views/{users → binda/users}/confirmations/new.html.erb +1 -1
- data/app/views/{users → binda/users}/mailer/confirmation_instructions.html.erb +0 -0
- data/app/views/{users → binda/users}/mailer/password_change.html.erb +0 -0
- data/app/views/{users → binda/users}/mailer/reset_password_instructions.html.erb +0 -0
- data/app/views/{users → binda/users}/mailer/unlock_instructions.html.erb +0 -0
- data/app/views/{users → binda/users}/passwords/edit.html.erb +1 -1
- data/app/views/{users → binda/users}/passwords/new.html.erb +1 -1
- data/app/views/{users → binda/users}/registrations/edit.html.erb +0 -0
- data/app/views/{users → binda/users}/registrations/new.html.erb +1 -1
- data/app/views/binda/users/sessions/_background.html.erb +139 -0
- data/app/views/binda/users/sessions/new.html.erb +62 -0
- data/app/views/{users → binda/users}/shared/_links.html.erb +3 -3
- data/app/views/{users → binda/users}/unlocks/new.html.erb +1 -1
- data/app/views/kaminari/_first_page.html.erb +11 -0
- data/app/views/kaminari/_gap.html.erb +8 -0
- data/app/views/kaminari/_last_page.html.erb +11 -0
- data/app/views/kaminari/_next_page.html.erb +11 -0
- data/app/views/kaminari/_page.html.erb +12 -0
- data/app/views/kaminari/_paginator.html.erb +19 -0
- data/app/views/kaminari/_prev_page.html.erb +11 -0
- data/app/views/layouts/binda/_flash.html.erb +1 -1
- data/app/views/layouts/binda/_header.html.erb +2 -6
- data/app/views/layouts/binda/_sidebar.html.erb +11 -4
- data/app/views/layouts/binda/application.html.erb +15 -7
- data/config/autoprefixer.yml +5 -0
- data/config/database.yml.travis +3 -0
- data/config/initializers/assets.rb +1 -0
- data/config/initializers/autoprefixer.yml +5 -0
- data/config/initializers/carrierwave.rb +32 -0
- data/config/initializers/devise.rb +14 -10
- data/config/initializers/devise_patch.rb +8 -8
- data/config/initializers/simple_form.rb +4 -0
- data/config/initializers/simple_form__fileupload.rb +121 -0
- data/config/initializers/{simple_form_bootstrap.rb → simple_form_custom.rb} +79 -50
- data/config/locales/en.yml +61 -3
- data/config/locales/it.yml +51 -0
- data/config/locales/simple_form.en.yml +3 -3
- data/config/routes.rb +41 -24
- data/db/migrate/1_create_binda_tables.rb +18 -7
- data/db/migrate/20171214140451_add_preview_mode.rb +5 -0
- data/lib/binda.rb +1 -1
- data/lib/binda/engine.rb +19 -23
- data/lib/binda/version.rb +2 -2
- data/lib/generators/binda/install/install_generator.rb +59 -54
- data/lib/generators/binda/install/templates/config/initializers/carrierwave.rb +11 -2
- data/lib/generators/binda/maintenance/USAGE +8 -0
- data/lib/generators/binda/maintenance/maintenance_generator.rb +50 -0
- data/lib/generators/binda/maintenance/templates/app/assets/javascripts/maintenance.js +0 -0
- data/lib/generators/binda/maintenance/templates/app/assets/stylesheets/maintenance.scss +0 -0
- data/lib/generators/binda/maintenance/templates/app/views/layouts/maintenance.html.erb +16 -0
- data/lib/generators/binda/maintenance/templates/config/initializers/maintenance.rb +1 -0
- data/lib/generators/binda/setup/setup_generator.rb +41 -30
- data/lib/tasks/add_default_helpers_class_task.rake +11 -0
- data/lib/tasks/add_video_feature_task.rake +15 -0
- data/lib/tasks/remove_orphan_fields_task.rake +16 -0
- data/lib/tasks/set_repeater_position_task.rake +13 -0
- data/lib/tasks/upgrade_to_v007_task.rake +72 -0
- data/lib/tasks/user_tasks.rake +14 -0
- data/vendor/assets/fonts/font-awesome/fa-brands-400.eot +0 -0
- data/vendor/assets/fonts/font-awesome/fa-brands-400.svg +978 -0
- data/vendor/assets/fonts/font-awesome/fa-brands-400.ttf +0 -0
- data/vendor/assets/fonts/font-awesome/fa-brands-400.woff +0 -0
- data/vendor/assets/fonts/font-awesome/fa-brands-400.woff2 +0 -0
- data/vendor/assets/fonts/font-awesome/fa-regular-400.eot +0 -0
- data/vendor/assets/fonts/font-awesome/fa-regular-400.svg +363 -0
- data/vendor/assets/fonts/font-awesome/fa-regular-400.ttf +0 -0
- data/vendor/assets/fonts/font-awesome/fa-regular-400.woff +0 -0
- data/vendor/assets/fonts/font-awesome/fa-regular-400.woff2 +0 -0
- data/vendor/assets/fonts/font-awesome/fa-solid-900.eot +0 -0
- data/vendor/assets/fonts/font-awesome/fa-solid-900.svg +1410 -0
- data/vendor/assets/fonts/font-awesome/fa-solid-900.ttf +0 -0
- data/vendor/assets/fonts/font-awesome/fa-solid-900.woff +0 -0
- data/vendor/assets/fonts/font-awesome/fa-solid-900.woff2 +0 -0
- data/vendor/assets/javascripts/GSAP/CSSPlugin.min.js +13 -0
- data/vendor/assets/javascripts/GSAP/EasePack.min.js +12 -0
- data/vendor/assets/javascripts/GSAP/ScrollToPlugin.min.js +12 -0
- data/vendor/assets/javascripts/GSAP/TweenLite.min.js +12 -0
- data/vendor/assets/javascripts/select2/i18n/af.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ar.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/az.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/bg.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/bs.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ca.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/cs.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/da.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/de.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/dsb.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/el.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/en.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/es.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/et.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/eu.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/fa.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/fi.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/fr.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/gl.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/he.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/hi.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/hr.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/hsb.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/hu.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/hy.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/id.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/is.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/it.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ja.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/km.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ko.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/lt.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/lv.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/mk.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ms.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/nb.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/nl.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/pl.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ps.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/pt-BR.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/pt.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ro.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/ru.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/sk.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/sl.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/sr-Cyrl.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/sr.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/sv.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/th.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/tr.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/uk.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/vi.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/zh-CN.js +3 -0
- data/vendor/assets/javascripts/select2/i18n/zh-TW.js +3 -0
- data/vendor/assets/javascripts/select2/select2.full.min.js +1 -0
- data/vendor/assets/javascripts/select2/select2.min.js +1 -0
- data/vendor/assets/javascripts/tether.min.js +1 -0
- data/vendor/assets/stylesheets/{bootstrap-select.css → bootstrap/bootstrap-select.css} +0 -0
- data/vendor/assets/stylesheets/font-awesome/_animated.scss +6 -20
- data/vendor/assets/stylesheets/font-awesome/_bordered-pulled.scss +6 -11
- data/vendor/assets/stylesheets/font-awesome/_core.scss +11 -7
- data/vendor/assets/stylesheets/font-awesome/_fixed-width.scss +1 -1
- data/vendor/assets/stylesheets/font-awesome/_icons.scss +785 -787
- data/vendor/assets/stylesheets/font-awesome/_larger.scss +16 -6
- data/vendor/assets/stylesheets/font-awesome/_list.scss +7 -8
- data/vendor/assets/stylesheets/font-awesome/_mixins.scss +17 -20
- data/vendor/assets/stylesheets/font-awesome/_rotated-flipped.scss +9 -6
- data/vendor/assets/stylesheets/font-awesome/_screen-reader.scss +2 -2
- data/vendor/assets/stylesheets/font-awesome/_stacked.scss +19 -8
- data/vendor/assets/stylesheets/font-awesome/_variables.scss +795 -795
- data/vendor/assets/stylesheets/font-awesome/fa-brands.scss +21 -0
- data/vendor/assets/stylesheets/font-awesome/fa-regular.scss +22 -0
- data/vendor/assets/stylesheets/font-awesome/fa-solid.scss +23 -0
- data/vendor/assets/stylesheets/font-awesome/fontawesome.scss +20 -0
- data/vendor/assets/stylesheets/select2/select2.min.css +1 -0
- metadata +278 -125
- data/app/assets/javascripts/binda/components/form_item_asset.js +0 -25
- data/app/assets/stylesheets/binda/application.css +0 -6
- data/app/assets/stylesheets/binda/components/form_body.scss +0 -2
- data/app/assets/stylesheets/binda/components/form_item_asset.scss +0 -20
- data/app/assets/stylesheets/binda/components/form_section.scss +0 -40
- data/app/assets/stylesheets/binda/components/sidebar.scss +0 -131
- data/app/assets/stylesheets/binda/layout/components_index.scss +0 -9
- data/app/assets/stylesheets/binda/layout/dashboard.scss +0 -7
- data/app/assets/stylesheets/binda/layout/users_sign_in.scss +0 -29
- data/app/controllers/binda/bindings_controller.rb +0 -62
- data/app/controllers/concerns/binda/default_helpers.rb +0 -226
- data/app/helpers/binda/bindings_helper.rb +0 -4
- data/app/models/binda/binda.rb +0 -7
- data/app/models/binda/binding.rb +0 -24
- data/app/views/binda/bindings/_form.html.erb +0 -32
- data/app/views/binda/bindings/edit.html.erb +0 -6
- data/app/views/binda/bindings/index.html.erb +0 -31
- data/app/views/binda/bindings/new.html.erb +0 -5
- data/app/views/binda/bindings/show.html.erb +0 -19
- data/app/views/binda/field_groups/index.html.erb +0 -34
- data/app/views/binda/fieldable/_form_item_asset.html.erb +0 -20
- data/app/views/users/sessions/new.html.erb +0 -27
- data/lib/tasks/binda.rake +0 -79
- data/vendor/assets/fonts/font-awesome/FontAwesome.otf +0 -0
- data/vendor/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
- data/vendor/assets/fonts/font-awesome/fontawesome-webfont.svg +0 -2671
- data/vendor/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
- data/vendor/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
- data/vendor/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
- data/vendor/assets/stylesheets/font-awesome/_path.scss +0 -15
- data/vendor/assets/stylesheets/font-awesome/font-awesome.scss +0 -18
@@ -1,5 +1,5 @@
|
|
1
1
|
module Binda
|
2
|
-
class
|
2
|
+
class Image::ImageUploader < CarrierWave::Uploader::Base
|
3
3
|
|
4
4
|
# Include RMagick or MiniMagick support:
|
5
5
|
# include CarrierWave::RMagick
|
@@ -47,14 +47,6 @@ module Binda
|
|
47
47
|
process resize_to_fit: [200, 200]
|
48
48
|
end
|
49
49
|
|
50
|
-
version :medium do
|
51
|
-
process resize_to_fit: [700, 700]
|
52
|
-
end
|
53
|
-
|
54
|
-
version :large do
|
55
|
-
process resize_to_fit: [1400, 1400]
|
56
|
-
end
|
57
|
-
|
58
50
|
# ================================
|
59
51
|
|
60
52
|
# Add a white list of extensions which are allowed to be uploaded.
|
@@ -72,5 +64,31 @@ module Binda
|
|
72
64
|
# "something.jpg" if original_filename
|
73
65
|
# end
|
74
66
|
|
67
|
+
|
68
|
+
# Generating medium and large version creates slowness if the uploaded file is a gif.
|
69
|
+
# Conditional versioning could be a solution, but you might want to do it in your
|
70
|
+
# application usign a initializer.
|
71
|
+
#
|
72
|
+
# @example
|
73
|
+
# require 'active_support/concern'
|
74
|
+
# module ComponentExtension
|
75
|
+
# extend ActiveSupport::Concern
|
76
|
+
# included do
|
77
|
+
# version :medium, if: :is_not_gif? do
|
78
|
+
# process resize_to_fit: [700, 700]
|
79
|
+
# end
|
80
|
+
#
|
81
|
+
# version :large, if: :is_not_gif? do
|
82
|
+
# process resize_to_fit: [1400, 1400]
|
83
|
+
# end
|
84
|
+
# end
|
85
|
+
# protected
|
86
|
+
# class_methods do
|
87
|
+
# def is_not_gif? new_file
|
88
|
+
# new_file.extension.downcase != 'gif'
|
89
|
+
# end
|
90
|
+
# end
|
91
|
+
# end
|
92
|
+
# ::Binda::Component.send(:include, ComponentExtension)
|
75
93
|
end
|
76
94
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Binda
|
2
|
+
class Video::VideoUploader < CarrierWave::Uploader::Base
|
3
|
+
|
4
|
+
# Include RMagick or MiniMagick support:
|
5
|
+
# include CarrierWave::RMagick
|
6
|
+
# include CarrierWave::MiniMagick
|
7
|
+
|
8
|
+
# Choose what kind of storage to use for this uploader:
|
9
|
+
# storage :file
|
10
|
+
# storage :fog
|
11
|
+
|
12
|
+
# Override the directory where uploaded files will be stored.
|
13
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
14
|
+
def store_dir
|
15
|
+
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
16
|
+
end
|
17
|
+
|
18
|
+
# Provide a default URL as a default if there hasn't been a file uploaded:
|
19
|
+
# def default_url(*args)
|
20
|
+
# # For Rails 3.1+ asset pipeline compatibility:
|
21
|
+
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
|
22
|
+
#
|
23
|
+
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
24
|
+
# end
|
25
|
+
|
26
|
+
# Process files as they are uploaded:
|
27
|
+
# process scale: [200, 300]
|
28
|
+
#
|
29
|
+
# def scale(width, height)
|
30
|
+
# # do something
|
31
|
+
# end
|
32
|
+
|
33
|
+
# Create different versions of your uploaded files:
|
34
|
+
# version :thumb do
|
35
|
+
# process resize_to_fit: [50, 50]
|
36
|
+
# end
|
37
|
+
|
38
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
39
|
+
# For images you might use something like this:
|
40
|
+
def extension_whitelist
|
41
|
+
%w(mp4 webm ogg)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Override the filename of the uploaded files:
|
45
|
+
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
46
|
+
# def filename
|
47
|
+
# "something.jpg" if original_filename
|
48
|
+
# end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -1,5 +1,10 @@
|
|
1
1
|
<% content_for :header do %>
|
2
|
-
<
|
2
|
+
<div class="main-header--buttons">
|
3
|
+
<% if @structure.has_preview %>
|
4
|
+
<%= link_to "<i class=\"fas fa-link\"></i>#{ t 'binda.preview' } #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, "#{binda.root_path}#{@structure.slug}/#{@instance.slug}", class: 'main-header--link b-btn b-btn-primary' %>
|
5
|
+
<% end %>
|
6
|
+
</div>
|
7
|
+
<p class="main-header--title"><%= "#{ t :edit }".capitalize %> <%= @structure.name.humanize.split.map(&:capitalize).join(' ') %></p>
|
3
8
|
<% end %>
|
4
9
|
|
5
10
|
<% content_for :content do %>
|
@@ -1,58 +1,59 @@
|
|
1
|
-
<div class="
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
<div class="standard-form">
|
2
|
+
|
3
|
+
<%= simple_form_for category, url: get_form_category_url do |f| %>
|
4
|
+
|
5
|
+
<%= f.error_notification %>
|
6
|
+
|
7
|
+
<% if f.object.errors.any? %>
|
8
|
+
<div class="standard-form--error-explanation">
|
9
|
+
<div class="alert alert-error">
|
10
|
+
<%= t('binda.standard_form_error_heading') %> <%= pluralize(f.object.errors.count, t("binda.standard_form_error")) %>.
|
11
|
+
</div>
|
9
12
|
<ul>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
+
<% f.object.errors.full_messages.each do |msg| %>
|
14
|
+
<li><%= msg %></li>
|
15
|
+
<% end %>
|
13
16
|
</ul>
|
14
17
|
</div>
|
15
18
|
<% end %>
|
16
19
|
|
17
|
-
<div class="
|
18
|
-
<div class="col-sm-8">
|
20
|
+
<div class="standard-form--body">
|
19
21
|
|
20
|
-
|
21
|
-
<div class="col-sm-12">
|
22
|
+
<div class="standard-form--container">
|
22
23
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
<div class="standard-form--header">
|
25
|
+
<p><%= "#{ t :details }".capitalize %></p>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="standard-form--fields">
|
27
29
|
|
28
|
-
|
29
|
-
<%= f.input :slug, as: :hidden %>
|
30
|
-
<% else %>
|
31
|
-
<h5><%= "#{ t :slug }".capitalize %></h5>
|
32
|
-
<%= f.input :slug, disabled: true, hint: "#{ t :slug_disable_hint }" %>
|
33
|
-
<% end %>
|
30
|
+
<%= f.input :name, label: "#{t('binda.title')}".capitalize %>
|
34
31
|
|
35
|
-
|
36
|
-
<%= f.input :
|
32
|
+
<% if f.object.slug.nil? %>
|
33
|
+
<%= f.input :slug, as: :hidden %>
|
34
|
+
<% else %>
|
35
|
+
<%= f.input :slug, disabled: true, hint: "#{ t :slug_disable_hint }" %>
|
36
|
+
<% end %>
|
37
37
|
|
38
|
-
|
39
|
-
<%= f.input :position %>
|
38
|
+
<%= f.input :description, label: "#{t('description')}".capitalize %>
|
40
39
|
|
41
|
-
</div>
|
42
40
|
</div>
|
43
41
|
|
44
42
|
</div>
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
</div>
|
53
|
-
</div>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="standard-form--container standard-form--sidebar">
|
47
|
+
|
48
|
+
<div class="standard-form--header">
|
49
|
+
<p><%= t(:setting).capitalize.pluralize %></p>
|
54
50
|
</div>
|
51
|
+
<div class="standard-form--main-actions">
|
52
|
+
<%= button_tag "<i class=\"fas fa-check\"></i>Save changes".html_safe, { class: 'b-btn b-btn-primary b-btn-settings', id: 'save' }%>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
</div>
|
56
|
+
|
55
57
|
<% end %>
|
56
58
|
|
57
59
|
</div>
|
58
|
-
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% content_for :header do %>
|
2
|
-
<
|
2
|
+
<p class="main-header--title"><%= t('binda.edit_category', { arg1: @category.name }) %></p>
|
3
3
|
<a href="<%= structure_categories_path %>" class="main-header--back"><span class="glyphicon glyphicon-list"></span> <%= t(:back_to_index).capitalize %></a>
|
4
4
|
<% end %>
|
5
5
|
|
@@ -1,34 +1,37 @@
|
|
1
1
|
<% content_for :header do %>
|
2
2
|
<div class="main-header--buttons">
|
3
|
-
<%= link_to "#{ t(:new).capitalize } #{ t(:category).capitalize }", new_structure_category_path, class: 'main-header--link btn btn-primary' %>
|
3
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i> #{ t(:new).capitalize } #{ t(:category).capitalize }".html_safe, new_structure_category_path, class: 'main-header--link b-btn b-btn-primary' %>
|
4
4
|
</div>
|
5
5
|
<h3><%= @structure.name.capitalize %> <%= t(:category).capitalize.pluralize %></h3>
|
6
6
|
<% end %>
|
7
7
|
|
8
8
|
<% content_for :content do %>
|
9
|
-
<div class="main-table--
|
10
|
-
<div class="col-sm-12">
|
9
|
+
<div class="main-table--container">
|
11
10
|
|
12
|
-
<table class="
|
11
|
+
<table class="standard-form--container">
|
13
12
|
<thead>
|
14
13
|
<tr>
|
15
|
-
<th
|
16
|
-
<th></th>
|
14
|
+
<th style="width: 70%;" class="standard-form--header"><%= t(:category).capitalize.pluralize %></th>
|
15
|
+
<th style="width: 30%;" class="standard-form--header"></th>
|
17
16
|
</tr>
|
18
17
|
</thead>
|
19
18
|
|
20
19
|
<tbody>
|
21
20
|
<% @categories.order( :position, :name ).each do |category| %>
|
22
|
-
<tr id="category_<%= category.id %>">
|
23
|
-
<td
|
24
|
-
<td
|
21
|
+
<tr class="main-table--hover" id="category_<%= category.id %>">
|
22
|
+
<td><%= link_to category.name, structure_category_path( @structure.slug, category) %></td>
|
23
|
+
<td class="main-table--actions">
|
24
|
+
<%= link_to "<i class=\"fas fa-pencil-alt\"></i> Edit".html_safe, edit_structure_category_path( @structure.slug, category) %>
|
25
|
+
<%= link_to "<i class=\"far fa-trash-alt\"></i> Destroy".html_safe, structure_category_path( @structure.slug, category ), method: :delete, data: { confirm: 'Are you sure?' }, class: 'text-destroy' %>
|
26
|
+
</td>
|
25
27
|
</tr>
|
26
28
|
<% end %>
|
27
29
|
<tbody>
|
28
30
|
</table>
|
29
|
-
|
30
|
-
|
31
|
-
|
31
|
+
|
32
|
+
<div class="b-btn--container">
|
33
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i>New #{ t(:category).capitalize }".html_safe, new_structure_category_path, class: 'main-header--link b-btn b-btn-primary' %>
|
34
|
+
</div>
|
35
|
+
|
32
36
|
</div>
|
33
|
-
</div>
|
34
37
|
<% end %>
|
@@ -1,11 +1,14 @@
|
|
1
1
|
<% content_for :header do %>
|
2
2
|
<div class="main-header--buttons">
|
3
|
-
|
3
|
+
<% if @structure.has_preview %>
|
4
|
+
<%= link_to "<i class=\"fas fa-link\"></i>#{ t 'binda.preview' } #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, "#{binda.root_path}#{@structure.slug}/#{@instance.slug}", class: 'main-header--link b-btn b-btn-primary' %>
|
5
|
+
<% end %>
|
6
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i>#{ t 'binda.new' } #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, new_structure_component_path , class: 'main-header--link b-btn b-btn-primary' %>
|
4
7
|
</div>
|
5
|
-
<
|
8
|
+
<p class="main-header--title"><%= "#{ t :edit }".capitalize %> <%= @structure.name.humanize.split.map(&:capitalize).join(' ') %></p>
|
6
9
|
<a href="<%= structure_components_path %>" class="main-header--back"><span class="glyphicon glyphicon-list"></span> <%= "#{ t :back_to_index }".capitalize %></a>
|
7
10
|
<% end %>
|
8
11
|
|
9
12
|
<% content_for :content do %>
|
10
13
|
<%= render 'binda/fieldable/form_body' %>
|
11
|
-
<% end %>
|
14
|
+
<% end %>
|
@@ -1,45 +1,86 @@
|
|
1
1
|
<% content_for :header do %>
|
2
2
|
<div class="main-header--buttons">
|
3
|
-
<%= link_to "New #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }", new_structure_component_path , class: 'main-header--link btn btn-primary' %>
|
3
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i> New #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, new_structure_component_path , class: 'main-header--link b-btn b-btn-primary' %>
|
4
|
+
<%= get_sort_index_link %>
|
4
5
|
</div>
|
5
|
-
<
|
6
|
+
<p class="main-header--title"><%= @structure.name.humanize.split.map(&:capitalize).join(' ').pluralize %></p>
|
6
7
|
<% end %>
|
7
8
|
|
8
|
-
<% content_for :content do %>
|
9
|
-
|
10
|
-
<div class="
|
9
|
+
<% content_for :content do %>
|
10
|
+
|
11
|
+
<div class="main-table--container">
|
12
|
+
|
13
|
+
<div class="pagination-links--bar">
|
14
|
+
<%= paginate @components %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<table class="standard-form--container" cellspacing="0">
|
11
18
|
|
12
|
-
<table class="table table-striped">
|
13
19
|
<thead>
|
14
|
-
|
15
|
-
<th class="
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
|
21
|
+
<th style="width: 50%", class="standard-form--header">
|
22
|
+
<a href="<%=
|
23
|
+
if params[:order] == 'LOWER(name) ASC'
|
24
|
+
structure_components_path([@structure], order:'LOWER(name) DESC')
|
25
|
+
else
|
26
|
+
structure_components_path([@structure], order:'LOWER(name) ASC')
|
27
|
+
end
|
28
|
+
%>" class="sort-link">
|
29
|
+
Title
|
30
|
+
<% if params[:order] == 'LOWER(name) ASC' %>
|
31
|
+
<i class="fa fa-sort-alpha-asc" aria-hidden="true"></i>
|
32
|
+
<% else %>
|
33
|
+
<i class="fa fa-sort-alpha-desc" aria-hidden="true"></i>
|
34
|
+
<% end %>
|
35
|
+
</a>
|
36
|
+
</th>
|
37
|
+
<th style="width: 20%", class="standard-form--header">
|
38
|
+
<a href="<%=
|
39
|
+
if params[:order] == 'publish_state ASC, LOWER(name) ASC'
|
40
|
+
structure_components_path([@structure], order:'publish_state DESC, LOWER(name) ASC')
|
41
|
+
else
|
42
|
+
structure_components_path([@structure], order:'publish_state ASC, LOWER(name) ASC')
|
43
|
+
end
|
44
|
+
%>" class="sort-link">
|
45
|
+
Publish state
|
46
|
+
<% if params[:order] == 'LOWER(name) ASC' %>
|
47
|
+
<i class="fa fa-sort-alpha-asc" aria-hidden="true"></i>
|
48
|
+
<% else %>
|
49
|
+
<i class="fa fa-sort-alpha-desc" aria-hidden="true"></i>
|
50
|
+
<% end %>
|
51
|
+
</a>
|
52
|
+
</th>
|
53
|
+
<th style="width: 30%", class="standard-form--header"><p style="float: right;">Actions</p></th>
|
54
|
+
|
20
55
|
</thead>
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
<tr id="component_<%= component.id %>">
|
25
|
-
<td><span class="sortable--handle"></span></td>
|
56
|
+
<tbody>
|
57
|
+
<% @components.each do |component| %>
|
58
|
+
<tr class="main-table--hover" id="component_<%= component.id %>">
|
26
59
|
<td><%= link_to component.name, structure_component_path( @structure.slug, component ) %></td>
|
27
60
|
<td><%= component.publish_state %></td>
|
28
|
-
<td>
|
29
|
-
<
|
30
|
-
|
31
|
-
<
|
32
|
-
|
61
|
+
<td class="main-table--actions">
|
62
|
+
<%= link_to "<i class=\"fas fa-pencil-alt\"></i> #{t('binda.edit').capitalize}".html_safe, edit_structure_component_path( @structure.slug, component ) %>
|
63
|
+
|
64
|
+
<%= link_to "<i class=\"far fa-trash-alt\"></i> #{t('binda.delete').capitalize}".html_safe, structure_component_path( @structure.slug, component.slug ),
|
65
|
+
method: :delete,
|
66
|
+
data: { confirm: 'Are you sure?' },
|
67
|
+
class: 'text-destroy' %>
|
33
68
|
</td>
|
34
69
|
</tr>
|
35
70
|
<% end %>
|
36
71
|
<tbody>
|
72
|
+
|
37
73
|
</table>
|
38
74
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
75
|
+
<div class="pagination-links--bar">
|
76
|
+
<%= paginate @components %>
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<div class="b-btn--container">
|
80
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i> New #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, new_structure_component_path, class: 'main-header--link b-btn b-btn-primary', action: "new" %>
|
81
|
+
<%= get_sort_index_link %>
|
82
|
+
</div>
|
83
|
+
|
84
|
+
</div>
|
85
|
+
|
45
86
|
<% end %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% content_for :header do %>
|
2
|
-
<
|
2
|
+
<p class="main-header--title"><%= t('binda.new_component',{ arg1: @structure.name.humanize.split.map(&:capitalize).join(' ') }) %></p>
|
3
3
|
<a href="<%= structure_components_path %>" class="main-header--back"><span class="glyphicon glyphicon-list"></span> <%= "#{ t :back_to_index }".capitalize %></a>
|
4
4
|
<% end %>
|
5
5
|
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<% content_for :header do %>
|
2
|
+
<div class="main-header--buttons">
|
3
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i> New #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, new_structure_component_path , class: 'main-header--link b-btn b-btn-primary' %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<p class="main-header--title"><%= t('binda.sort').capitalize %> <%= @structure.name.humanize.split.map(&:capitalize).join(' ').pluralize %></p>
|
7
|
+
<a href="<%= structure_components_path %>" class="main-header--back"><span class="glyphicon glyphicon-list"></span> <%= "#{ t :back_to_index }".capitalize %></a>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<% content_for :content do %>
|
11
|
+
<div class="sortable-warning sortable-warning--hidden">
|
12
|
+
<div class="sortable-warning--loader">
|
13
|
+
<span></span>
|
14
|
+
<span></span>
|
15
|
+
<span></span>
|
16
|
+
<span></span>
|
17
|
+
</div>
|
18
|
+
<p><%= t 'binda.sort_items_loader', { arg1: t('binda.components').downcase } %></p>
|
19
|
+
</div>
|
20
|
+
<div class="main-table--container">
|
21
|
+
|
22
|
+
<h5 class="text-muted"><%= t('binda.sort_index_hint', { arg1: @structure.name.humanize.split.join(' ').pluralize }).html_safe %></h5>
|
23
|
+
|
24
|
+
<table class="standard-form--container table-sort">
|
25
|
+
<thead>
|
26
|
+
<tr>
|
27
|
+
<th style="width: 50%;", class="standard-form--header">Title</th>
|
28
|
+
<th style="width: 50%;", class="standard-form--header">Publish state</th>
|
29
|
+
<th class="standard-form--header"></th>
|
30
|
+
</tr>
|
31
|
+
</thead>
|
32
|
+
<tbody id="<%= @structure.slug %>-components--sort-index" class="sortable" data-update-url="<%= structure_components_sort_path( @structure.slug ) %>">
|
33
|
+
<% @components.order( :position, :name ).each do |component| %>
|
34
|
+
<tr id="component_<%= component.id %>">
|
35
|
+
<td><%= link_to component.name, structure_component_path( @structure.slug, component ) %></td>
|
36
|
+
<td><%= component.publish_state %></td>
|
37
|
+
<td></td>
|
38
|
+
</tr>
|
39
|
+
<% end %>
|
40
|
+
<tbody>
|
41
|
+
</table>
|
42
|
+
|
43
|
+
<%= link_to "<i class=\"fa fa-plus\" aria-hidden=\"true\"></i> New #{ @structure.name.humanize.split.map(&:capitalize).join(' ') }".html_safe, new_structure_component_path, class: 'main-header--link b-btn b-btn-primary', action: "new" %>
|
44
|
+
|
45
|
+
</div>
|
46
|
+
<% end %>
|