cardboard_cms 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +42 -0
- data/Gemfile.lock +324 -0
- data/Guardfile +23 -0
- data/LICENSE.txt +677 -0
- data/README.md +370 -0
- data/Rakefile +23 -0
- data/app/assets/images/cardboard/.gitkeep +0 -0
- data/app/assets/images/cardboard/bg.png +0 -0
- data/app/assets/images/cardboard/calendar.png +0 -0
- data/app/assets/images/cardboard/lorem-ipsum-coffe-mug.jpg +0 -0
- data/app/assets/javascripts/cardboard.js +1 -0
- data/app/assets/javascripts/cardboard/admin.js +62 -0
- data/app/assets/javascripts/cardboard/content_sidebar.js +27 -0
- data/app/assets/javascripts/cardboard/datepicker.js +19 -0
- data/app/assets/javascripts/cardboard/main_sidebar.js +32 -0
- data/app/assets/javascripts/cardboard/rich_text.js +81 -0
- data/app/assets/javascripts/cardboard/search_filter.js +28 -0
- data/app/assets/stylesheets/cardboard.css.scss +2 -0
- data/app/assets/stylesheets/cardboard/_bootstrap-select.css.scss +183 -0
- data/app/assets/stylesheets/cardboard/_content.css.scss +35 -0
- data/app/assets/stylesheets/cardboard/_content_sidebar.css.scss +96 -0
- data/app/assets/stylesheets/cardboard/_framework.css.scss +129 -0
- data/app/assets/stylesheets/cardboard/_main_sidebar.css.scss +38 -0
- data/app/assets/stylesheets/cardboard/_main_topbar.css.scss +62 -0
- data/app/assets/stylesheets/cardboard/_resources.css.scss +28 -0
- data/app/assets/stylesheets/cardboard/_rich_text.css.scss +6 -0
- data/app/assets/stylesheets/cardboard/_variables.scss +326 -0
- data/app/assets/stylesheets/cardboard/admin.css.scss +63 -0
- data/app/controllers/cardboard/application_controller.rb +45 -0
- data/app/controllers/cardboard/dashboard_controller.rb +9 -0
- data/app/controllers/cardboard/my_account_controller.rb +27 -0
- data/app/controllers/cardboard/pages_controller.rb +34 -0
- data/app/controllers/cardboard/resource_controller.rb +61 -0
- data/app/controllers/cardboard/settings_controller.rb +28 -0
- data/app/controllers/cardboard/super_user_controller.rb +8 -0
- data/app/controllers/pages_controller.rb +29 -0
- data/app/decorators/controllers/application_controller_decorator.rb +9 -0
- data/app/decorators/lib/cardboard/user_class_decorator.rb +32 -0
- data/app/helpers/cardboard/application_helper.rb +4 -0
- data/app/helpers/cardboard/public_helper.rb +53 -0
- data/app/helpers/cardboard/resource_helper.rb +80 -0
- data/app/inputs/date_picker_input.rb +10 -0
- data/app/inputs/date_time_input.rb +7 -0
- data/app/inputs/image_input.rb +3 -0
- data/app/inputs/rich_text_input.rb +6 -0
- data/app/models/cardboard/field.rb +67 -0
- data/app/models/cardboard/field/boolean.rb +29 -0
- data/app/models/cardboard/field/date.rb +24 -0
- data/app/models/cardboard/field/decimal.rb +25 -0
- data/app/models/cardboard/field/external_link.rb +4 -0
- data/app/models/cardboard/field/file.rb +19 -0
- data/app/models/cardboard/field/image.rb +33 -0
- data/app/models/cardboard/field/integer.rb +26 -0
- data/app/models/cardboard/field/resource_link.rb +4 -0
- data/app/models/cardboard/field/rich_text.rb +21 -0
- data/app/models/cardboard/field/string.rb +16 -0
- data/app/models/cardboard/field/text.rb +15 -0
- data/app/models/cardboard/page.rb +253 -0
- data/app/models/cardboard/page_part.rb +79 -0
- data/app/models/cardboard/setting.rb +46 -0
- data/app/views/cardboard/dashboard/index.html.slim +1 -0
- data/app/views/cardboard/fields/_base_input.html.slim +1 -0
- data/app/views/cardboard/fields/_boolean.html.slim +4 -0
- data/app/views/cardboard/fields/_date.html.slim +1 -0
- data/app/views/cardboard/fields/_external_link.html.slim +2 -0
- data/app/views/cardboard/fields/_file.html.slim +12 -0
- data/app/views/cardboard/fields/_image.html.slim +11 -0
- data/app/views/cardboard/fields/_resource_link.html.slim +2 -0
- data/app/views/cardboard/fields/_rich_text.html.slim +3 -0
- data/app/views/cardboard/fields/_string.html.slim +1 -0
- data/app/views/cardboard/my_account/edit.html.slim +29 -0
- data/app/views/cardboard/pages/_error.html.slim +7 -0
- data/app/views/cardboard/pages/_seo.html.slim +6 -0
- data/app/views/cardboard/pages/_sidebar.html.slim +17 -0
- data/app/views/cardboard/pages/_subpart_fields.html.slim +20 -0
- data/app/views/cardboard/pages/_url_field.html.slim +20 -0
- data/app/views/cardboard/pages/edit.html.slim +43 -0
- data/app/views/cardboard/pages/index.html.slim +2 -0
- data/app/views/cardboard/pages/show.html.slim +9 -0
- data/app/views/cardboard/resources/_advanced_search.html.slim +40 -0
- data/app/views/cardboard/resources/_search_button.html.slim +2 -0
- data/app/views/cardboard/resources/_search_helper.html.slim +17 -0
- data/app/views/cardboard/resources/_simple_search.html.slim +6 -0
- data/app/views/cardboard/rich_editor/_links_modal.html.slim +39 -0
- data/app/views/cardboard/settings/index.html.slim +8 -0
- data/app/views/cardboard/super_user/index.html.slim +10 -0
- data/app/views/layouts/cardboard/_flash_message.html.slim +6 -0
- data/app/views/layouts/cardboard/_head.html.slim +16 -0
- data/app/views/layouts/cardboard/_main_sidebar.html.slim +12 -0
- data/app/views/layouts/cardboard/_main_topbar.html.slim +32 -0
- data/app/views/layouts/cardboard/application.html.slim +28 -0
- data/cardboard.gemspec +57 -0
- data/config/initializers/dragonfly.rb +27 -0
- data/config/initializers/ranker_mapper_finder_bugfix.rb +43 -0
- data/config/initializers/simple_form.rb +142 -0
- data/config/initializers/simple_form_bootstrap.rb +45 -0
- data/config/locales/simple_form.en.yml +26 -0
- data/config/routes.rb +53 -0
- data/doc/apple-touch-icon.png +0 -0
- data/doc/classes/Cardboard.html +190 -0
- data/doc/classes/Cardboard/AdminController.html +134 -0
- data/doc/classes/Cardboard/AdminHelper.html +307 -0
- data/doc/classes/Cardboard/ApplicationController.html +76 -0
- data/doc/classes/Cardboard/ApplicationHelper.html +70 -0
- data/doc/classes/Cardboard/DashboardController.html +131 -0
- data/doc/classes/Cardboard/Field.html +283 -0
- data/doc/classes/Cardboard/Field/Boolean.html +218 -0
- data/doc/classes/Cardboard/Field/Date.html +218 -0
- data/doc/classes/Cardboard/Field/Decimal.html +218 -0
- data/doc/classes/Cardboard/Field/ExternalLink.html +76 -0
- data/doc/classes/Cardboard/Field/File.html +131 -0
- data/doc/classes/Cardboard/Field/Image.html +181 -0
- data/doc/classes/Cardboard/Field/Integer.html +218 -0
- data/doc/classes/Cardboard/Field/ResourceLink.html +76 -0
- data/doc/classes/Cardboard/Field/RichText.html +131 -0
- data/doc/classes/Cardboard/Field/String.html +131 -0
- data/doc/classes/Cardboard/Page.html +1184 -0
- data/doc/classes/Cardboard/PagePart.html +304 -0
- data/doc/classes/Cardboard/PagesController.html +186 -0
- data/doc/classes/Cardboard/PublicHelper.html +252 -0
- data/doc/classes/Cardboard/Setting.html +240 -0
- data/doc/classes/Cardboard/SettingsController.html +184 -0
- data/doc/classes/Cardboard/SuperUserController.html +130 -0
- data/doc/classes/Cardboard/UsersController.html +191 -0
- data/doc/classes/DatePickerInput.html +132 -0
- data/doc/classes/ImageInput.html +76 -0
- data/doc/classes/Object.html +211 -0
- data/doc/classes/PagesController.html +145 -0
- data/doc/classes/RichTextInput.html +132 -0
- data/doc/created.rid +31 -0
- data/doc/css/github.css +129 -0
- data/doc/css/main.css +333 -0
- data/doc/css/panel.css +384 -0
- data/doc/css/reset.css +48 -0
- data/doc/favicon.ico +0 -0
- data/doc/files/app/controllers/cardboard/admin_controller_rb.html +79 -0
- data/doc/files/app/controllers/cardboard/application_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/dashboard_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/pages_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/settings_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/super_user_controller_rb.html +84 -0
- data/doc/files/app/controllers/cardboard/users_controller_rb.html +84 -0
- data/doc/files/app/controllers/pages_controller_rb.html +79 -0
- data/doc/files/app/decorators/controllers/application_controller_decorator_rb.html +68 -0
- data/doc/files/app/decorators/lib/cardboard/user_class_decorator_rb.html +68 -0
- data/doc/files/app/helpers/cardboard/admin_helper_rb.html +84 -0
- data/doc/files/app/helpers/cardboard/application_helper_rb.html +84 -0
- data/doc/files/app/helpers/cardboard/public_helper_rb.html +84 -0
- data/doc/files/app/inputs/date_picker_input_rb.html +79 -0
- data/doc/files/app/inputs/image_input_rb.html +79 -0
- data/doc/files/app/inputs/rich_text_input_rb.html +79 -0
- data/doc/files/app/models/cardboard/field/boolean_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/date_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/decimal_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/external_link_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/file_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/image_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/integer_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/resource_link_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/rich_text_rb.html +84 -0
- data/doc/files/app/models/cardboard/field/string_rb.html +84 -0
- data/doc/files/app/models/cardboard/field_rb.html +84 -0
- data/doc/files/app/models/cardboard/page_part_rb.html +84 -0
- data/doc/files/app/models/cardboard/page_rb.html +84 -0
- data/doc/files/app/models/cardboard/setting_rb.html +84 -0
- data/doc/i/arrows.png +0 -0
- data/doc/i/results_bg.png +0 -0
- data/doc/i/tree_bg.png +0 -0
- data/doc/index.html +13 -0
- data/doc/js/highlight.pack.js +1 -0
- data/doc/js/jquery-1.3.2.min.js +19 -0
- data/doc/js/jquery-effect.js +593 -0
- data/doc/js/main.js +24 -0
- data/doc/js/navigation.js +142 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/searchdoc.js +449 -0
- data/doc/js/searcher.js +228 -0
- data/doc/panel/index.html +73 -0
- data/doc/panel/links.html +66 -0
- data/doc/panel/tree.js +1 -0
- data/lib/cardboard/application.rb +67 -0
- data/lib/cardboard/engine.rb +83 -0
- data/lib/cardboard/helpers/seed.rb +80 -0
- data/lib/cardboard/helpers/settings.rb +58 -0
- data/lib/cardboard/version.rb +3 -0
- data/lib/cardboard_cms.rb +34 -0
- data/lib/generators/cardboard/assets/assets_generator.rb +18 -0
- data/lib/generators/cardboard/install/install_generator.rb +96 -0
- data/lib/generators/cardboard/install/templates/cardboard.rb.erb +53 -0
- data/lib/generators/cardboard/install/templates/cardboard.yml +29 -0
- data/lib/generators/cardboard/install/templates/index.html.erb +0 -0
- data/lib/generators/cardboard/install/templates/migrations/1_create_cardboard_fields.rb +21 -0
- data/lib/generators/cardboard/install/templates/migrations/2_create_cardboard_page_parts.rb +17 -0
- data/lib/generators/cardboard/install/templates/migrations/3_create_cardboard_pages.rb +18 -0
- data/lib/generators/cardboard/install/templates/migrations/4_create_cardboard_settings.rb +14 -0
- data/lib/generators/cardboard/resource/resource_generator.rb +52 -0
- data/lib/generators/cardboard/resource/templates/admin_controller.rb +9 -0
- data/lib/generators/cardboard/resource/templates/slim/_fields.html.slim +5 -0
- data/lib/generators/cardboard/resource/templates/slim/edit.html.slim +4 -0
- data/lib/generators/cardboard/resource/templates/slim/index.html.slim +18 -0
- data/lib/generators/cardboard/resource/templates/slim/new.html.slim +4 -0
- data/lib/tasks/cardboard_tasks.rake +22 -0
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- data/script/rails +8 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/images/defaults/CrashTest.jpg +0 -0
- data/test/dummy/app/assets/javascripts/admins.js +2 -0
- data/test/dummy/app/assets/javascripts/application.js +5 -0
- data/test/dummy/app/assets/javascripts/beans.js +2 -0
- data/test/dummy/app/assets/javascripts/cardboard.js +1 -0
- data/test/dummy/app/assets/javascripts/icescreams.js +2 -0
- data/test/dummy/app/assets/javascripts/main.js +2 -0
- data/test/dummy/app/assets/javascripts/news_posts.js +2 -0
- data/test/dummy/app/assets/javascripts/pianos.js +2 -0
- data/test/dummy/app/assets/stylesheets/admins.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/application.css.scss +9 -0
- data/test/dummy/app/assets/stylesheets/beans.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/cardboard.css.scss +5 -0
- data/test/dummy/app/assets/stylesheets/icescreams.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/main.css +4 -0
- data/test/dummy/app/assets/stylesheets/news_posts.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/pianos.css.scss +3 -0
- data/test/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/controllers/cardboard/pianos_controller.rb +6 -0
- data/test/dummy/app/controllers/pianos_controller.rb +83 -0
- data/test/dummy/app/helpers/application_helper.rb +9 -0
- data/test/dummy/app/helpers/cardboard/pianos_helper.rb +7 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/admin_user.rb +28 -0
- data/test/dummy/app/models/piano.rb +3 -0
- data/test/dummy/app/views/cardboard/pianos/_fields.html.slim +5 -0
- data/test/dummy/app/views/cardboard/pianos/edit.html.slim +6 -0
- data/test/dummy/app/views/cardboard/pianos/index.html.slim +18 -0
- data/test/dummy/app/views/cardboard/pianos/new.html.slim +6 -0
- data/test/dummy/app/views/cardboard/pianos/show.html.slim +11 -0
- data/test/dummy/app/views/layouts/application.html.slim +24 -0
- data/test/dummy/app/views/main/index.html.slim +1 -0
- data/test/dummy/app/views/pages/about-us.html.slim +1 -0
- data/test/dummy/app/views/pages/home.html.slim +3 -0
- data/test/dummy/app/views/pianos/_form.html.erb +25 -0
- data/test/dummy/app/views/pianos/edit.html.erb +6 -0
- data/test/dummy/app/views/pianos/index.html.erb +25 -0
- data/test/dummy/app/views/pianos/new.html.erb +5 -0
- data/test/dummy/app/views/pianos/show.html.erb +15 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +50 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/cardboard.yml +126 -0
- data/test/dummy/config/database.yml +17 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +24 -0
- data/test/dummy/config/environments/production.rb +70 -0
- data/test/dummy/config/environments/test.rb +33 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cardboard.rb +53 -0
- data/test/dummy/config/initializers/devise.rb +240 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +8 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/devise.en.yml +59 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +16 -0
- data/test/dummy/db/migrate/20130403142235_create_pianos.rb +10 -0
- data/test/dummy/db/migrate/20130417134832_add_devise_to_admin_users.rb +53 -0
- data/test/dummy/db/migrate/20130426021522_create_news_posts.rb +10 -0
- data/test/dummy/db/migrate/20130501195423_create_icescreams.rb +10 -0
- data/test/dummy/db/migrate/20130502165540_create_beans.rb +12 -0
- data/test/dummy/db/migrate/20130522151358_create_cardboard_fields.rb +21 -0
- data/test/dummy/db/migrate/20130522151359_create_cardboard_page_parts.rb +17 -0
- data/test/dummy/db/migrate/20130522151400_create_cardboard_pages.rb +18 -0
- data/test/dummy/db/migrate/20130522151401_create_cardboard_settings.rb +14 -0
- data/test/dummy/db/migrate/20130607132558_create_admins.rb +9 -0
- data/test/dummy/db/schema.rb +129 -0
- data/test/dummy/db/seeds.rb +2 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_10_816_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_10_816_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_17_87_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_17_87_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_34_680_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_34_680_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_44_00_698_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_44_00_698_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_46_49_55_6152message_in_a_bottle.jpeg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/10_46_49_55_6152message_in_a_bottle.jpeg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_30_773_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_30_773_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_38_856_airport_shuttles_20130207_1647.csv +8 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_38_856_airport_shuttles_20130207_1647.csv.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_12_12_144_1361696555_GMail_Android_R.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_12_12_144_1361696555_GMail_Android_R.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_16_40_989_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_16_40_989_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_19_19_40_6152message_in_a_bottle.jpeg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_19_19_40_6152message_in_a_bottle.jpeg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_21_21_825_6152message_in_a_bottle.jpeg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/14_21_21_825_6152message_in_a_bottle.jpeg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_46_33_341_bio.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_46_33_341_bio.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_55_892_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_55_892_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_56_30_404_no_file.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_56_30_404_no_file.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_24_04_585_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_24_04_585_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_25_41_111_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_25_41_111_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_16_937_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_16_937_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_57_585_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_57_585_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_28_24_991_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_28_24_991_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_33_30_610_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_33_30_610_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_35_18_437_Sky_3920445.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/15_35_18_437_Sky_3920445.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/16_45_07_162_Vehicle_Types.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/17/16_45_07_162_Vehicle_Types.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_27_35_733_hall.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_27_35_733_hall.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_808_fluidicon.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_808_fluidicon.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_989_fluidicon.png +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_989_fluidicon.png.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_44_881_hall3.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_44_881_hall3.jpg.meta +2 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_45_450_hall3.jpg +0 -0
- data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_45_450_hall3.jpg.meta +2 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/admins.yml +7 -0
- data/test/dummy/test/functional/admins_controller_test.rb +49 -0
- data/test/dummy/test/unit/admin_test.rb +7 -0
- data/test/dummy/test/unit/helpers/admins_helper_test.rb +4 -0
- data/test/factories.rb +47 -0
- data/test/integration/page_editing_test.rb +77 -0
- data/test/integration/seeding_test.rb +96 -0
- data/test/models/field_test.rb +102 -0
- data/test/models/page_test.rb +105 -0
- data/test/test_helper.rb +40 -0
- data/vendor/assets/javascripts/cardboard/bootstrap-select.js +590 -0
- data/vendor/assets/javascripts/cardboard/jquery.livesearch.js +48 -0
- data/vendor/assets/javascripts/cardboard/jquery.pjax.js +822 -0
- data/vendor/assets/javascripts/cardboard/jquery.wysihtml5_size_matters.js.coffee +44 -0
- data/vendor/assets/javascripts/cardboard/jquery.wysihtml5imgresizer.js +320 -0
- data/vendor/assets/javascripts/cardboard/wysihtml5-0.4.0pre.js +9579 -0
- metadata +1011 -0
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module Cardboard
|
4
|
+
|
5
|
+
module Seed
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
def self.populate_pages(filehash = nil)
|
9
|
+
pages = filehash ? filehash[:pages] : {}
|
10
|
+
pages.each do |id, page|
|
11
|
+
|
12
|
+
db_page = Cardboard::Page.where(identifier: id.to_s).first_or_initialize
|
13
|
+
db_page.position_position = page[:position] || :last
|
14
|
+
db_page.update_attributes!(page.slice(:title, :parent_id))
|
15
|
+
|
16
|
+
self.populate_parts(page[:parts], db_page)
|
17
|
+
end
|
18
|
+
|
19
|
+
for remove_page in Cardboard::Page.all.map(&:identifier) - pages.map{|k,v|k.to_s}
|
20
|
+
Cardboard::Page.where(identifier: remove_page).first.destroy
|
21
|
+
end
|
22
|
+
|
23
|
+
Cardboard::Page.create(identifier: "index", path: "/") if Cardboard::Page.root.nil?
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def self.populate_parts(page_parts, db_page)
|
28
|
+
page_parts ||= {}
|
29
|
+
page_parts.each do |id, part|
|
30
|
+
db_part = db_page.parts.where(identifier: id.to_s).first_or_initialize
|
31
|
+
db_part.part_position_position = part[:position] || :last
|
32
|
+
db_part.update_attributes!(part.slice(:repeatable))
|
33
|
+
|
34
|
+
db_part.subparts.first_or_create!
|
35
|
+
|
36
|
+
db_part.subparts.each do |db_part|
|
37
|
+
self.populate_fields(part[:fields], db_part)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
for remove_part in db_page.parts.map(&:identifier) - page_parts.map{|k,v|k.to_s}
|
41
|
+
db_page.parts.where(identifier: remove_part).first.destroy
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.populate_fields(fields, object)
|
46
|
+
fields ||= {}
|
47
|
+
fields.each do |id, field|
|
48
|
+
db_field = Field.where(identifier: id.to_s, object_with_field: object).first_or_initialize
|
49
|
+
db_field.type = "Cardboard::Field::#{(field[:type] || "string").camelize}"
|
50
|
+
db_field.seeding = true
|
51
|
+
db_field.position_position = field[:position] || :last
|
52
|
+
begin
|
53
|
+
db_field.update_attributes!(field.reject{|k,v| ["type", "position"].include?(k)})
|
54
|
+
rescue Exception => e
|
55
|
+
# Output validation errors
|
56
|
+
puts "-- ERROR --"
|
57
|
+
puts e
|
58
|
+
puts "#{db_field.identifier}: #{db_field.value_uid || field[:value] || field[:default] || "nil"}"
|
59
|
+
puts "-----------"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
#remove fields no longer in the seed file
|
64
|
+
for remove_field in object.fields.map(&:identifier) - fields.map{|k,v|k.to_s}
|
65
|
+
object.fields.where(identifier: remove_field).first.destroy
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.populate_settings(filehash = nil)
|
70
|
+
settings = filehash ? filehash[:settings] : nil
|
71
|
+
if settings
|
72
|
+
db_settings = Cardboard::Setting.first_or_create
|
73
|
+
self.populate_fields(settings, db_settings)
|
74
|
+
end
|
75
|
+
Cardboard::Setting.add("company_name", type: "string", default: Cardboard.application.site_title, position: 0)
|
76
|
+
# Cardboard::Setting.add("google_analytics", type: "string", position: 1)
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module Cardboard
|
4
|
+
|
5
|
+
# Adds a class method to a class to create settings with default values.
|
6
|
+
#
|
7
|
+
# Example:
|
8
|
+
#
|
9
|
+
# class Configuration
|
10
|
+
# include Cardboard::Settings
|
11
|
+
#
|
12
|
+
# setting :site_title, "Default Site Title"
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# conf = Configuration.new
|
16
|
+
# conf.site_title #=> "Default Site Title"
|
17
|
+
# conf.site_title = "Override Default"
|
18
|
+
# conf.site_title #=> "Override Default"
|
19
|
+
#
|
20
|
+
module Settings
|
21
|
+
extend ActiveSupport::Concern
|
22
|
+
|
23
|
+
def read_default_setting(name)
|
24
|
+
default_settings[name]
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def default_settings
|
30
|
+
self.class.default_settings
|
31
|
+
end
|
32
|
+
|
33
|
+
module ClassMethods
|
34
|
+
|
35
|
+
def setting(name, default)
|
36
|
+
default_settings[name] = default
|
37
|
+
attr_accessor(name)
|
38
|
+
|
39
|
+
# Create an accessor that grabs from the defaults
|
40
|
+
# if @name has not been set yet
|
41
|
+
class_eval <<-EOC, __FILE__, __LINE__ + 1
|
42
|
+
def #{name}
|
43
|
+
if instance_variable_defined? :@#{name}
|
44
|
+
@#{name}
|
45
|
+
else
|
46
|
+
read_default_setting(:#{name})
|
47
|
+
end
|
48
|
+
end
|
49
|
+
EOC
|
50
|
+
end
|
51
|
+
|
52
|
+
def default_settings
|
53
|
+
@default_settings ||= {}
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require "cardboard/engine"
|
2
|
+
|
3
|
+
module Cardboard
|
4
|
+
autoload :Application, 'cardboard/application'
|
5
|
+
|
6
|
+
class << self
|
7
|
+
|
8
|
+
attr_accessor :application, :resource_controllers
|
9
|
+
|
10
|
+
def application
|
11
|
+
@application ||= ::Cardboard::Application.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def user_class
|
15
|
+
return false unless application.user_class
|
16
|
+
@user_class ||= application.user_class.to_s.camelize.constantize
|
17
|
+
end
|
18
|
+
|
19
|
+
def set_resource_controllers
|
20
|
+
Dir[Rails.root.join('app/controllers/cardboard/*_controller.rb')].map.each do |controller|
|
21
|
+
require_dependency controller
|
22
|
+
end
|
23
|
+
Cardboard.resource_controllers = Cardboard::ResourceController.descendants
|
24
|
+
end
|
25
|
+
|
26
|
+
# Gets called within the initializer
|
27
|
+
def setup
|
28
|
+
yield(application)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rails'
|
2
|
+
require 'cardboard_cms'
|
3
|
+
|
4
|
+
module Cardboard
|
5
|
+
module Generators
|
6
|
+
class AssetsGenerator < Rails::Generators::Base
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
@_cardboard_source_root ||= Cardboard::Engine.root.join('app', 'assets')#File.expand_path("../templates", __FILE__)
|
10
|
+
end
|
11
|
+
|
12
|
+
def install_assets
|
13
|
+
template 'javascripts/cardboard.js', 'app/assets/javascripts/cardboard.js'
|
14
|
+
template 'stylesheets/cardboard.css.scss', 'app/assets/stylesheets/cardboard.css.scss'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'rails/generators/active_record'
|
2
|
+
|
3
|
+
module Cardboard
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < ActiveRecord::Generators::Base
|
6
|
+
desc "Installs Cardboard and generates the necessary migrations"
|
7
|
+
|
8
|
+
argument :name, :type => :string, :default => Rails.application.class.name.split("::").first.titlecase
|
9
|
+
class_option "user-class", :type => :string
|
10
|
+
class_option "no-migrate", :type => :boolean
|
11
|
+
|
12
|
+
def self.source_root
|
13
|
+
@_cardboard_source_root ||= File.expand_path("../templates", __FILE__)
|
14
|
+
end
|
15
|
+
|
16
|
+
def copy_initializer
|
17
|
+
if generating?
|
18
|
+
@site_title = ask("What is the site name? [#{@name}]").presence || @name
|
19
|
+
|
20
|
+
@user_class = options["user-class"].presence ||
|
21
|
+
ask("What is your user class called? [AdminUser]").presence ||
|
22
|
+
'AdminUser'
|
23
|
+
user_class_underscore = @user_class.underscore
|
24
|
+
#TODO: check that this class really exists
|
25
|
+
@current_user_helper = "current_#{user_class_underscore}"
|
26
|
+
@authentication_method = "authenticate_#{user_class_underscore}!"
|
27
|
+
@logout_link_path = "destroy_#{user_class_underscore}_session_path"
|
28
|
+
|
29
|
+
unless defined?(Devise)
|
30
|
+
@current_user_helper = ask("What is the current_user helper called in your app? [#{@current_user_helper}]").presence || @current_user_helper
|
31
|
+
@authentication_method = ask("What is the authenticate! helper called in your app? [#{@authentication_method}]").presence || @authentication_method
|
32
|
+
@logout_link_path = ask("What is the signout link of your app [#{@logout_link_path}]?").presence || @logout_link_path
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
path = "#{Rails.root}/config/initializers/cardboard.rb"
|
37
|
+
# if File.exists?(path)
|
38
|
+
# p "Skipping config/initializers/cardboard.rb creation, as file already exists!"
|
39
|
+
# else
|
40
|
+
p "Adding cardboard initializer (config/initializers/cardboard.rb)..."
|
41
|
+
template 'cardboard.rb.erb', path
|
42
|
+
require path if File.exists?(path) # Load the configuration
|
43
|
+
# end
|
44
|
+
end
|
45
|
+
|
46
|
+
def setup_cardboard_yaml
|
47
|
+
p "Generating a default config/cardboard.yml file..."
|
48
|
+
copy_file 'cardboard.yml', 'config/cardboard.yml'
|
49
|
+
end
|
50
|
+
|
51
|
+
def setup_directory
|
52
|
+
empty_directory "app/controllers/cardboard"
|
53
|
+
empty_directory "app/views/pages"
|
54
|
+
end
|
55
|
+
|
56
|
+
def setup_routes
|
57
|
+
p "Mounting Cardboard::Engine at \"/cardboard\" in config/routes.rb..."
|
58
|
+
inject_into_file "config/routes.rb", " mount Cardboard::Engine => \"/cardboard\"\n", :after => /routes\.draw do\n/
|
59
|
+
end
|
60
|
+
|
61
|
+
def create_assets
|
62
|
+
p "Generating cardboard assets..."
|
63
|
+
generate "cardboard:assets"
|
64
|
+
end
|
65
|
+
|
66
|
+
def create_migrations
|
67
|
+
p "Copying over migrations..."
|
68
|
+
Dir["#{self.class.source_root}/migrations/*.rb"].sort.each do |filepath|
|
69
|
+
name = File.basename(filepath)
|
70
|
+
migration_template "migrations/#{name}", "db/migrate/#{name.gsub(/^\d+_/,'')}"
|
71
|
+
sleep 1
|
72
|
+
end
|
73
|
+
end
|
74
|
+
# def install_migrations
|
75
|
+
# puts "Copying over migrations..."
|
76
|
+
# Dir.chdir(Rails.root) do
|
77
|
+
# `rake cardboard:install:migrations`
|
78
|
+
# end
|
79
|
+
# end
|
80
|
+
|
81
|
+
protected
|
82
|
+
|
83
|
+
def p(msg)
|
84
|
+
puts msg if generating?
|
85
|
+
end
|
86
|
+
|
87
|
+
def generating?
|
88
|
+
:invoke == behavior
|
89
|
+
end
|
90
|
+
|
91
|
+
def destroying?
|
92
|
+
:revoke == behavior
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Cardboard.setup do |config|
|
2
|
+
|
3
|
+
# == Site Title
|
4
|
+
#
|
5
|
+
# Set the title that is displayed on the main layout
|
6
|
+
# for each of the Cardboard pages.
|
7
|
+
#
|
8
|
+
config.site_title = '<%= @site_title %>'
|
9
|
+
|
10
|
+
# == Admin User Class
|
11
|
+
#
|
12
|
+
# Cardboard will associate actions with the current
|
13
|
+
# user performing them.
|
14
|
+
config.user_class = '<%= @user_class %>'
|
15
|
+
|
16
|
+
# == Current User
|
17
|
+
#
|
18
|
+
# Cardboard will associate actions with the current
|
19
|
+
# user performing them.
|
20
|
+
#
|
21
|
+
# This setting changes the method which Cardboard calls
|
22
|
+
# to return the currently logged in user.
|
23
|
+
config.current_admin_user_method = :<%= @current_user_helper %>
|
24
|
+
|
25
|
+
# == User Authentication
|
26
|
+
#
|
27
|
+
# Cardboard will automatically call an authentication
|
28
|
+
# method in a before filter of all controller actions to
|
29
|
+
# ensure that there is a currently logged in admin user.
|
30
|
+
#
|
31
|
+
# This setting changes the method which Cardboard calls
|
32
|
+
# within the controller.
|
33
|
+
config.authentication_method = :<%= @authentication_method %>
|
34
|
+
|
35
|
+
# == Logging Out
|
36
|
+
#
|
37
|
+
# Cardboard displays a logout link on each screen. These
|
38
|
+
# settings configure the location and method used for the link.
|
39
|
+
#
|
40
|
+
# This setting changes the path where the link points to. If it's
|
41
|
+
# a string, the strings is used as the path. If it's a Symbol, we
|
42
|
+
# will call the method to return the path.
|
43
|
+
#
|
44
|
+
# Default:
|
45
|
+
config.logout_link_path = :<%= @logout_link_path %>
|
46
|
+
|
47
|
+
# This setting changes the http method used when rendering the
|
48
|
+
# link. For example :get, :delete, :put, etc..
|
49
|
+
#
|
50
|
+
# Default:
|
51
|
+
# config.logout_link_method = :get
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# # Page and Settings admin forms
|
2
|
+
# # Example
|
3
|
+
# pages:
|
4
|
+
# home:
|
5
|
+
# title: Welcome
|
6
|
+
# parts:
|
7
|
+
# intro:
|
8
|
+
# fields:
|
9
|
+
# text1:
|
10
|
+
# type: string
|
11
|
+
# text2:
|
12
|
+
# type: string
|
13
|
+
# show_slideshow:
|
14
|
+
# type: boolean
|
15
|
+
# slideshow:
|
16
|
+
# repeatable: true
|
17
|
+
# fields:
|
18
|
+
# image1:
|
19
|
+
# type: image
|
20
|
+
# position: 0
|
21
|
+
# description:
|
22
|
+
# hint: This will be visible on mouse over
|
23
|
+
# type: string
|
24
|
+
# required: false
|
25
|
+
# position: 1
|
26
|
+
# settings:
|
27
|
+
# more_fun:
|
28
|
+
# type: boolean
|
29
|
+
# default: true
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class CreateCardboardFields < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :cardboard_fields do |t|
|
4
|
+
t.string :identifier
|
5
|
+
t.string :label
|
6
|
+
t.string :type
|
7
|
+
t.boolean :required, default: true
|
8
|
+
t.belongs_to :page_part
|
9
|
+
t.integer :position
|
10
|
+
t.text :value_uid
|
11
|
+
t.string :hint
|
12
|
+
t.string :placeholder
|
13
|
+
t.integer :object_with_field_id
|
14
|
+
t.string :object_with_field_type
|
15
|
+
|
16
|
+
t.timestamps
|
17
|
+
end
|
18
|
+
add_index :cardboard_fields, :identifier
|
19
|
+
add_index :cardboard_fields, [:object_with_field_id, :object_with_field_type], :name => 'parent_object'
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateCardboardPageParts < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :cardboard_page_parts do |t|
|
4
|
+
t.string :identifier
|
5
|
+
t.integer :position
|
6
|
+
t.integer :parent_part_id
|
7
|
+
t.boolean :repeatable
|
8
|
+
t.string :label
|
9
|
+
t.belongs_to :page
|
10
|
+
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
add_index :cardboard_page_parts, :page_id
|
14
|
+
add_index :cardboard_page_parts, :identifier
|
15
|
+
add_index :cardboard_page_parts, :parent_part_id
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class CreateCardboardPages < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :cardboard_pages do |t|
|
4
|
+
t.string :title
|
5
|
+
t.string :path
|
6
|
+
t.string :slug
|
7
|
+
t.text :slugs_backup
|
8
|
+
t.integer :position
|
9
|
+
t.text :meta_seo
|
10
|
+
t.boolean :in_menu, default: true
|
11
|
+
t.string :identifier, unique: true
|
12
|
+
|
13
|
+
t.timestamps
|
14
|
+
end
|
15
|
+
add_index :cardboard_pages, [:path, :slug], :unique => true
|
16
|
+
add_index :cardboard_pages, :identifier, :unique => true
|
17
|
+
end
|
18
|
+
end
|