qbrick 2.5.0.pre → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +69 -379
- data/Rakefile +4 -4
- data/app/assets/images/logo.png +0 -0
- data/app/assets/javascripts/{kuhsaft → qbrick}/application.js.coffee +1 -1
- data/app/assets/javascripts/{kuhsaft → qbrick}/cms/application.js.coffee.erb +40 -17
- data/app/assets/javascripts/{kuhsaft → qbrick}/views/read_more_view.js.coffee +0 -0
- data/app/assets/stylesheets/{kuhsaft → qbrick}/application.css.sass +0 -0
- data/app/assets/stylesheets/{kuhsaft → qbrick}/cms/application.css.sass +38 -1
- data/app/assets/stylesheets/{kuhsaft → qbrick}/modules/_text_brick.css.sass +1 -1
- data/app/controllers/{kuhsaft → qbrick}/api/pages_controller.rb +2 -2
- data/app/controllers/qbrick/cms/accounts_controller.rb +28 -0
- data/app/controllers/qbrick/cms/admins_controller.rb +79 -0
- data/app/controllers/{kuhsaft → qbrick}/cms/assets_controller.rb +9 -9
- data/app/controllers/qbrick/cms/backend_controller.rb +25 -0
- data/app/controllers/{kuhsaft → qbrick}/cms/bricks_controller.rb +16 -13
- data/app/controllers/{kuhsaft → qbrick}/cms/ckimages_controller.rb +6 -6
- data/app/controllers/qbrick/cms/pages_controller.rb +87 -0
- data/app/controllers/qbrick/cms/settings_collections_controller.rb +26 -0
- data/app/controllers/{kuhsaft → qbrick}/pages_controller.rb +10 -5
- data/app/controllers/{kuhsaft → qbrick}/sitemaps_controller.rb +3 -3
- data/app/helpers/cms_helper.rb +4 -4
- data/app/helpers/pages_helper.rb +18 -10
- data/app/helpers/{kuhsaft → qbrick}/admin_helper.rb +2 -2
- data/app/helpers/qbrick/cms/admin_helper.rb +73 -0
- data/app/helpers/{kuhsaft → qbrick}/cms/pages_helper.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/accordion_brick.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/accordion_item_brick.rb +1 -1
- data/app/models/qbrick/admin.rb +8 -0
- data/app/models/{kuhsaft → qbrick}/anchor_brick.rb +1 -1
- data/app/models/{kuhsaft → qbrick}/asset.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/asset_brick.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/brick.rb +11 -8
- data/app/models/{kuhsaft → qbrick}/brick_type.rb +1 -1
- data/app/models/{kuhsaft → qbrick}/brick_type_filter.rb +4 -4
- data/app/models/{kuhsaft → qbrick}/ckimage.rb +1 -1
- data/app/models/{kuhsaft → qbrick}/cms.rb +2 -2
- data/app/models/qbrick/cms_model.rb +25 -0
- data/app/models/{kuhsaft → qbrick}/column_brick.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/image_brick.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/image_size.rb +3 -3
- data/app/models/{kuhsaft → qbrick}/link_brick.rb +1 -1
- data/app/models/{kuhsaft → qbrick}/page.rb +78 -17
- data/app/models/{kuhsaft → qbrick}/page_type.rb +3 -2
- data/app/models/{kuhsaft → qbrick}/partition.rb +1 -1
- data/app/models/{kuhsaft → qbrick}/placeholder_brick.rb +4 -4
- data/app/models/{kuhsaft → qbrick}/publish_state.rb +1 -1
- data/app/models/qbrick/setting.rb +13 -0
- data/app/models/qbrick/settings_collection.rb +10 -0
- data/app/models/{kuhsaft → qbrick}/slider_brick.rb +3 -3
- data/app/models/{kuhsaft → qbrick}/text_brick.rb +1 -1
- data/app/models/{kuhsaft → qbrick}/two_column_brick.rb +2 -2
- data/app/models/{kuhsaft → qbrick}/video_brick.rb +1 -1
- data/app/uploaders/qbrick/asset_brick_asset_uploader.rb +26 -0
- data/app/uploaders/{kuhsaft → qbrick}/asset_uploader.rb +3 -2
- data/app/uploaders/{kuhsaft → qbrick}/ckimage_uploader.rb +1 -1
- data/app/uploaders/{kuhsaft → qbrick}/image_brick_image_uploader.rb +4 -4
- data/app/views/devise/confirmations/new.html.haml +10 -0
- data/app/views/devise/mailer/confirmation_instructions.html.haml +4 -0
- data/app/views/devise/mailer/reset_password_instructions.html.haml +6 -0
- data/app/views/devise/mailer/unlock_instructions.html.haml +5 -0
- data/app/views/devise/passwords/edit.html.haml +10 -0
- data/app/views/devise/passwords/new.html.haml +8 -0
- data/app/views/devise/registrations/edit.html.haml +9 -0
- data/app/views/devise/registrations/new.html.haml +21 -0
- data/app/views/devise/sessions/new.html.haml +12 -0
- data/app/views/devise/shared/_links.html.haml +19 -0
- data/app/views/devise/unlocks/new.html.haml +10 -0
- data/app/views/layouts/devise.html.haml +16 -0
- data/app/views/layouts/{kuhsaft → qbrick}/cms/application.html.haml +4 -5
- data/app/views/layouts/qbrick/cms/ckimages.html.haml +18 -0
- data/app/views/{kuhsaft → qbrick}/accordion_bricks/_accordion_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/accordion_bricks/accordion_brick/_edit.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/accordion_item_bricks/_accordion_item_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/accordion_item_bricks/accordion_item_brick/_edit.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/anchor_bricks/_anchor_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/anchor_bricks/anchor_brick/_edit.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/asset_bricks/_asset_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/asset_bricks/asset_brick/_edit.html.haml +1 -1
- data/app/views/qbrick/cms/accounts/edit.html.haml +12 -0
- data/app/views/qbrick/cms/admins/_form.html.haml +10 -0
- data/app/views/qbrick/cms/admins/edit.html.haml +5 -0
- data/app/views/qbrick/cms/admins/index.html.haml +26 -0
- data/app/views/qbrick/cms/admins/new.html.haml +5 -0
- data/app/views/{kuhsaft → qbrick}/cms/assets/_form.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/assets/_list.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/assets/edit.html.haml +0 -0
- data/app/views/qbrick/cms/assets/index.html.haml +3 -0
- data/app/views/{kuhsaft → qbrick}/cms/assets/new.html.haml +0 -0
- data/app/views/qbrick/cms/backend/_brick_clone_menu.html.haml +16 -0
- data/app/views/qbrick/cms/backend/_brick_type_dropdown.html.haml +15 -0
- data/app/views/{kuhsaft/cms/admin → qbrick/cms/backend}/_empty_state.html.haml +0 -0
- data/app/views/{kuhsaft/cms/admin → qbrick/cms/backend}/_flash.html.haml +0 -0
- data/app/views/qbrick/cms/backend/_main_navigation.html.haml +20 -0
- data/app/views/{kuhsaft → qbrick}/cms/bricks/_brick_header.html.haml +4 -4
- data/app/views/{kuhsaft → qbrick}/cms/bricks/_brick_item.html.haml +6 -5
- data/app/views/{kuhsaft → qbrick}/cms/bricks/_brick_list.html.haml +1 -1
- data/app/views/{kuhsaft → qbrick}/cms/bricks/_new.html.haml +3 -3
- data/app/views/{kuhsaft → qbrick}/cms/bricks/_sort_form.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/bricks/create.js.erb +1 -1
- data/app/views/{kuhsaft → qbrick}/cms/bricks/destroy.js.erb +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/bricks/new.js.erb +1 -1
- data/app/views/{kuhsaft → qbrick}/cms/bricks/update.js.erb +1 -1
- data/app/views/{kuhsaft → qbrick}/cms/ckimages/create.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/ckimages/destroy.js.erb +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/ckimages/index.html.haml +1 -1
- data/app/views/{kuhsaft → qbrick}/cms/pages/_branch.html.haml +4 -4
- data/app/views/{kuhsaft → qbrick}/cms/pages/_form.html.haml +15 -6
- data/app/views/qbrick/cms/pages/_mirror_modal.html.haml +52 -0
- data/app/views/qbrick/cms/pages/edit.html.haml +16 -0
- data/app/views/{kuhsaft → qbrick}/cms/pages/index.html.haml +1 -1
- data/app/views/qbrick/cms/pages/mirror.js.haml +5 -0
- data/app/views/qbrick/cms/pages/new.html.haml +1 -0
- data/app/views/{kuhsaft → qbrick}/cms/pages/show.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/cms/pages/sort.js.erb +0 -0
- data/app/views/qbrick/cms/settings_collections/_form.html.haml +8 -0
- data/app/views/qbrick/cms/settings_collections/index.html.haml +6 -0
- data/app/views/{kuhsaft → qbrick}/column_bricks/_column_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/column_bricks/column_brick/_edit.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/image_bricks/_image_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/image_bricks/image_brick/_edit.html.haml +1 -1
- data/app/views/{kuhsaft → qbrick}/link_bricks/_link_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/link_bricks/link_brick/_edit.html.haml +1 -1
- data/app/views/{kuhsaft → qbrick}/pages/index.html.haml +2 -2
- data/app/views/{kuhsaft → qbrick}/pages/show.html.haml +2 -0
- data/app/views/{kuhsaft → qbrick}/placeholder_bricks/_placeholder_brick.html.haml +0 -0
- data/app/views/qbrick/placeholder_bricks/placeholder_brick/_edit.html.haml +1 -0
- data/app/views/{kuhsaft → qbrick}/search/_form.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/search/_results.html.haml +2 -2
- data/app/views/{kuhsaft → qbrick}/search/_results_entry.html.haml +1 -1
- data/app/views/{kuhsaft → qbrick}/sitemaps/index.xml.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/slider_bricks/_slider_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/slider_bricks/slider_brick/_edit.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/text_bricks/_text_brick.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/text_bricks/text_brick/_edit.html.haml +0 -0
- data/app/views/{kuhsaft → qbrick}/two_column_bricks/_two_column_brick.html.haml +1 -1
- data/app/views/qbrick/two_column_bricks/two_column_brick/_childs.html.haml +5 -0
- data/app/views/qbrick/two_column_bricks/two_column_brick/_edit.html.haml +1 -0
- data/app/views/{kuhsaft → qbrick}/video_bricks/_video_brick.html.haml +2 -2
- data/app/views/{kuhsaft → qbrick}/video_bricks/video_brick/_edit.html.haml +1 -1
- data/config/initializers/devise.rb +259 -0
- data/config/locales/cms.de.yml +11 -0
- data/config/locales/cms.en.yml +11 -0
- data/config/locales/devise.en.yml +60 -0
- data/config/locales/models/qbrick/accordion_brick/de.yml +4 -0
- data/config/locales/models/qbrick/accordion_brick/en.yml +4 -0
- data/config/locales/models/qbrick/accordion_item_brick/de.yml +7 -0
- data/config/locales/models/qbrick/accordion_item_brick/en.yml +7 -0
- data/config/locales/models/qbrick/admin/de.yml +13 -0
- data/config/locales/models/qbrick/admin/en.yml +13 -0
- data/config/locales/models/{kuhsaft → qbrick}/anchor_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/anchor_brick/en.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/asset_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/asset_brick/en.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/brick/de.yml +1 -1
- data/config/locales/models/{kuhsaft → qbrick}/brick/en.yml +1 -1
- data/config/locales/models/qbrick/column_brick/de.yml +4 -0
- data/config/locales/models/qbrick/column_brick/en.yml +4 -0
- data/config/locales/models/{kuhsaft → qbrick}/image_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/image_brick/en.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/image_size/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/image_size/en.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/link_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/link_brick/en.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/page/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/page/en.yml +3 -2
- data/config/locales/models/{kuhsaft → qbrick}/placeholder_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/placeholder_brick/en.yml +2 -2
- data/config/locales/models/qbrick/slider_brick/de.yml +4 -0
- data/config/locales/models/qbrick/slider_brick/en.yml +4 -0
- data/config/locales/models/{kuhsaft → qbrick}/text_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/text_brick/en.yml +2 -2
- data/config/locales/models/qbrick/two_column_brick/de.yml +7 -0
- data/config/locales/models/qbrick/two_column_brick/en.yml +7 -0
- data/config/locales/models/{kuhsaft → qbrick}/video_brick/de.yml +2 -2
- data/config/locales/models/{kuhsaft → qbrick}/video_brick/en.yml +2 -2
- data/config/locales/views/qbrick/cms/admin/de.yml +36 -0
- data/config/locales/views/{kuhsaft → qbrick}/cms/admin/en.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/cms/bricks/de.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/cms/bricks/en.yml +1 -1
- data/config/locales/views/qbrick/cms/navigation.yml +8 -0
- data/config/locales/views/{kuhsaft → qbrick}/cms/pages/de.yml +14 -1
- data/config/locales/views/{kuhsaft → qbrick}/cms/pages/en.yml +1 -1
- data/config/locales/views/qbrick/cms/settings_collection/de.yml +14 -0
- data/config/locales/views/qbrick/cms/settings_collection/en.yml +14 -0
- data/config/locales/views/{kuhsaft → qbrick}/image_brick/de.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/image_brick/en.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/search/de.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/search/en.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/text_brick/de.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/text_brick/en.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/video_brick/de.yml +1 -1
- data/config/locales/views/{kuhsaft → qbrick}/video_brick/en.yml +1 -1
- data/config/routes.rb +14 -2
- data/db/migrate/{01_create_kuhsaft_pages.rb → 01_create_qbrick_pages.rb} +5 -5
- data/db/migrate/{02_create_kuhsaft_bricks.rb → 02_create_qbrick_bricks.rb} +3 -3
- data/db/migrate/03_create_qbrick_brick_types.rb +12 -0
- data/db/migrate/04_create_qbrick_assets.rb +10 -0
- data/db/migrate/05_remove_cms_admin.rb +3 -3
- data/db/migrate/06_add_template_name_to_qbrick_bricks.rb +7 -0
- data/db/migrate/07_add_default_value_to_brick_type_enabled.rb +2 -2
- data/db/migrate/08_add_display_styles_to_bricks.rb +1 -1
- data/db/migrate/09_add_additional_fields_to_qbrick_bricks.rb +6 -0
- data/db/migrate/10_add_redirect_url_to_qbrick_pages.rb +7 -0
- data/db/migrate/11_update_url_and_redirect_url_value.rb +2 -2
- data/db/migrate/12_regenerate_fulltext.rb +1 -1
- data/db/migrate/13_add_page_title_to_pages.rb +1 -1
- data/db/migrate/14_move_qbrick_assets.rb +22 -0
- data/db/migrate/15_add_alt_text_to_bricks.rb +1 -1
- data/db/migrate/16_update_default_value_for_page_type.rb +2 -2
- data/db/migrate/17_set_page_type_to_content_for_empty_fields.rb +2 -2
- data/db/migrate/18_add_identifier_to_qbrick_pages.rb +6 -0
- data/db/migrate/19_add_col_count_to_bricks.rb +1 -1
- data/db/migrate/20_create_qbrick_ckimages.rb +9 -0
- data/db/migrate/21_add_google_verification_key_to_qbrick_pages.rb +5 -0
- data/db/migrate/22_create_settings.rb +15 -0
- data/db/migrate/22_create_settings_collections.rb +11 -0
- data/db/migrate/23_add_metadata_to_asset.rb +6 -0
- data/db/migrate/23_devise_create_qbrick_admins.rb +42 -0
- data/db/seeds.rb +36 -13
- data/lib/generators/{kuhsaft → qbrick}/assets/install_generator.rb +5 -5
- data/lib/generators/qbrick/custom_model_generator.rb +117 -0
- data/lib/generators/{kuhsaft → qbrick}/translations/add_generator.rb +4 -4
- data/lib/qbrick.rb +24 -0
- data/lib/{kuhsaft → qbrick}/brick_list.rb +3 -3
- data/lib/{kuhsaft → qbrick}/engine.rb +5 -5
- data/lib/{kuhsaft → qbrick}/gridded.rb +1 -1
- data/lib/{kuhsaft → qbrick}/image_uploader_mounting.rb +2 -2
- data/lib/{kuhsaft → qbrick}/orderable.rb +1 -1
- data/lib/{kuhsaft → qbrick}/page_tree.rb +1 -1
- data/lib/{kuhsaft → qbrick}/partial_extractor.rb +1 -1
- data/lib/{kuhsaft → qbrick}/searchable.rb +5 -3
- data/lib/{kuhsaft → qbrick}/touch_placeholders.rb +4 -4
- data/lib/{kuhsaft → qbrick}/translatable.rb +1 -1
- data/lib/qbrick/version.rb +3 -0
- data/lib/tasks/{kuhsaft_tasks.rake → qbrick_tasks.rake} +5 -5
- data/lib/templates/{kuhsaft → qbrick}/assets/ck-config.js.coffee +0 -0
- data/lib/templates/{kuhsaft → qbrick}/assets/customizations.css.sass +0 -0
- data/lib/templates/{kuhsaft → qbrick}/assets/customizations.js.coffee +0 -0
- data/lib/templates/qbrick/custom_model_generator/base_controller.rb +17 -0
- data/lib/templates/qbrick/custom_model_generator/inherited_views/base/_form.html.haml +12 -0
- data/lib/templates/qbrick/custom_model_generator/inherited_views/base/edit.html.haml +5 -0
- data/lib/templates/qbrick/custom_model_generator/inherited_views/base/index.html.haml +28 -0
- data/lib/templates/qbrick/custom_model_generator/inherited_views/base/new.html.haml +5 -0
- data/lib/templates/qbrick/custom_model_generator/translations/qbrick_base.yml +11 -0
- data/lib/templates/qbrick/custom_model_generator/translations/resource.yml.erb +14 -0
- data/lib/templates/qbrick/translations/add_translation.erb +8 -0
- data/spec/command_wrapper_helper.rb +21 -0
- data/spec/controllers/{kuhsaft → qbrick}/api/pages_controller_spec.rb +5 -5
- data/spec/controllers/qbrick/cms/pages_controller_spec.rb +61 -0
- data/spec/controllers/{kuhsaft → qbrick}/pages_controller_spec.rb +11 -13
- data/spec/controllers/{kuhsaft → qbrick}/sitemaps_controller_spec.rb +2 -2
- data/spec/dummy/app/assets/javascripts/{kuhsaft → qbrick}/cms/ck-config.js.coffee +0 -0
- data/spec/dummy/app/assets/javascripts/{kuhsaft → qbrick}/cms/customizations.js.coffee +0 -0
- data/spec/dummy/app/assets/stylesheets/{kuhsaft → qbrick}/cms/customizations.css.sass +0 -0
- data/spec/dummy/app/controllers/application_controller.rb +1 -1
- data/spec/dummy/config/application.rb +3 -2
- data/spec/dummy/config/database.yml +2 -2
- data/spec/dummy/config/environments/production.rb +2 -2
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/config/initializers/{kuhsaft.rb → qbrick.rb} +1 -1
- data/spec/dummy/config/routes.rb +4 -1
- data/spec/factories.rb +24 -9
- data/spec/features/administrator_management_spec.rb +70 -0
- data/spec/features/cms_pages_spec.rb +15 -11
- data/spec/features/search_spec.rb +15 -15
- data/spec/features_helper.rb +36 -0
- data/spec/generators/custom_model_generator_spec.rb +83 -0
- data/spec/helpers/{kuhsaft → qbrick}/cms/admin_helper_spec.rb +5 -5
- data/spec/helpers/{kuhsaft → qbrick}/cms/pages_helper_spec.rb +6 -6
- data/spec/helpers/{kuhsaft → qbrick}/pages_helper_spec.rb +4 -5
- data/spec/lib/brick_list_spec.rb +12 -11
- data/spec/lib/engine_spec.rb +5 -9
- data/spec/lib/gridded_spec.rb +4 -5
- data/spec/lib/image_uploader_mounting_spec.rb +3 -4
- data/spec/lib/page_tree_spec.rb +5 -5
- data/spec/lib/searchable_spec.rb +7 -8
- data/spec/lib/touch_placeholders_spec.rb +4 -5
- data/spec/lib/translatable_spec.rb +20 -20
- data/spec/models/accordion_brick_spec.rb +7 -8
- data/spec/models/accordion_item_brick_spec.rb +8 -9
- data/spec/models/anchor_brick_spec.rb +5 -6
- data/spec/models/asset_brick_spec.rb +8 -9
- data/spec/models/asset_spec.rb +9 -11
- data/spec/models/brick_spec.rb +34 -34
- data/spec/models/brick_type_filter_spec.rb +14 -14
- data/spec/models/column_brick_spec.rb +6 -7
- data/spec/models/image_brick_spec.rb +9 -10
- data/spec/models/image_size_spec.rb +8 -8
- data/spec/models/link_brick_spec.rb +9 -10
- data/spec/models/page_spec.rb +113 -73
- data/spec/models/placeholder_brick_spec.rb +12 -13
- data/spec/models/publish_state_spec.rb +7 -7
- data/spec/models/setting_spec.rb +28 -0
- data/spec/models/slider_brick_spec.rb +5 -6
- data/spec/models/text_brick_spec.rb +5 -5
- data/spec/models/two_column_brick_spec.rb +14 -15
- data/spec/models/video_brick_spec.rb +5 -6
- data/spec/postgres_helper.rb +66 -0
- data/spec/{kuhsaft_spec.rb → qbrick_spec.rb} +2 -2
- data/spec/spec_helper.rb +23 -10
- data/spec/support/{kuhsaft_spec_helper.rb → qbrick_spec_helper.rb} +1 -1
- data/spec/support/write_expectation.rb +2 -2
- data/spec/views/{kuhsaft → qbrick}/sitemaps/index.xml.haml_spec.rb +3 -3
- metadata +451 -330
- data/app/controllers/kuhsaft/cms/admin_controller.rb +0 -18
- data/app/controllers/kuhsaft/cms/pages_controller.rb +0 -71
- data/app/helpers/kuhsaft/cms/admin_helper.rb +0 -21
- data/app/uploaders/kuhsaft/asset_brick_asset_uploader.rb +0 -43
- data/app/views/kuhsaft/cms/admin/_brick_type_dropdown.html.haml +0 -14
- data/app/views/kuhsaft/cms/admin/_content_language_switch.html.haml +0 -7
- data/app/views/kuhsaft/cms/admin/_main_navigation.html.haml +0 -6
- data/app/views/kuhsaft/cms/assets/index.html.haml +0 -3
- data/app/views/kuhsaft/cms/pages/edit.html.haml +0 -16
- data/app/views/kuhsaft/cms/pages/new.html.haml +0 -1
- data/app/views/kuhsaft/placeholder_bricks/placeholder_brick/_edit.html.haml +0 -1
- data/app/views/kuhsaft/two_column_bricks/two_column_brick/_childs.html.haml +0 -5
- data/app/views/kuhsaft/two_column_bricks/two_column_brick/_edit.html.haml +0 -1
- data/app/views/layouts/kuhsaft/cms/ckimages.html.haml +0 -18
- data/config/locales/models/kuhsaft/accordion_brick/de.yml +0 -4
- data/config/locales/models/kuhsaft/accordion_brick/en.yml +0 -4
- data/config/locales/models/kuhsaft/accordion_item_brick/de.yml +0 -7
- data/config/locales/models/kuhsaft/accordion_item_brick/en.yml +0 -7
- data/config/locales/models/kuhsaft/column_brick/de.yml +0 -4
- data/config/locales/models/kuhsaft/column_brick/en.yml +0 -4
- data/config/locales/models/kuhsaft/slider_brick/de.yml +0 -4
- data/config/locales/models/kuhsaft/slider_brick/en.yml +0 -4
- data/config/locales/models/kuhsaft/two_column_brick/de.yml +0 -7
- data/config/locales/models/kuhsaft/two_column_brick/en.yml +0 -7
- data/config/locales/views/kuhsaft/cms/admin/de.yml +0 -13
- data/db/migrate/03_create_kuhsaft_brick_types.rb +0 -12
- data/db/migrate/04_create_kuhsaft_assets.rb +0 -10
- data/db/migrate/06_add_template_name_to_kuhsaft_bricks.rb +0 -7
- data/db/migrate/09_add_additional_fields_to_kuhsaft_bricks.rb +0 -6
- data/db/migrate/10_add_redirect_url_to_kuhsaft_pages.rb +0 -7
- data/db/migrate/14_move_kuhsaft_assets.rb +0 -22
- data/db/migrate/18_add_identifier_to_kuhsaft_pages.rb +0 -6
- data/db/migrate/20_create_kuhsaft_ckimages.rb +0 -9
- data/lib/kuhsaft.rb +0 -22
- data/lib/kuhsaft/version.rb +0 -3
- data/lib/templates/kuhsaft/translations/add_translation.erb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbc6383e5dcb546e55e7bb7ee0031c30fe1444a1
|
4
|
+
data.tar.gz: df58035ffe10022dd61d3b3125428cb2d7d9e37e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5b3d0e6dc9aecc3ab98fca0292822f41e26cdde76f34a28f16522164bc7fb850f66f2c9c027ca915223aadeb2f763808316b0901a4b794b07234690c499f2c9
|
7
|
+
data.tar.gz: aac7dffced31342c8a6fd4afded9f15eeb5dfb874138840ec0fa4197734b796c887c4d41700e70e0dd720d0031eb34bf64cedd1642e6a507c79b5cac87337d77
|
data/README.md
CHANGED
@@ -1,423 +1,113 @@
|
|
1
|
-
[![Build Status](https://travis-ci.org/screenconcept/
|
2
|
-
[![Code Climate](https://codeclimate.com/github/screenconcept/
|
3
|
-
[![Gem Version](https://badge.fury.io/rb/
|
1
|
+
[![Build Status](https://travis-ci.org/screenconcept/qbrick.png)](https://travis-ci.org/screenconcept/qbrick)
|
2
|
+
[![Code Climate](https://codeclimate.com/github/screenconcept/qbrick.png)](https://codeclimate.com/github/screenconcept/qbrick)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/qbrick.png)](http://badge.fury.io/rb/qbrick)
|
4
4
|
|
5
|
-
|
5
|
+
![qBrick
|
6
|
+
logo](https://raw.githubusercontent.com/wiki/screenconcept/qbrick/logo.png)
|
6
7
|
|
7
|
-
|
8
|
+
# qBrick - The Ruby on Rails CMS you want
|
8
9
|
|
9
|
-
|
10
|
-
fiddling with unusable content management sytems. We are trying hard to make a
|
11
|
-
minimalistic and developer friendly CMS. Our goal is to provide a system for
|
12
|
-
ourselves and our customers that makes the of-the-shelf website project a
|
13
|
-
hasslefree thing. On one side easy to set up, integrate and customize (good for
|
14
|
-
devs) on the other hand it should be easily usable by anyone.
|
10
|
+
*Formerly known as: Kuhsaft*
|
15
11
|
|
16
|
-
|
12
|
+
**qBrick is currently undergoing rapid changes as we are ramping up for
|
13
|
+
our first official release under the new name. Until 2.5 is out, expect
|
14
|
+
things to break.**
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
qBrick started as a side project of the Screen Concept team as we got
|
17
|
+
tired of fiddling with unusable content management systems. By following
|
18
|
+
common rails practices and not being to opinionated, qBirck aims to be a
|
19
|
+
plug and play CMS Engine that does not stand in your way or dictates how you
|
20
|
+
have to build your Rails application, while still providing some
|
21
|
+
sensible defaults and the basic functionality you would expect form a
|
22
|
+
CMS system.
|
21
23
|
|
22
|
-
#
|
24
|
+
# Dependencies
|
23
25
|
|
24
|
-
|
25
|
-
|
26
|
-
* A Rails 4 app to be integrated into
|
26
|
+
* A Rails 4 application
|
27
27
|
* ImageMagick
|
28
28
|
* An ActiveRecord compatible DB
|
29
29
|
|
30
30
|
# Installation
|
31
31
|
|
32
|
-
Add
|
33
|
-
|
34
|
-
gem 'kuhsaft'
|
32
|
+
Add it to your Gemfile:
|
35
33
|
|
36
|
-
|
34
|
+
```ruby
|
35
|
+
gem 'qbrick', '2.5.0.pre'
|
36
|
+
```
|
37
37
|
|
38
|
-
|
38
|
+
Run the following command to install it:
|
39
39
|
|
40
|
-
|
40
|
+
```console
|
41
|
+
bundle install
|
42
|
+
```
|
41
43
|
|
42
44
|
Then install the assets and the migrations and run them:
|
43
45
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
Mount the kuhsaft engine in your routing file:
|
52
|
-
|
53
|
-
MyApp::Application.routes.draw do
|
54
|
-
# add your app routes here
|
55
|
-
mount Kuhsaft::Engine => "/"
|
56
|
-
end
|
46
|
+
```console
|
47
|
+
rake qbrick:install:migrations
|
48
|
+
rake db:migrate
|
49
|
+
rake db:seed
|
50
|
+
rails generate qbrick:assets:install
|
51
|
+
```
|
57
52
|
|
58
|
-
Load the
|
53
|
+
Load the Qbrick assets into your app, so you have working grids, widgets etc:
|
59
54
|
|
60
|
-
|
61
|
-
|
55
|
+
```sass
|
56
|
+
# application.css.sass
|
57
|
+
@import 'qbrick/application'
|
58
|
+
```
|
62
59
|
|
63
|
-
|
64
|
-
|
60
|
+
```coffee
|
61
|
+
# application.js.coffee
|
62
|
+
//= require 'qbrick/application'
|
63
|
+
```
|
65
64
|
|
66
|
-
|
65
|
+
Also, you need to define the image sizes for the image brick or use
|
67
66
|
the defaults:
|
68
67
|
|
69
|
-
# your_app/config/initializers/kuhsaft.rb
|
70
|
-
Rails.application.config.to_prepare do
|
71
|
-
Kuhsaft::Engine.configure do
|
72
|
-
config.image_sizes.build_defaults! # creates 960x540 and 320x180 sizes
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
See "Configuring the image brick" for more details.
|
77
|
-
|
78
|
-
## Authentication
|
79
|
-
|
80
|
-
Kuhsaft itself does not ship with any form of authentication. However, it is fairly easy to add by plugging into the Kuhsaft::Cms::AdminController. An example with devise:
|
81
|
-
|
82
68
|
```ruby
|
83
|
-
# config/initializers/
|
69
|
+
# your_app/config/initializers/qbrick.rb
|
84
70
|
Rails.application.config.to_prepare do
|
85
|
-
|
86
|
-
|
71
|
+
Qbrick::Engine.configure do
|
72
|
+
config.image_sizes.build_defaults! # creates 960x540 and 320x180 sizes
|
87
73
|
end
|
88
74
|
end
|
89
75
|
```
|
90
76
|
|
91
|
-
|
92
|
-
|
93
|
-
## Extending the backend CSS/javascript
|
94
|
-
Kuhsaft installs a sass file in `assets/stylesheets/kuhsaft/cms/customizations.css.sass` and a coffeescript file in `assets/javascripts/kuhsaft/cms/customizations.js.coffee` which are loaded by the backend layout. Those files can be installed by running `rails generate kuhsaft:assets:install`.
|
95
|
-
|
96
|
-
Make sure they are in the `config.assets.precompile` array in environments like production where you usually precompile the assets. The generator will only add the necessary configs for the production env!
|
97
|
-
|
98
|
-
## Testing
|
99
|
-
|
100
|
-
There's a dummy app inside spec/dummy. Get it running by executing the following steps:
|
101
|
-
|
102
|
-
```
|
103
|
-
rake setup
|
104
|
-
rake start_dummy
|
105
|
-
```
|
106
|
-
|
107
|
-
# Usage
|
108
|
-
|
109
|
-
## Making Kuhsaft helpers available to your app
|
110
|
-
|
111
|
-
As defined in the rails docs, load the helpers from our isolated Kuhsaft engine inside your application controller:
|
112
|
-
|
113
|
-
class ApplicationController < ActionController::Base
|
114
|
-
helper Kuhsaft::Engine.helpers
|
115
|
-
end
|
116
|
-
|
117
|
-
## Adding sublime video
|
118
|
-
|
119
|
-
Create an initializer file in your app inside `config/initializers` and set the `sublime_video_token`:
|
120
|
-
|
121
|
-
Rails.application.config.to_prepare do
|
122
|
-
Kuhsaft::Engine.configure do
|
123
|
-
# Get the token from the MySites section on the sublime video site
|
124
|
-
config.sublime_video_token = '123abcd'
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
Require the sublime javascript with the following helper:
|
129
|
-
|
130
|
-
# in your application layout in the head section
|
131
|
-
sublime_video_include_tag
|
132
|
-
|
133
|
-
|
134
|
-
## Configuring the image brick
|
135
|
-
|
136
|
-
The image brick can process uploaded images into specific sizes. These sizes can be configured inside the engine configuration. You can also use the built-in default sizes:
|
137
|
-
|
138
|
-
# your_app/config/initializers/kuhsaft.rb
|
139
|
-
Rails.application.config.to_prepare do
|
140
|
-
Kuhsaft::Engine.configure do
|
141
|
-
config.image_sizes.build_defaults! # creates 960x540 and 320x180 sizes
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
You can also remove the default sizes:
|
146
|
-
|
147
|
-
# your_app/config/initializers/kuhsaft.rb
|
148
|
-
Rails.application.config.to_prepare do
|
149
|
-
Kuhsaft::Engine.configure do
|
150
|
-
config.image_sizes.clear! # .all is now empty
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
And most importantly, you can add custom sizes:
|
155
|
-
|
156
|
-
# your_app/config/initializers/kuhsaft.rb
|
157
|
-
Rails.application.config.to_prepare do
|
158
|
-
Kuhsaft::Engine.configure do
|
159
|
-
config.image_sizes.add(:side_box_vertical, 180, 460)
|
160
|
-
config.image_sizes.add(:footer_teaser, 320, 220)
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
The `name` option is a unique identifier, which is also used for translating the dropdown in the brick. You can add your translation by using the translation path:
|
165
|
-
|
166
|
-
activerecord.attributes.kuhsaft/image_size.sizes.#{name}
|
167
|
-
|
168
|
-
## Configuring custom styles for bricks
|
169
|
-
|
170
|
-
Implement the `available_display_styles` on a brick model and return an array of css classnames: `['module-big', 'module-small']`. These styles can be applied to a brick instance through the UI. In the frontend, use `to_style_class` to get the configured styles:
|
171
|
-
|
172
|
-
%my-brick{ :class => brick.to_style_class}
|
173
|
-
= brick.text # ... etc
|
174
|
-
|
175
|
-
After setting up display styles in specific model add your translations
|
176
|
-
for the UI dropdown. E.g. you've added display styles to the TextBrick model:
|
177
|
-
|
178
|
-
```
|
179
|
-
de:
|
180
|
-
text_brick:
|
181
|
-
display_styles:
|
182
|
-
style1: 'My Style 1'
|
183
|
-
style2: 'My Style 2'
|
184
|
-
```
|
185
|
-
|
186
|
-
## Configuring Grid settings for Bricks
|
187
|
-
|
188
|
-
Include the Kuhsaft::Gridded Module on every Brick you want to display in a grid. Default grid options are 1 to 12 (representing columns) wich can be configured via the class method `available_grid_sizes` (should return an array of integers).
|
189
|
-
Each instance of a gridded class will have a method `gridded?` wich returns true if a column size is set.
|
190
|
-
|
191
|
-
If the Gridded Module is added to a Custom Brick, it should provide a col_count integer field with default value 0.
|
192
|
-
|
193
|
-
```
|
194
|
-
add_column :your_awesome_brick, :col_count, :integer, default: 0
|
195
|
-
```
|
196
|
-
|
197
|
-
## Adding custom templates with placeholder bricks
|
198
|
-
|
199
|
-
* Save your partial in `views/kuhsaft/placeholder_bricks/partials/_your_partial.html.haml`
|
200
|
-
* Add translations for your partial in `config/locales/models/kuhsaft/placeholder_brick/locale.yml`
|
201
|
-
|
202
|
-
```
|
203
|
-
de:
|
204
|
-
your_partial: Your Partial
|
205
|
-
```
|
206
|
-
|
207
|
-
## Invalidating placeholder bricks containing other models on model changes
|
208
|
-
|
209
|
-
Include the TouchPlaceholders module if your model is used within a
|
210
|
-
placeholder brick and define which templates it appears in:
|
77
|
+
If you would like to use the qBrick helpers in your app, include them in
|
78
|
+
your application controller:
|
211
79
|
|
212
80
|
```ruby
|
213
|
-
class
|
214
|
-
|
215
|
-
placeholder_templates 'some_template', 'some_other_template'
|
81
|
+
class ApplicationController < ActionController::Base
|
82
|
+
helper Qbrick::Engine.helpers
|
216
83
|
end
|
217
84
|
```
|
218
85
|
|
219
|
-
|
220
|
-
|
221
|
-
If you want to translate your pages into another language, generate a new translation migration:
|
222
|
-
|
223
|
-
# translate your pages into french
|
224
|
-
rails g kuhsaft:translations:add fr
|
225
|
-
Or
|
226
|
-
|
227
|
-
# translate your pages into swiss german
|
228
|
-
rails g kuhsaft:translations:add de-CH
|
229
|
-
|
230
|
-
This creates a new migration file inside `db/migrate` of your app. Run the migration as you normally do:
|
231
|
-
|
232
|
-
rake db:migrate
|
233
|
-
|
234
|
-
Finally, add the new translation locale to your `available_locales` inside your apps `application.rb`:
|
235
|
-
|
236
|
-
config.available_locales = [:en, :fr]
|
237
|
-
Or
|
238
|
-
|
239
|
-
config.available_locales = [:en, 'de-CH']
|
240
|
-
|
241
|
-
## Adding a language switch
|
242
|
-
|
243
|
-
Add scope around routes:
|
244
|
-
|
245
|
-
scope "(:locale)", locale: /de|en|fr/ do
|
246
|
-
root 'kuhsaft/pages#show'
|
247
|
-
end
|
248
|
-
|
249
|
-
Set the locale in the ApplicationController in a before_action and set default url options:
|
250
|
-
|
251
|
-
before_action :set_locale
|
252
|
-
|
253
|
-
def set_locale
|
254
|
-
if I18n.available_locales.map{|sym| sym.to_s }.include?(params[:locale])
|
255
|
-
I18n.locale = params[:locale]
|
256
|
-
else
|
257
|
-
I18n.locale = I18n.default_locale
|
258
|
-
end
|
259
|
-
end
|
260
|
-
|
261
|
-
def default_url_options(options={})
|
262
|
-
{ locale: I18n.locale }
|
263
|
-
end
|
264
|
-
|
265
|
-
Add method to ApplicationHelper which redirects to homepage when current page is not translated.
|
266
|
-
Make sure to have the homepage translated in every available language.
|
267
|
-
|
268
|
-
def localized_url(url, target_locale)
|
269
|
-
page = Kuhsaft::Page.find_by_url("#{I18n.locale}/#{url}")
|
270
|
-
I18n.with_locale target_locale do
|
271
|
-
translated_url = page.presence && page.url
|
272
|
-
if translated_url.present?
|
273
|
-
"/#{translated_url}"
|
274
|
-
else
|
275
|
-
root_path(locale: target_locale)
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
279
|
-
|
280
|
-
def language_link(url, locale)
|
281
|
-
localized_url(params[:url], locale)
|
282
|
-
end
|
283
|
-
|
284
|
-
Add language switch to navigation:
|
285
|
-
|
286
|
-
SimpleNavigation::Configuration.run do |navigation|
|
287
|
-
I18n.available_locales.each do |locale|
|
288
|
-
primary.item locale, locale.to_s.upcase, language_link(params[:url], locale), highlights_on: Proc.new { I18n.locale == locale }
|
289
|
-
end
|
290
|
-
end
|
291
|
-
|
292
|
-
Make sure to render only pages which are translated and published by using `published` and `translated` scope, so pages
|
293
|
-
without translation and which are not published will not be displayed in the navigation.
|
294
|
-
Here is an example of a possible navigation:
|
295
|
-
|
296
|
-
SimpleNavigation::Configuration.run do |navigation|
|
297
|
-
navigation.items do |primary|
|
298
|
-
primary.dom_class = 'right'
|
299
|
-
primary.selected_class = 'active'
|
300
|
-
Kuhsaft::Page.find_by(slug_de: 'meta-navigation').children.published.translated.each do |page|
|
301
|
-
primary.item page.id, page.title, page.link, class: 'contact icon'
|
302
|
-
end
|
303
|
-
|
304
|
-
primary.item '', 'Sprache', '#', class: 'language icon has-dropdown'do |language|
|
305
|
-
I18n.available_locales.each do |locale|
|
306
|
-
language.dom_class = 'dropdown'
|
307
|
-
language.item locale, language_text(locale), language_link(params[:url], locale), highlights_on: Proc.new { I18n.locale == locale }, class: "icon lang-#{locale}"
|
308
|
-
end
|
309
|
-
end
|
310
|
-
end
|
311
|
-
end
|
86
|
+
Finally, mount the qBrick engine in your routes file:
|
312
87
|
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
p, h1, h2, h3, h4, table, a, strong, em
|
318
|
-
|
319
|
-
## Building a navigation
|
320
|
-
|
321
|
-
Building a navigation is simple, access to the page tree is available through the common methods built into the ancestry gem.
|
322
|
-
Just make sure you are only accessing published pages for your production site, using the `published` scope.
|
323
|
-
Or if your page is translated, using the `translated` scope and the `published` scope.
|
324
|
-
|
325
|
-
### 2 level navigation example using simple-navigation
|
326
|
-
|
327
|
-
SimpleNavigation::Configuration.run do |navigation|
|
328
|
-
navigation.items do |primary|
|
329
|
-
# build first level
|
330
|
-
Kuhsaft::Page.roots.published.translated.each do |page|
|
331
|
-
primary.item page.id, page.title, page.link do |sub_item|
|
332
|
-
# build second level
|
333
|
-
page.children.published.translated.each do |subpage|
|
334
|
-
sub_item.item subpage.id, subpage.title, subpage.link
|
335
|
-
end
|
336
|
-
end
|
337
|
-
end
|
338
|
-
end
|
339
|
-
end
|
340
|
-
|
341
|
-
## Use the `page_title` attribute in your app
|
342
|
-
|
343
|
-
Kuhsaft::Pages will provide a `%title` tag containing its `page_title`
|
344
|
-
(or the required `title`if no title is present). Simply yield for
|
345
|
-
`:head` in your `application.html` to use it.
|
346
|
-
|
347
|
-
%head
|
348
|
-
= yield(:head)
|
349
|
-
|
350
|
-
## Modifying the backend navigation
|
351
|
-
|
352
|
-
Simply override the default partial for the main navigation in your app with your own file at `kuhsaft/cms/admin/_main_navigation.html.haml`
|
353
|
-
|
354
|
-
## Adding your own Bricks
|
355
|
-
|
356
|
-
* Create your Brick model in `app/models`, for example `CaptionBrick`, which inherits from `Kuhsaft::Brick`.
|
357
|
-
* If u use a string field add a max-length validation of 255 characters.
|
358
|
-
To prevent a `ActiveRecord::StatementInvalid` Error.
|
359
|
-
* Create a migration which adds the necessary fields to the `kuhsaft_bricks` table.
|
360
|
-
* If your brick should be accessible via UI, add a BrickType into the seeds or add a migration:
|
361
|
-
`Kuhsaft::BrickType.create(:class_name => 'CaptionBrick', :group => 'elements')`
|
362
|
-
* Add the `edit` and `show` partials to your views, e.g: `app/views/caption_bricks/caption_brick/_edit.html.haml`
|
363
|
-
* Add the `childs` partial to your views, if you want to render your bricks childs with your own html: `app/views/caption_bricks/caption_brick/_childs.html.haml`
|
364
|
-
* Implement the `fulltext` method on your brick, return anything you want to be searchable.
|
365
|
-
* Customize the edit form behaviour of your brick by overriding methods like `to_style_class?`. See the `Brick` and `BrickList` files for more methods.
|
366
|
-
|
367
|
-
### Use the Kuhsaft ImageBrickImageUploader for your own Brick
|
368
|
-
|
369
|
-
Kuhsaft has a module called `ImageUploaderMounting`. This module mounts the ImageBrickImageUploader
|
370
|
-
and includes a callback method which handles that the image sizes will be updated after save.
|
371
|
-
|
372
|
-
class CustomBrick < Brick
|
373
|
-
include Kuhsaft::ImageUploaderMounting
|
374
|
-
...
|
375
|
-
end
|
376
|
-
|
377
|
-
If you do not include this module, then the images will not be changed when selecting one of your own image
|
378
|
-
sizes. See "Configuring the image brick" for more details on creating your own image sizes.
|
379
|
-
|
380
|
-
## Integrating search
|
381
|
-
|
382
|
-
Kuhsaft supports fulltext search when using PostgreSQL with a simple
|
383
|
-
LIKE fallback for any other ActiveRecord DB.
|
384
|
-
|
385
|
-
Add a call to the `search_page_form` helper in your views. This renders
|
386
|
-
the default search form. The query will be executed by kuhsaft.
|
387
|
-
|
388
|
-
# e.g. _footer.html.haml
|
389
|
-
= search_page_form
|
390
|
-
|
391
|
-
To customize the search and result views you can add your own partials
|
392
|
-
to your rails app. The following partials are overridable.
|
393
|
-
|
394
|
-
app/views/kuhsaft/search
|
395
|
-
├── _form.html.haml # Search form
|
396
|
-
├── _results.html.haml # Results list (@pages)
|
397
|
-
└── _results_entry.html.haml # Single result entry (@page)
|
88
|
+
```ruby
|
89
|
+
mount Qbrick::Engine => '/'
|
90
|
+
```
|
398
91
|
|
399
|
-
|
400
|
-
|
401
|
-
|
92
|
+
You can now access the qBrick interface by visiting `/cms` in your
|
93
|
+
browser. By default, qBrick creates the first admin user with the
|
94
|
+
email `admin@admin.com` and password: `change-me-soon!`. Which you can
|
95
|
+
use to log in the first time.
|
402
96
|
|
403
|
-
|
97
|
+
# Using and Customizing qBrick
|
98
|
+
See our [wiki](https://github.com/screenconcept/qbrick/wiki)
|
404
99
|
|
405
|
-
|
406
|
-
title and url attribute is rendered in the json.
|
100
|
+
# Issues
|
407
101
|
|
408
|
-
|
409
|
-
|
410
|
-
disables the standard link plugin. The second line enables the adv_link
|
411
|
-
plugin, which we need for the CMS Page link dialogue in CKEditor.
|
102
|
+
Before reporiting a problem, please read how to [File an
|
103
|
+
issue](CONTRIBUTING.md#file-an-issue).
|
412
104
|
|
413
|
-
|
414
|
-
|
415
|
-
config.extraPlugins = 'adv_link'
|
416
|
-
```
|
105
|
+
# Roadmap
|
106
|
+
See our [roadmap](doc/ROADMAP.md)
|
417
107
|
|
418
|
-
|
419
|
-
|
108
|
+
# Contributing
|
109
|
+
See the [Contributing Guidelines](CONTRIBUTING.md)
|
420
110
|
|
421
|
-
#
|
111
|
+
# License
|
422
112
|
|
423
|
-
See the file
|
113
|
+
See the [LICENSE file](LICENSE)
|