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
@@ -12,22 +12,27 @@ $desktop: 960px;
|
|
12
12
|
// FROM BOOTSTRAP
|
13
13
|
// --------------
|
14
14
|
|
15
|
+
$color-black: #000;
|
16
|
+
$color-white: #FFF;
|
17
|
+
|
15
18
|
//== Colors
|
16
19
|
//
|
17
20
|
//## Gray and colors for use across Bootstrap.
|
18
21
|
|
19
|
-
$gray-
|
20
|
-
$gray-darker:
|
21
|
-
$gray-dark:
|
22
|
-
$gray:
|
23
|
-
$gray-light:
|
24
|
-
$gray-lighter:
|
22
|
+
$color-gray-darkest: rgb( 17, 17, 17 );
|
23
|
+
$color-gray-darker: rgb( 51, 51, 51 );
|
24
|
+
$color-gray-dark: rgb( 102, 102, 102 );
|
25
|
+
$color-gray: rgb( 128, 128, 128 );
|
26
|
+
$color-gray-light: rgb( 153, 153, 153 );
|
27
|
+
$color-gray-lighter: rgb( 193, 193, 193 );
|
28
|
+
$color-gray-lightest: rgb( 229, 229, 229 );
|
25
29
|
|
26
|
-
$color-primary:
|
27
|
-
$color-success:
|
28
|
-
$color-info:
|
29
|
-
$color-warning:
|
30
|
-
$color-danger:
|
30
|
+
$color-primary: #337ab7;
|
31
|
+
$color-success: #5cb85c;
|
32
|
+
$color-info: #5bc0de;
|
33
|
+
$color-warning: #f0ad4e;
|
34
|
+
$color-danger: #fc4242;
|
35
|
+
$color-danger-hover: darken( $color-danger, 20%);
|
31
36
|
|
32
37
|
|
33
38
|
//== Scaffolding
|
@@ -35,38 +40,38 @@ $color-danger: #d9534f !default;
|
|
35
40
|
//## Settings for some of the most global styles.
|
36
41
|
|
37
42
|
//** Background color for `<body>`.
|
38
|
-
$body-bg:
|
43
|
+
$body-bg: $color-gray-lightest;
|
39
44
|
//** Global text color on `<body>`.
|
40
|
-
$text-color: $gray-
|
45
|
+
$text-color: $color-gray-darker;
|
41
46
|
|
42
47
|
//** Global textual link color.
|
43
|
-
$link-color: $color-primary
|
48
|
+
$link-color: $color-primary;
|
44
49
|
//** Link hover color set via `darken()` function.
|
45
|
-
$link-hover-color: darken($link-color, 15%)
|
50
|
+
$link-hover-color: darken($link-color, 15%);
|
46
51
|
//** Link hover decoration.
|
47
|
-
$link-hover-decoration: underline
|
52
|
+
$link-hover-decoration: underline;
|
48
53
|
|
49
54
|
|
50
55
|
//== Typography
|
51
56
|
//
|
52
57
|
//## Font, line-height, and color for body text, headings, and more.
|
53
58
|
|
54
|
-
$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif
|
55
|
-
$font-family-serif: Georgia, "Times New Roman", Times, serif
|
59
|
+
$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
60
|
+
$font-family-serif: Georgia, "Times New Roman", Times, serif;
|
56
61
|
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
|
57
|
-
$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace
|
58
|
-
$font-family-base: $font-family-sans-serif
|
59
|
-
|
60
|
-
$font-size-base: 14px
|
61
|
-
$font-size-large: ceil(($font-size-base * 1.25))
|
62
|
-
$font-size-small: ceil(($font-size-base * 0.85))
|
63
|
-
|
64
|
-
$font-size-h1: floor(($font-size-base * 2.6))
|
65
|
-
$font-size-h2: floor(($font-size-base * 2.15))
|
66
|
-
$font-size-h3: ceil(($font-size-base * 1.7))
|
67
|
-
$font-size-h4: ceil(($font-size-base * 1.25))
|
68
|
-
$font-size-h5: $font-size-base
|
69
|
-
$font-size-h6: ceil(($font-size-base * 0.85))
|
62
|
+
$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
|
63
|
+
$font-family-base: $font-family-sans-serif;
|
64
|
+
|
65
|
+
$font-size-base: 14px;
|
66
|
+
$font-size-large: ceil(($font-size-base * 1.25)); // ~18px
|
67
|
+
$font-size-small: ceil(($font-size-base * 0.85)); // ~12px
|
68
|
+
|
69
|
+
$font-size-h1: floor(($font-size-base * 2.6)); // ~36px
|
70
|
+
$font-size-h2: floor(($font-size-base * 2.15)); // ~30px
|
71
|
+
$font-size-h3: ceil(($font-size-base * 1.7)); // ~24px
|
72
|
+
$font-size-h4: ceil(($font-size-base * 1.25)); // ~18px
|
73
|
+
$font-size-h5: $font-size-base;
|
74
|
+
$font-size-h6: ceil(($font-size-base * 0.85)); // ~12px
|
70
75
|
|
71
76
|
|
72
77
|
// MIXINS
|
@@ -2,7 +2,7 @@ require_dependency "binda/application_controller"
|
|
2
2
|
|
3
3
|
module Binda
|
4
4
|
class AssetsController < ApplicationController
|
5
|
-
before_action :set_asset, only: [:show, :edit, :update, :destroy]
|
5
|
+
before_action :set_asset, only: [:show, :edit, :update, :destroy, :remove_image]
|
6
6
|
|
7
7
|
# GET /assets
|
8
8
|
def index
|
@@ -2,8 +2,8 @@ require_dependency "binda/application_controller"
|
|
2
2
|
|
3
3
|
module Binda
|
4
4
|
class BoardsController < ApplicationController
|
5
|
-
before_action :set_board, only: [:edit, :update, :destroy, :new_repeater ]
|
6
|
-
before_action :set_structure, only: [:edit, :update, :destroy, :new_repeater ]
|
5
|
+
before_action :set_board, only: [:edit, :update, :destroy, :new_repeater, :upload ]
|
6
|
+
before_action :set_structure, only: [:edit, :update, :destroy, :new_repeater, :upload ]
|
7
7
|
|
8
8
|
include FieldableHelpers
|
9
9
|
|
@@ -18,7 +18,7 @@ module Binda
|
|
18
18
|
if @board.update(board_params)
|
19
19
|
redirect_to structure_board_path( @structure.slug, @board.slug ), notice: 'Setting was successfully updated.'
|
20
20
|
else
|
21
|
-
|
21
|
+
render :edit, flash: { alert: @board.errors }
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -48,6 +48,17 @@ module Binda
|
|
48
48
|
render action: :edit
|
49
49
|
end
|
50
50
|
|
51
|
+
def upload
|
52
|
+
if @board.update( upload_params(:board) )
|
53
|
+
respond_to do |format|
|
54
|
+
format.json { render json: upload_details }
|
55
|
+
end
|
56
|
+
else
|
57
|
+
logger.debug("The upload process has failed. #{ @board.errors }")
|
58
|
+
head :bad_request
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
51
62
|
private
|
52
63
|
# Use callbacks to share common setup or constraints between actions.
|
53
64
|
def set_board
|
@@ -64,7 +75,7 @@ module Binda
|
|
64
75
|
|
65
76
|
# Only allow a trusted parameter "white list" through.
|
66
77
|
def board_params
|
67
|
-
|
78
|
+
params.require(:board).permit(
|
68
79
|
:name, :slug, :position, :structure_id,
|
69
80
|
{ structure_attributes: [ :id ] },
|
70
81
|
*fieldable_params )
|
@@ -2,14 +2,18 @@ require_dependency "binda/application_controller"
|
|
2
2
|
|
3
3
|
module Binda
|
4
4
|
class ComponentsController < ApplicationController
|
5
|
+
|
5
6
|
before_action :set_structure
|
6
|
-
before_action :set_component, only: [:show, :edit, :update, :destroy, :new_repeater]
|
7
|
-
before_action :set_position, only: [:create]
|
7
|
+
before_action :set_component, only: [:show, :edit, :update, :destroy, :new_repeater, :upload]
|
8
8
|
|
9
9
|
include FieldableHelpers
|
10
10
|
|
11
11
|
def index
|
12
|
-
|
12
|
+
# if a specific order is requested otherwise order by position
|
13
|
+
avilable_orders = ['LOWER(name) ASC', 'LOWER(name) DESC', 'publish_state ASC, LOWER(name) ASC', 'publish_state DESC, LOWER(name) ASC']
|
14
|
+
params[:order] = avilable_orders[0] if params[:order].nil? || !avilable_orders.include?(params[:order])
|
15
|
+
order = params[:order]
|
16
|
+
@components = @structure.components.order(order).all.page params[:page]
|
13
17
|
end
|
14
18
|
|
15
19
|
def show
|
@@ -27,9 +31,9 @@ module Binda
|
|
27
31
|
|
28
32
|
def create
|
29
33
|
@component = @structure.components.build(component_params)
|
30
|
-
|
34
|
+
|
31
35
|
if @component.save
|
32
|
-
redirect_to structure_component_path( @structure.slug, @component.slug ), notice: "
|
36
|
+
redirect_to structure_component_path( @structure.slug, @component.slug ), notice: "#{ @structure.name } was successfully created."
|
33
37
|
else
|
34
38
|
redirect_to new_structure_component_path( @structure.slug ), flash: { alert: @component.errors }
|
35
39
|
end
|
@@ -37,15 +41,15 @@ module Binda
|
|
37
41
|
|
38
42
|
def update
|
39
43
|
if @component.update(component_params)
|
40
|
-
redirect_to structure_component_path( @structure.slug, @component.slug ), notice: "#{ @
|
44
|
+
redirect_to structure_component_path( @structure.slug, @component.slug ), notice: "#{ @structure.name.capitalize } was successfully updated."
|
41
45
|
else
|
42
|
-
|
46
|
+
render :edit, flash: { alert: @component.errors }
|
43
47
|
end
|
44
48
|
end
|
45
49
|
|
46
50
|
def destroy
|
47
51
|
@component.destroy
|
48
|
-
redirect_to structure_components_url( @structure.slug ), notice: "#{ @
|
52
|
+
redirect_to structure_components_url( @structure.slug ), notice: "#{ @structure.name.capitalize } was successfully destroyed."
|
49
53
|
end
|
50
54
|
|
51
55
|
def new_repeater
|
@@ -62,12 +66,27 @@ module Binda
|
|
62
66
|
head :ok
|
63
67
|
end
|
64
68
|
|
65
|
-
|
66
69
|
def sort
|
67
70
|
params[:component].each_with_index do |id, i|
|
68
|
-
Component.find( id ).
|
71
|
+
Component.find( id ).update_column('position', i + 1) # use update_column to skip callbacks (which leads to huge useless memory consumption)
|
72
|
+
end
|
73
|
+
render js: "$('##{params[:id]}').sortable('option', 'disabled', false); $('.popup-warning').addClass('popup-warning--hidden'); $('.sortable').removeClass('sortable--disabled')"
|
74
|
+
end
|
75
|
+
|
76
|
+
def sort_index
|
77
|
+
return redirect_to structure_components_path, alert: "There are too many #{@structure.name.pluralize}. It's not possible to sort more than #{Component.sort_limit} #{@structure.name.pluralize}." if @structure.components.length > Component.sort_limit
|
78
|
+
@components = @structure.components.order('position').all
|
79
|
+
end
|
80
|
+
|
81
|
+
def upload
|
82
|
+
if @component.update( upload_params(:component) )
|
83
|
+
respond_to do |format|
|
84
|
+
format.json { render json: upload_details }
|
85
|
+
end
|
86
|
+
else
|
87
|
+
logger.debug("The upload process has failed. #{ @component.errors.full_messages }")
|
88
|
+
head :bad_request
|
69
89
|
end
|
70
|
-
head :ok
|
71
90
|
end
|
72
91
|
|
73
92
|
private
|
@@ -92,10 +111,6 @@ module Binda
|
|
92
111
|
{categories_attributes: [ :id, :category_id ]}, *fieldable_params )
|
93
112
|
end
|
94
113
|
|
95
|
-
def set_position
|
96
|
-
@position = @structure.components.order(:position).pluck(:position).last.to_i + 1 unless @position.to_i > 0
|
97
|
-
end
|
98
|
-
|
99
114
|
end
|
100
115
|
end
|
101
116
|
|
@@ -6,7 +6,7 @@ module Binda
|
|
6
6
|
before_action :set_field_group, only: [:show, :edit, :update, :destroy]
|
7
7
|
|
8
8
|
def index
|
9
|
-
|
9
|
+
redirect_to structure_field_group_path( @structure.slug )
|
10
10
|
end
|
11
11
|
|
12
12
|
def show
|
@@ -32,11 +32,12 @@ module Binda
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def update
|
35
|
-
|
36
35
|
# Add nested classes
|
37
36
|
add_new_field_settings
|
38
37
|
add_new_choices
|
39
38
|
|
39
|
+
update_choices
|
40
|
+
|
40
41
|
# Update the other ones
|
41
42
|
if @field_group.update(field_group_params)
|
42
43
|
reset_field_settings_cache
|
@@ -80,11 +81,12 @@ module Binda
|
|
80
81
|
:description,
|
81
82
|
:field_type,
|
82
83
|
:position,
|
83
|
-
:required,
|
84
|
+
:required,
|
84
85
|
:default_text,
|
85
86
|
:ancestry,
|
86
87
|
:default_choice_id,
|
87
|
-
:allow_null,
|
88
|
+
:allow_null,
|
89
|
+
accepted_structure_ids: [],
|
88
90
|
choices: [],
|
89
91
|
choices_attributes:
|
90
92
|
[ :id,
|
@@ -152,5 +154,18 @@ module Binda
|
|
152
154
|
end
|
153
155
|
end
|
154
156
|
|
157
|
+
def update_choices
|
158
|
+
return if field_group_params[:field_settings_attributes].nil?
|
159
|
+
field_group_params[:field_settings_attributes].each do |_, field_setting_params|
|
160
|
+
next if field_setting_params[:choices_attributes].nil?
|
161
|
+
field_setting_params[:choices_attributes].each do |_, choice_params|
|
162
|
+
choice = Choice.find(choice_params[:id])
|
163
|
+
unless choice.update(choice_params)
|
164
|
+
return redirect_to edit_structure_field_group_path( @structure.slug, @field_group.slug ), flash: { error: choice.errors }
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
155
170
|
end
|
156
171
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require_dependency "binda/application_controller"
|
2
|
+
|
3
|
+
module Binda
|
4
|
+
class ImagesController < ApplicationController
|
5
|
+
before_action :set_image, only: [:show, :edit, :update, :destroy, :remove_image]
|
6
|
+
|
7
|
+
# GET /images
|
8
|
+
def index
|
9
|
+
@images = Image.all
|
10
|
+
end
|
11
|
+
|
12
|
+
# GET /images/1
|
13
|
+
def show
|
14
|
+
end
|
15
|
+
|
16
|
+
# GET /images/new
|
17
|
+
def new
|
18
|
+
@image = Image.new
|
19
|
+
end
|
20
|
+
|
21
|
+
# GET /images/1/edit
|
22
|
+
def edit
|
23
|
+
end
|
24
|
+
|
25
|
+
# POST /images
|
26
|
+
def create
|
27
|
+
@image = Image.new(image_params)
|
28
|
+
|
29
|
+
if @image.save
|
30
|
+
redirect_to image_path( @image.id ), notice: 'Image was successfully created.'
|
31
|
+
else
|
32
|
+
render :new
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# PATCH/PUT /images/1
|
37
|
+
def update
|
38
|
+
if @image.update(image_params)
|
39
|
+
redirect_to image_path( @image.id ), notice: 'Image was successfully updated.'
|
40
|
+
else
|
41
|
+
render :edit
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# DELETE /images/1
|
46
|
+
def destroy
|
47
|
+
@image.destroy
|
48
|
+
redirect_to images_url, notice: 'Image was successfully destroyed.'
|
49
|
+
end
|
50
|
+
|
51
|
+
def remove_image
|
52
|
+
@image.remove_image!
|
53
|
+
@image.save!
|
54
|
+
head :ok
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
# Use callbacks to share common setup or constraints between actions.
|
59
|
+
def set_image
|
60
|
+
@image = Image.find(params[:id])
|
61
|
+
end
|
62
|
+
|
63
|
+
# Only allow a trusted parameter "white list" through.
|
64
|
+
def image_params
|
65
|
+
params.require(:image).permit( :image, :name )
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -25,21 +25,12 @@ module Binda
|
|
25
25
|
# POST /repeaters
|
26
26
|
def create
|
27
27
|
@repeater = Repeater.new(repeater_params)
|
28
|
-
|
29
|
-
if @repeater.save
|
30
|
-
redirect_to @repeater, notice: 'Repeater was successfully created.'
|
31
|
-
else
|
32
|
-
render :new
|
33
|
-
end
|
28
|
+
@repeater.save
|
34
29
|
end
|
35
30
|
|
36
31
|
# PATCH/PUT /repeaters/1
|
37
32
|
def update
|
38
|
-
|
39
|
-
redirect_to @repeater, notice: 'Repeater was successfully updated.'
|
40
|
-
else
|
41
|
-
render :edit
|
42
|
-
end
|
33
|
+
@repeater.update(repeater_params)
|
43
34
|
end
|
44
35
|
|
45
36
|
# DELETE /repeaters/1
|
@@ -49,7 +40,7 @@ module Binda
|
|
49
40
|
if params['isAjax']
|
50
41
|
head :ok
|
51
42
|
else
|
52
|
-
redirect_to :back, notice: 'Field group was successfully destroyed.'
|
43
|
+
redirect_to :back, notice: 'Field group was successfully destroyed.'
|
53
44
|
end
|
54
45
|
end
|
55
46
|
|
@@ -64,6 +64,13 @@ module Binda
|
|
64
64
|
head :ok
|
65
65
|
end
|
66
66
|
|
67
|
+
def sort_index
|
68
|
+
@structures = Structure.order('position').all.page params[:page]
|
69
|
+
=begin
|
70
|
+
return redirect_to structure_components_path, alert: "There are too many #{@structure.name.pluralize}. It's not possible to sort more than #{Component.sort_limit} #{@structure.name.pluralize}." if @structure.components.length > Component.sort_limit
|
71
|
+
=end
|
72
|
+
end
|
73
|
+
|
67
74
|
private
|
68
75
|
# Use callbacks to share common setup or constraints between actions.
|
69
76
|
def set_structure
|
@@ -72,7 +79,7 @@ module Binda
|
|
72
79
|
|
73
80
|
# Only allow a trusted parameter "white list" through.
|
74
81
|
def structure_params
|
75
|
-
params.require(:structure).permit(:name, :slug, :position, :has_categories, :instance_type, field_groups_attributes: [ :id, :name, :structure_id, :slug ] )
|
82
|
+
params.require(:structure).permit(:name, :slug, :position, :has_categories, :has_preview, :instance_type, field_groups_attributes: [ :id, :name, :structure_id, :slug ] )
|
76
83
|
end
|
77
84
|
|
78
85
|
def new_params
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require_dependency "binda/application_controller"
|
2
|
+
|
3
|
+
module Binda
|
4
|
+
class VideosController < ApplicationController
|
5
|
+
before_action :set_video, only: [:show, :edit, :update, :destroy, :remove_video]
|
6
|
+
|
7
|
+
# GET /videos
|
8
|
+
def index
|
9
|
+
@videos = Video.all
|
10
|
+
end
|
11
|
+
|
12
|
+
# GET /videos/1
|
13
|
+
def show
|
14
|
+
end
|
15
|
+
|
16
|
+
# GET /videos/new
|
17
|
+
def new
|
18
|
+
@video = Video.new
|
19
|
+
end
|
20
|
+
|
21
|
+
# GET /videos/1/edit
|
22
|
+
def edit
|
23
|
+
end
|
24
|
+
|
25
|
+
# POST /videos
|
26
|
+
def create
|
27
|
+
@video = Video.new(video_params)
|
28
|
+
|
29
|
+
if @video.save
|
30
|
+
redirect_to video_path( @video.id ), notice: 'Video was successfully created.'
|
31
|
+
else
|
32
|
+
render :new
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# PATCH/PUT /videos/1
|
37
|
+
def update
|
38
|
+
if @video.update(video_params)
|
39
|
+
redirect_to video_path( @video.id ), notice: 'Video was successfully updated.'
|
40
|
+
else
|
41
|
+
render :edit
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# DELETE /videos/1
|
46
|
+
def destroy
|
47
|
+
@video.destroy
|
48
|
+
redirect_to videos_url, notice: 'Video was successfully destroyed.'
|
49
|
+
end
|
50
|
+
|
51
|
+
def remove_video
|
52
|
+
@video.remove_video!
|
53
|
+
@video.save!
|
54
|
+
render js: "$('#video-#{@video.id}').remove();"
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
# Use callbacks to share common setup or constraints between actions.
|
59
|
+
def set_video
|
60
|
+
@video = Video.find(params[:id])
|
61
|
+
end
|
62
|
+
|
63
|
+
# Only allow a trusted parameter "white list" through.
|
64
|
+
def video_params
|
65
|
+
params.require(:video).permit( :video, :name )
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|