browsercms 3.1.5 → 3.3.0.beta
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.
- data/app/controllers/cms/base_controller.rb +3 -3
- data/app/controllers/cms/content_block_controller.rb +2 -2
- data/app/controllers/cms/content_controller.rb +5 -4
- data/app/controllers/cms/error_handling.rb +1 -1
- data/app/controllers/cms/routes_controller.rb +4 -5
- data/app/controllers/cms/section_nodes_controller.rb +1 -6
- data/app/controllers/cms/sections_controller.rb +2 -3
- data/app/controllers/cms/tasks_controller.rb +3 -0
- data/app/controllers/cms/users_controller.rb +1 -1
- data/app/helpers/cms/application_helper.rb +137 -34
- data/app/helpers/cms/form_builder.rb +33 -21
- data/app/helpers/cms/page_helper.rb +43 -10
- data/app/helpers/cms/path_helper.rb +1 -1
- data/app/helpers/cms/rendering_helper.rb +3 -4
- data/app/helpers/cms/section_nodes_helper.rb +5 -43
- data/app/models/abstract_file_block.rb +1 -16
- data/app/models/attachment.rb +57 -22
- data/app/models/category.rb +4 -4
- data/app/models/category_type.rb +2 -2
- data/app/models/cms/view_context.rb +46 -0
- data/app/models/connector.rb +7 -6
- data/app/models/content_type.rb +3 -3
- data/app/models/dynamic_view.rb +1 -1
- data/app/models/email_message.rb +2 -2
- data/app/models/file_block.rb +12 -0
- data/app/models/group.rb +4 -4
- data/app/models/group_type.rb +4 -4
- data/app/models/html_block.rb +1 -1
- data/app/models/image_block.rb +12 -0
- data/app/models/link.rb +22 -5
- data/app/models/page.rb +87 -46
- data/app/models/page_route.rb +61 -6
- data/app/models/permission.rb +1 -1
- data/app/models/portlet.rb +14 -4
- data/app/models/section.rb +48 -86
- data/app/models/section_node.rb +25 -40
- data/app/models/site.rb +1 -1
- data/app/models/tag.rb +1 -1
- data/app/models/task.rb +8 -7
- data/app/models/user.rb +2 -7
- data/app/portlets/forgot_password_portlet.rb +6 -2
- data/app/portlets/reset_password_portlet.rb +1 -1
- data/app/views/cms/blocks/_toolbar.html.erb +1 -1
- data/app/views/cms/blocks/_toolbar_for_collection.html.erb +3 -6
- data/app/views/cms/blocks/_toolbar_for_member.html.erb +3 -5
- data/app/views/cms/blocks/edit.html.erb +4 -4
- data/app/views/cms/blocks/index.html.erb +7 -7
- data/app/views/cms/blocks/new.html.erb +4 -4
- data/app/views/cms/blocks/show.html.erb +2 -2
- data/app/views/cms/blocks/usages.html.erb +2 -2
- data/app/views/cms/blocks/versions.html.erb +4 -4
- data/app/views/cms/cache/show.html.erb +2 -2
- data/app/views/cms/categories/_form.html.erb +2 -2
- data/app/views/cms/connectors/new.html.erb +6 -8
- data/app/views/cms/content/no_page.html.erb +1 -1
- data/app/views/cms/content/show.html.erb +2 -7
- data/app/views/cms/dashboard/_page_drafts.html.erb +1 -1
- data/app/views/cms/dashboard/_tasks.html.erb +1 -1
- data/app/views/cms/dashboard/index.html.erb +1 -1
- data/app/views/cms/dynamic_views/_form.html.erb +2 -2
- data/app/views/cms/dynamic_views/index.html.erb +7 -10
- data/app/views/cms/email_messages/show.html.erb +2 -2
- data/app/views/cms/file_blocks/_form.html.erb +4 -4
- data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +2 -2
- data/app/views/cms/form_builder/_cms_file_field.html.erb +2 -2
- data/app/views/cms/form_builder/_cms_tag_list.html.erb +2 -2
- data/app/views/cms/form_builder/_cms_text_editor.html.erb +2 -2
- data/app/views/cms/groups/_form.html.erb +5 -5
- data/app/views/cms/groups/_permissions.html.erb +4 -4
- data/app/views/cms/groups/_sections.html.erb +1 -2
- data/app/views/cms/groups/index.html.erb +1 -1
- data/app/views/cms/html_blocks/render.html.erb +1 -1
- data/app/views/cms/image_blocks/_form.html.erb +4 -5
- data/app/views/cms/links/_form.html.erb +1 -1
- data/app/views/cms/links/edit.html.erb +2 -2
- data/app/views/cms/links/new.html.erb +2 -2
- data/app/views/cms/page_routes/_form.html.erb +2 -2
- data/app/views/cms/page_routes/index.html.erb +6 -9
- data/app/views/cms/page_routes/show.html.erb +5 -8
- data/app/views/cms/pages/_edit_connector.html.erb +1 -1
- data/app/views/cms/pages/_form.html.erb +3 -3
- data/app/views/cms/pages/edit.html.erb +2 -2
- data/app/views/cms/pages/new.html.erb +7 -7
- data/app/views/cms/pages/versions.html.erb +4 -4
- data/app/views/cms/redirects/_form.html.erb +2 -2
- data/app/views/cms/redirects/index.html.erb +8 -7
- data/app/views/cms/routes/index.html.erb +2 -2
- data/app/views/cms/section_nodes/_link.html.erb +3 -6
- data/app/views/cms/section_nodes/_node.html.erb +4 -13
- data/app/views/cms/section_nodes/_page.html.erb +7 -13
- data/app/views/cms/section_nodes/_section.html.erb +8 -24
- data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
- data/app/views/cms/section_nodes/index.html.erb +18 -30
- data/app/views/cms/sections/_form.html.erb +4 -6
- data/app/views/cms/sections/edit.html.erb +2 -2
- data/app/views/cms/sections/index.html.erb +3 -3
- data/app/views/cms/sections/new.html.erb +3 -3
- data/app/views/cms/sessions/new.html.erb +3 -3
- data/app/views/cms/shared/_pagination.html.erb +1 -1
- data/app/views/cms/shared/error.html.erb +1 -1
- data/app/views/cms/tags/render.html.erb +2 -2
- data/app/views/cms/tasks/new.html.erb +4 -4
- data/app/views/cms/users/_form.html.erb +3 -3
- data/app/views/cms/users/_toolbar.html.erb +3 -3
- data/app/views/cms/users/change_password.html.erb +5 -5
- data/app/views/cms/users/edit.html.erb +2 -2
- data/app/views/cms/users/index.html.erb +4 -4
- data/app/views/cms/users/new.html.erb +2 -2
- data/app/views/cms/users/show.html.erb +16 -16
- data/app/views/layouts/_cms_toolbar.html.erb +5 -5
- data/app/views/layouts/_page_toolbar.html.erb +11 -11
- data/app/views/layouts/cms/_footer.erb +1 -1
- data/app/views/layouts/cms/_head.html.erb +2 -6
- data/app/views/layouts/cms/administration.html.erb +32 -32
- data/app/views/layouts/cms/content_library.html.erb +5 -5
- data/app/views/layouts/cms/toolbar.html.erb +1 -1
- data/app/views/portlets/email_page/render.html.erb +2 -2
- data/app/views/portlets/forgot_password/render.html.erb +1 -1
- data/app/views/portlets/login/render.html.erb +4 -2
- data/app/views/portlets/reset_password/render.html.erb +1 -1
- data/app/views/tests/pretend/open_with_layout.html.erb +1 -1
- data/bin/bcms +0 -0
- data/bin/bcms-upgrade +232 -0
- data/bin/browsercms +2 -2
- data/browsercms.gemspec +16 -14
- data/db/migrate/20100705083859_browsercms_3_3_0.rb +56 -0
- data/db/seeds.rb +58 -0
- data/doc/guides/html/authentication.html +448 -192
- data/doc/guides/html/build_it_yourself.html +454 -175
- data/doc/guides/html/building_modules.html +451 -220
- data/doc/guides/html/building_templates.html +448 -498
- data/doc/guides/html/content_blocks.html +450 -470
- data/doc/guides/html/customizing_browsercms.html +453 -169
- data/doc/guides/html/deployment_guide.html +443 -82
- data/doc/guides/html/files/bcmsorg.js +28 -0
- data/doc/guides/html/files/clearfix.css +8 -0
- data/doc/guides/html/files/cufon.js +7 -0
- data/doc/guides/html/files/global.css +190 -0
- data/doc/guides/html/files/helvetica.js +91 -0
- data/doc/guides/html/files/jquery.js +11 -0
- data/doc/guides/html/getting_started.html +454 -213
- data/doc/guides/html/index.html +454 -174
- data/doc/guides/html/installing_modules.html +454 -186
- data/doc/guides/html/portlets.html +451 -232
- data/doc/guides/html/user_guide.html +452 -270
- data/doc/guides/html/writing_guides.html +454 -161
- data/lib/acts_as_list.rb +1 -1
- data/lib/browsercms.rb +10 -6
- data/lib/cms/acts.rb +7 -0
- data/lib/cms/authentication.rb +4 -0
- data/lib/cms/authentication/controller.rb +1 -1
- data/lib/cms/behaviors.rb +1 -1
- data/lib/cms/behaviors/archiving.rb +2 -2
- data/lib/cms/behaviors/attaching.rb +28 -43
- data/lib/cms/behaviors/categorizing.rb +1 -1
- data/lib/cms/behaviors/connecting.rb +27 -12
- data/lib/cms/behaviors/dynamic_attributes.rb +8 -5
- data/lib/cms/behaviors/hiding.rb +2 -2
- data/lib/cms/behaviors/publishing.rb +32 -22
- data/lib/cms/behaviors/rendering.rb +41 -18
- data/lib/cms/behaviors/searching.rb +1 -1
- data/lib/cms/behaviors/soft_deleting.rb +58 -29
- data/lib/cms/behaviors/taggable.rb +1 -1
- data/lib/cms/behaviors/userstamping.rb +5 -4
- data/lib/cms/behaviors/versioning.rb +192 -111
- data/lib/cms/content_rendering_support.rb +3 -3
- data/lib/cms/date_picker.rb +23 -0
- data/lib/cms/engine.rb +46 -0
- data/lib/cms/extensions.rb +1 -1
- data/lib/cms/extensions/active_record/errors.rb +2 -2
- data/lib/cms/extensions/hash.rb +4 -2
- data/lib/cms/extensions/string.rb +7 -2
- data/lib/cms/init.rb +32 -21
- data/lib/cms/module.rb +22 -0
- data/lib/cms/module_installation.rb +38 -0
- data/lib/cms/routes.rb +127 -115
- data/lib/cms/version.rb +2 -2
- data/lib/generators/browser_cms.rb +12 -0
- data/lib/generators/browser_cms/cms/USAGE +2 -0
- data/lib/generators/browser_cms/cms/cms_generator.rb +36 -0
- data/{rails_generators/browser_cms → lib/generators/browser_cms/cms}/templates/README +0 -0
- data/{rails_generators/browser_cms_demo_site → lib/generators/browser_cms/demo_site}/USAGE +0 -0
- data/lib/generators/browser_cms/demo_site/demo_site_generator.rb +138 -0
- data/lib/generators/browser_cms/demo_site/templates/demo_site.rake +11 -0
- data/{rails_generators/browser_cms_demo_site/templates/migration.rb → lib/generators/browser_cms/demo_site/templates/migration.erb} +2 -8
- data/lib/generators/cms/content_block/USAGE +22 -0
- data/lib/generators/cms/content_block/content_block_generator.rb +55 -0
- data/{rails_generators → lib/generators/cms}/content_block/templates/_form.html.erb +0 -0
- data/{rails_generators → lib/generators/cms}/content_block/templates/content_block.rb +0 -0
- data/{rails_generators → lib/generators/cms}/content_block/templates/controller.rb +0 -0
- data/{rails_generators → lib/generators/cms}/content_block/templates/functional_test.erb +0 -0
- data/{rails_generators/content_block/templates/migration.rb → lib/generators/cms/content_block/templates/migration.erb} +1 -1
- data/{rails_generators → lib/generators/cms}/content_block/templates/render.html.erb +0 -0
- data/{rails_generators → lib/generators/cms}/content_block/templates/unit_test.erb +0 -0
- data/lib/generators/cms/install/USAGE +8 -0
- data/lib/generators/cms/install/install_generator.rb +20 -0
- data/{rails_generators → lib/generators/cms}/portlet/USAGE +3 -16
- data/lib/generators/cms/portlet/portlet_generator.rb +38 -0
- data/{rails_generators → lib/generators/cms}/portlet/templates/_form.html.erb +0 -0
- data/{rails_generators → lib/generators/cms}/portlet/templates/portlet.rb +0 -0
- data/{rails_generators → lib/generators/cms}/portlet/templates/portlet_helper.rb +0 -0
- data/{rails_generators → lib/generators/cms}/portlet/templates/render.html.erb +0 -0
- data/{rails_generators → lib/generators/cms}/portlet/templates/unit_test.erb +0 -0
- data/{rails_generators → lib/generators/cms}/template/USAGE +1 -1
- data/lib/generators/cms/template/template_generator.rb +18 -0
- data/lib/generators/cms/template/templates/template.erb +2 -0
- data/lib/generators/cms/upgrade_module/README.txt +3 -0
- data/lib/generators/cms/upgrade_module/templates/20100705083859_browsercms_3_3_0.rb +56 -0
- data/lib/generators/cms/upgrade_module/templates/README +1 -0
- data/lib/generators/cms/upgrade_module/templates/USAGE.erb +10 -0
- data/lib/generators/cms/upgrade_module/templates/build_gem.rake +5 -0
- data/lib/generators/cms/upgrade_module/templates/engine.erb +7 -0
- data/lib/generators/cms/upgrade_module/templates/gemspec.erb +25 -0
- data/lib/generators/cms/upgrade_module/templates/gitignore.erb +11 -0
- data/lib/generators/cms/upgrade_module/templates/install.erb +9 -0
- data/lib/generators/cms/upgrade_module/templates/module_file.erb +3 -0
- data/lib/generators/cms/upgrade_module/templates/routes.erb +7 -0
- data/lib/generators/cms/upgrade_module/upgrade_module_generator.rb +61 -0
- data/lib/tasks/build_gem.rake +1 -0
- data/lib/tasks/cms.rake +34 -6
- data/lib/tasks/cucumber.rake +53 -0
- data/lib/tasks/db.rake +2 -2
- data/public/javascripts/cms/application.js +144 -135
- data/public/javascripts/cms/sitemap.js +383 -357
- data/public/javascripts/jquery-ui.js +782 -591
- data/public/javascripts/jquery.cookie.js +38 -43
- data/public/javascripts/jquery.js +13 -8
- data/public/javascripts/jquery.taglist.js +7 -0
- data/public/stylesheets/cms/date_picker.css +49 -40
- data/rails/init.rb +2 -3
- data/templates/blank.rb +13 -7
- data/templates/demo.rb +15 -7
- data/templates/module.rb +12 -75
- metadata +87 -407
- data/app/helpers/cms/content_block_helper.rb +0 -27
- data/app/views/layouts/cms/thickbox.html.erb +0 -24
- data/db/migrate/20120117144039_browsercms315.rb +0 -94
- data/db/migrate/20121114172307_load_seeds.rb +0 -70
- data/lib/cms/addressable.rb +0 -83
- data/lib/cms/error_pages.rb +0 -8
- data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
- data/public/images/cms/thickbox/macFFBgHack.png +0 -0
- data/public/javascripts/jquery.contextMenu.js +0 -211
- data/public/javascripts/jquery.dimensions.js +0 -119
- data/public/javascripts/jquery.thickbox.js +0 -10
- data/public/stylesheets/cms/jquery.contextMenu.css +0 -61
- data/public/stylesheets/cms/thickbox.css +0 -163
- data/rails_generators/browser_cms/USAGE +0 -2
- data/rails_generators/browser_cms/browser_cms_generator.rb +0 -35
- data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +0 -63
- data/rails_generators/content_block/USAGE +0 -32
- data/rails_generators/content_block/content_block_generator.rb +0 -69
- data/rails_generators/portlet/portlet_generator.rb +0 -35
- data/rails_generators/template/template_generator.rb +0 -18
- data/rails_generators/template/templates/template.erb +0 -3
- data/test/custom_assertions.rb +0 -74
- data/test/factories.rb +0 -111
- data/test/factories/sitemap_factories.rb +0 -28
- data/test/fixtures/connectors.yml +0 -97
- data/test/fixtures/content_type_groups.yml +0 -13
- data/test/fixtures/content_types.yml +0 -50
- data/test/fixtures/dynamic_view_versions.yml +0 -26
- data/test/fixtures/dynamic_views.yml +0 -26
- data/test/fixtures/group_permissions.yml +0 -16
- data/test/fixtures/group_sections.yml +0 -31
- data/test/fixtures/group_type_permissions.yml +0 -11
- data/test/fixtures/group_types.yml +0 -25
- data/test/fixtures/groups.yml +0 -25
- data/test/fixtures/html_block_versions.yml +0 -67
- data/test/fixtures/html_blocks.yml +0 -63
- data/test/fixtures/page_versions.yml +0 -265
- data/test/fixtures/pages.yml +0 -85
- data/test/fixtures/permissions.yml +0 -28
- data/test/fixtures/section_nodes.yml +0 -46
- data/test/fixtures/sections.yml +0 -19
- data/test/fixtures/sites.yml +0 -9
- data/test/fixtures/user_group_memberships.yml +0 -11
- data/test/fixtures/users.yml +0 -15
- data/test/functional/cms/cache_controller_test.rb +0 -14
- data/test/functional/cms/categories_controller_test.rb +0 -25
- data/test/functional/cms/connectors_controller_test.rb +0 -60
- data/test/functional/cms/content_block_controller_test.rb +0 -120
- data/test/functional/cms/content_controller_test.rb +0 -439
- data/test/functional/cms/content_types_controller_test.rb +0 -18
- data/test/functional/cms/dashboard_controller_test.rb +0 -16
- data/test/functional/cms/dynamic_views_controller_test.rb +0 -52
- data/test/functional/cms/file_blocks_controller_test.rb +0 -52
- data/test/functional/cms/groups_controller_test.rb +0 -50
- data/test/functional/cms/home_controller_test.rb +0 -156
- data/test/functional/cms/html_blocks_controller_test.rb +0 -164
- data/test/functional/cms/image_blocks_controller_test.rb +0 -82
- data/test/functional/cms/links_controller_test.rb +0 -148
- data/test/functional/cms/pages_controller_test.rb +0 -227
- data/test/functional/cms/portlets_controller_test.rb +0 -67
- data/test/functional/cms/section_nodes_controller_test.rb +0 -112
- data/test/functional/cms/sections_controller_test.rb +0 -227
- data/test/functional/cms/sessions_controller_test.rb +0 -76
- data/test/functional/cms/toolbar_controller_test.rb +0 -64
- data/test/functional/cms/users_controller_test.rb +0 -231
- data/test/functional/tests/pretend_controller_test.rb +0 -57
- data/test/integration/cms/ckeditor_test.rb +0 -30
- data/test/integration/cms/password_management_test.rb +0 -56
- data/test/integration/login_test.rb +0 -14
- data/test/integration/sitemap_performance_test.rb +0 -26
- data/test/selenium-core/Blank.html +0 -7
- data/test/selenium-core/InjectedRemoteRunner.html +0 -8
- data/test/selenium-core/RemoteRunner.html +0 -110
- data/test/selenium-core/SeleniumLog.html +0 -109
- data/test/selenium-core/TestPrompt.html +0 -145
- data/test/selenium-core/TestRunner-splash.html +0 -55
- data/test/selenium-core/TestRunner.hta +0 -176
- data/test/selenium-core/TestRunner.html +0 -176
- data/test/selenium-core/domviewer/butmin.gif +0 -0
- data/test/selenium-core/domviewer/butplus.gif +0 -0
- data/test/selenium-core/domviewer/domviewer.css +0 -298
- data/test/selenium-core/domviewer/domviewer.html +0 -16
- data/test/selenium-core/domviewer/selenium-domviewer.js +0 -205
- data/test/selenium-core/icons/all.png +0 -0
- data/test/selenium-core/icons/continue.png +0 -0
- data/test/selenium-core/icons/continue_disabled.png +0 -0
- data/test/selenium-core/icons/pause.png +0 -0
- data/test/selenium-core/icons/pause_disabled.png +0 -0
- data/test/selenium-core/icons/selected.png +0 -0
- data/test/selenium-core/icons/step.png +0 -0
- data/test/selenium-core/icons/step_disabled.png +0 -0
- data/test/selenium-core/iedoc-core.xml +0 -1515
- data/test/selenium-core/iedoc.xml +0 -1469
- data/test/selenium-core/lib/cssQuery/cssQuery-p.js +0 -6
- data/test/selenium-core/lib/cssQuery/src/cssQuery-level2.js +0 -142
- data/test/selenium-core/lib/cssQuery/src/cssQuery-level3.js +0 -150
- data/test/selenium-core/lib/cssQuery/src/cssQuery-standard.js +0 -53
- data/test/selenium-core/lib/cssQuery/src/cssQuery.js +0 -356
- data/test/selenium-core/lib/prototype.js +0 -2006
- data/test/selenium-core/lib/scriptaculous/builder.js +0 -101
- data/test/selenium-core/lib/scriptaculous/controls.js +0 -815
- data/test/selenium-core/lib/scriptaculous/dragdrop.js +0 -915
- data/test/selenium-core/lib/scriptaculous/effects.js +0 -958
- data/test/selenium-core/lib/scriptaculous/scriptaculous.js +0 -47
- data/test/selenium-core/lib/scriptaculous/slider.js +0 -283
- data/test/selenium-core/lib/scriptaculous/unittest.js +0 -383
- data/test/selenium-core/scripts/find_matching_child.js +0 -69
- data/test/selenium-core/scripts/htmlutils.js +0 -894
- data/test/selenium-core/scripts/injection.html +0 -72
- data/test/selenium-core/scripts/js2html.js +0 -70
- data/test/selenium-core/scripts/narcissus-defs.js +0 -175
- data/test/selenium-core/scripts/narcissus-exec.js +0 -1054
- data/test/selenium-core/scripts/narcissus-parse.js +0 -1003
- data/test/selenium-core/scripts/se2html.js +0 -63
- data/test/selenium-core/scripts/selenium-api.js +0 -2409
- data/test/selenium-core/scripts/selenium-browserbot.js +0 -2203
- data/test/selenium-core/scripts/selenium-browserdetect.js +0 -150
- data/test/selenium-core/scripts/selenium-commandhandlers.js +0 -377
- data/test/selenium-core/scripts/selenium-executionloop.js +0 -175
- data/test/selenium-core/scripts/selenium-logging.js +0 -147
- data/test/selenium-core/scripts/selenium-remoterunner.js +0 -571
- data/test/selenium-core/scripts/selenium-testrunner.js +0 -1333
- data/test/selenium-core/scripts/selenium-version.js +0 -5
- data/test/selenium-core/scripts/user-extensions.js +0 -3
- data/test/selenium-core/scripts/user-extensions.js.sample +0 -75
- data/test/selenium-core/scripts/xmlextras.js +0 -153
- data/test/selenium-core/selenium-logo.png +0 -0
- data/test/selenium-core/selenium-test.css +0 -43
- data/test/selenium-core/selenium.css +0 -299
- data/test/selenium-core/xpath/dom.js +0 -428
- data/test/selenium-core/xpath/misc.js +0 -252
- data/test/selenium-core/xpath/xpath.js +0 -2223
- data/test/selenium/_login_as_cmsadmin.rsel +0 -4
- data/test/selenium/dashboard.rsel +0 -5
- data/test/selenium/html_blocks.rsel +0 -4
- data/test/selenium/login/failed_login.rsel +0 -8
- data/test/selenium/login/successful_login.rsel +0 -9
- data/test/selenium/page_templates.rsel +0 -12
- data/test/selenium/pages/edit_properties.rsel +0 -5
- data/test/selenium/site/view_home_page.rsel +0 -4
- data/test/selenium/sitemap/move_page.rsel +0 -9
- data/test/selenium/sitemap/open_section.rsel +0 -6
- data/test/selenium/sitemap/select_page.rsel +0 -12
- data/test/selenium/sitemap/select_section.rsel +0 -17
- data/test/test_helper.rb +0 -193
- data/test/test_logging.rb +0 -67
- data/test/unit/behaviors/attaching_test.rb +0 -357
- data/test/unit/behaviors/connectable_test.rb +0 -29
- data/test/unit/behaviors/dynamic_attributes_test.rb +0 -38
- data/test/unit/behaviors/publishable_test.rb +0 -84
- data/test/unit/behaviors/searching_test.rb +0 -102
- data/test/unit/behaviors/taggable_test.rb +0 -109
- data/test/unit/behaviors/versioning_test.rb +0 -36
- data/test/unit/extensions/active_record/base_test.rb +0 -10
- data/test/unit/extensions/hash_test.rb +0 -17
- data/test/unit/extensions/integer_test.rb +0 -10
- data/test/unit/helpers/application_helper_test.rb +0 -77
- data/test/unit/helpers/form_builder_test.rb +0 -36
- data/test/unit/helpers/menu_helper_test.rb +0 -242
- data/test/unit/helpers/page_helper_test.rb +0 -67
- data/test/unit/helpers/path_helper_test.rb +0 -57
- data/test/unit/lib/acts_as_content_page_test.rb +0 -72
- data/test/unit/lib/cms/authentication/controller_test.rb +0 -20
- data/test/unit/lib/cms/sitemap_test.rb +0 -206
- data/test/unit/lib/cms_domain_support_test.rb +0 -43
- data/test/unit/lib/command_line_test.rb +0 -70
- data/test/unit/lib/content_block_test.rb +0 -203
- data/test/unit/lib/content_rendering_support_test.rb +0 -40
- data/test/unit/lib/generators_test.rb +0 -40
- data/test/unit/lib/routes_test.rb +0 -57
- data/test/unit/models/attachment_test.rb +0 -116
- data/test/unit/models/category_test.rb +0 -40
- data/test/unit/models/category_type_test.rb +0 -8
- data/test/unit/models/connector_test.rb +0 -152
- data/test/unit/models/content_type_test.rb +0 -56
- data/test/unit/models/email_page_portlet_test.rb +0 -14
- data/test/unit/models/file_block_test.rb +0 -230
- data/test/unit/models/group_test.rb +0 -13
- data/test/unit/models/html_block_test.rb +0 -102
- data/test/unit/models/link_test.rb +0 -52
- data/test/unit/models/page_partial_test.rb +0 -29
- data/test/unit/models/page_route_test.rb +0 -29
- data/test/unit/models/page_template_test.rb +0 -40
- data/test/unit/models/page_test.rb +0 -792
- data/test/unit/models/permission_test.rb +0 -10
- data/test/unit/models/portlet_test.rb +0 -69
- data/test/unit/models/sections_test.rb +0 -264
- data/test/unit/models/site_test.rb +0 -50
- data/test/unit/models/task_test.rb +0 -141
- data/test/unit/models/user_test.rb +0 -352
- data/test/unit/schema_statements_test.rb +0 -41
data/lib/cms/version.rb
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require 'rails/generators/base'
|
|
2
|
+
|
|
3
|
+
module BrowserCms
|
|
4
|
+
module Generators
|
|
5
|
+
# Base class for generators that work on copying files out of the Gem into projects.
|
|
6
|
+
class Base < Rails::Generators::Base
|
|
7
|
+
def self.source_root
|
|
8
|
+
@_browsercms_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), '../../'))
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'generators/browser_cms'
|
|
2
|
+
module BrowserCms
|
|
3
|
+
module Generators
|
|
4
|
+
|
|
5
|
+
# For creating a new BrowserCMS project (Used in conjunction with the blank, demo and module templates.
|
|
6
|
+
class CmsGenerator < Base
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def enable_static_asset_serving
|
|
10
|
+
application do
|
|
11
|
+
code = "# BrowserCMS should serve static CMS assets (js, css, images) from the Gem\n"
|
|
12
|
+
code = code + "config.serve_static_assets = true"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def copy_migrations_and_custom_js_files
|
|
17
|
+
|
|
18
|
+
files_to_copy = [
|
|
19
|
+
# For FCKEditor customization. Not sure this is even necessary anymore
|
|
20
|
+
'public/site/customconfig.js',
|
|
21
|
+
|
|
22
|
+
# Migrations/seed data
|
|
23
|
+
'db/migrate/20080815014337_browsercms_3_0_0.rb',
|
|
24
|
+
'db/migrate/20091109175123_browsercms_3_0_5.rb',
|
|
25
|
+
'db/seeds.rb'
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
files_to_copy.each do |file|
|
|
29
|
+
copy_file file, file
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
require 'generators/browser_cms'
|
|
2
|
+
require 'rails/generators/migration'
|
|
3
|
+
module BrowserCms
|
|
4
|
+
module Generators
|
|
5
|
+
class DemoSiteGenerator < Base
|
|
6
|
+
include Rails::Generators::Migration
|
|
7
|
+
|
|
8
|
+
def create_demo_site
|
|
9
|
+
# Copy all public files
|
|
10
|
+
Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
|
|
11
|
+
if File.file?(f)
|
|
12
|
+
file_name = f.sub("#{Cms.root}/", '')
|
|
13
|
+
directory File.dirname(file_name)
|
|
14
|
+
copy_file Cms.scrub_path(f), file_name
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
copy_file 'lib/generators/browser_cms/demo_site/templates/demo_site.rake', 'db/migrate/demo_site.rake'
|
|
19
|
+
|
|
20
|
+
template templates_dir('migration.erb'), 'db/demo_site_seeds.rb', :assigns => {
|
|
21
|
+
:data => data,
|
|
22
|
+
:page_templates => page_templates,
|
|
23
|
+
:page_partials => page_partials
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
def templates_dir(file=nil)
|
|
30
|
+
f = File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
|
|
31
|
+
Cms.scrub_path(f)
|
|
32
|
+
end
|
|
33
|
+
def data
|
|
34
|
+
open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Returns an array of strings that are ruby code.
|
|
38
|
+
# Each string is a hash that should be passed to the create_page_template method
|
|
39
|
+
# in the migration
|
|
40
|
+
def page_templates
|
|
41
|
+
Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
|
|
42
|
+
name, format, handler = File.basename(f).split('.')
|
|
43
|
+
%Q{create_page_template(:#{name},
|
|
44
|
+
:name => "#{name}", :format => "#{format}", :handler => "#{handler}",
|
|
45
|
+
:body => <<-HTML
|
|
46
|
+
#{open(f){|f| f.read}}
|
|
47
|
+
HTML
|
|
48
|
+
)}
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def page_partials
|
|
53
|
+
Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
|
|
54
|
+
name, format, handler = File.basename(f).split('.')
|
|
55
|
+
%Q{create_page_partial(:#{name},
|
|
56
|
+
:name => "#{name}", :format => "#{format}", :handler => "#{handler}",
|
|
57
|
+
:body => <<-HTML
|
|
58
|
+
#{open(f){|f| f.read}}
|
|
59
|
+
HTML
|
|
60
|
+
)}
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# FIXME: Should be proxied to ActiveRecord::Generators::Base
|
|
65
|
+
# Implement the required interface for Rails::Generators::Migration.
|
|
66
|
+
def self.next_migration_number(dirname) #:nodoc:
|
|
67
|
+
if ActiveRecord::Base.timestamped_migrations
|
|
68
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
|
69
|
+
else
|
|
70
|
+
"%.3d" % (current_migration_number(dirname) + 1)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
# class BrowserCmsDemoSiteGenerator < Rails::Generator::Base
|
|
77
|
+
#
|
|
78
|
+
# def source_root
|
|
79
|
+
# "/"
|
|
80
|
+
# end
|
|
81
|
+
#
|
|
82
|
+
# def templates_dir(file=nil)
|
|
83
|
+
# f = File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
|
|
84
|
+
# Cms.scrub_path(f)
|
|
85
|
+
# end
|
|
86
|
+
#
|
|
87
|
+
# def manifest
|
|
88
|
+
# record do |m|
|
|
89
|
+
# # Copy all public files
|
|
90
|
+
# Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
|
|
91
|
+
# if File.file?(f)
|
|
92
|
+
# file_name = f.sub("#{Cms.root}/", '')
|
|
93
|
+
# m.directory File.dirname(file_name)
|
|
94
|
+
# m.file Cms.scrub_path(f), file_name
|
|
95
|
+
# end
|
|
96
|
+
# end
|
|
97
|
+
#
|
|
98
|
+
# m.migration_template templates_dir('migration.rb'), 'db/migrate', :assigns => {
|
|
99
|
+
# :data => data,
|
|
100
|
+
# :page_templates => page_templates,
|
|
101
|
+
# :page_partials => page_partials
|
|
102
|
+
# }, :migration_file_name => "load_demo_site_data"
|
|
103
|
+
#
|
|
104
|
+
# end
|
|
105
|
+
# end
|
|
106
|
+
#
|
|
107
|
+
# def data
|
|
108
|
+
# open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
|
|
109
|
+
# end
|
|
110
|
+
#
|
|
111
|
+
# # Returns an array of strings that are ruby code.
|
|
112
|
+
# # Each string is a hash that should be passed to the create_page_template method
|
|
113
|
+
# # in the migration
|
|
114
|
+
# def page_templates
|
|
115
|
+
# Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
|
|
116
|
+
# name, format, handler = File.basename(f).split('.')
|
|
117
|
+
# %Q{create_page_template(:#{name},
|
|
118
|
+
# :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
|
|
119
|
+
# :body => <<-HTML
|
|
120
|
+
# #{open(f){|f| f.read}}
|
|
121
|
+
# HTML
|
|
122
|
+
# )}
|
|
123
|
+
# end
|
|
124
|
+
# end
|
|
125
|
+
#
|
|
126
|
+
# def page_partials
|
|
127
|
+
# Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
|
|
128
|
+
# name, format, handler = File.basename(f).split('.')
|
|
129
|
+
# %Q{create_page_partial(:#{name},
|
|
130
|
+
# :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
|
|
131
|
+
# :body => <<-HTML
|
|
132
|
+
# #{open(f){|f| f.read}}
|
|
133
|
+
# HTML
|
|
134
|
+
# )}
|
|
135
|
+
# end
|
|
136
|
+
# end
|
|
137
|
+
#
|
|
138
|
+
# end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'find'
|
|
2
|
+
|
|
3
|
+
namespace :db do
|
|
4
|
+
|
|
5
|
+
desc 'Load the demo site seed data from db/seeds.rb'
|
|
6
|
+
task :seed_demo_site => 'db:abort_if_pending_migrations' do
|
|
7
|
+
demo_seed_file = File.join(Rails.root, 'db', 'demo_site_seeds.rb')
|
|
8
|
+
load(demo_seed_file) if File.exist?(demo_seed_file)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
require 'cms/data_loader'
|
|
2
|
+
include Cms::DataLoader
|
|
3
3
|
|
|
4
|
-
def self.up
|
|
5
4
|
<%= data %>
|
|
6
5
|
|
|
7
6
|
# Create templates
|
|
@@ -13,9 +12,4 @@ class LoadDemoSiteData < ActiveRecord::Migration
|
|
|
13
12
|
<% page_partials.each do |pp| %>
|
|
14
13
|
<%= pp %>
|
|
15
14
|
<% end %>
|
|
16
|
-
end
|
|
17
15
|
|
|
18
|
-
def self.down
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Create a new content block, along with controller, tests and migrations.
|
|
3
|
+
|
|
4
|
+
Examples:
|
|
5
|
+
`rails generate cms:content article`
|
|
6
|
+
|
|
7
|
+
Creates an Article model, controller, views, tests, and migration:
|
|
8
|
+
Model: app/models/article.rb
|
|
9
|
+
Unit Test: test/unit/models/article_test.rb
|
|
10
|
+
Migration: db/migrate/XXX_create_article.rb
|
|
11
|
+
Controller: app/controllers/cms/article_controller.rb
|
|
12
|
+
Functional Test: test/functional/cms/article_controler_test.rb
|
|
13
|
+
Form Partials: app/views/cms/articles/_form.html.erb
|
|
14
|
+
app/views/cms/articles/render.html.erb
|
|
15
|
+
|
|
16
|
+
This block will have a single attribute, name:string and a form with text_field
|
|
17
|
+
to edit the name.
|
|
18
|
+
|
|
19
|
+
`rails generate content Article name:string body:text published:boolean`
|
|
20
|
+
|
|
21
|
+
Creates an Article model with a string name, text body, and published flag.
|
|
22
|
+
It will create form fields for these attributes in _form.html.erb.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
require 'rails/generators/active_record/migration'
|
|
2
|
+
|
|
3
|
+
module Cms
|
|
4
|
+
module Generators
|
|
5
|
+
# Allows developers to create new Content Blocks for their projects.
|
|
6
|
+
#
|
|
7
|
+
class ContentBlockGenerator < Rails::Generators::NamedBase
|
|
8
|
+
|
|
9
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
10
|
+
argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
|
|
11
|
+
class_option :migration, :type => :boolean, :default=>true
|
|
12
|
+
|
|
13
|
+
include Rails::Generators::Migration
|
|
14
|
+
extend ActiveRecord::Generators::Migration
|
|
15
|
+
|
|
16
|
+
# Don't check for class collision as overwriting content blocks is fine.
|
|
17
|
+
# check_class_collision
|
|
18
|
+
|
|
19
|
+
def create_content_block
|
|
20
|
+
template 'content_block.rb', File.join('app/models', "#{file_name}.rb")
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def create_model_test
|
|
24
|
+
template 'unit_test.erb', File.join('test', 'unit', 'models', "#{file_name}_test.rb")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def create_controller_and_views
|
|
28
|
+
template 'controller.rb', File.join('app/controllers/cms', "#{file_name.pluralize}_controller.rb")
|
|
29
|
+
template '_form.html.erb', File.join('app/views/cms/', file_name.pluralize, "_form.html.erb")
|
|
30
|
+
template 'render.html.erb', File.join('app/views/cms/', file_name.pluralize, "render.html.erb")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def create_functional_test
|
|
34
|
+
template 'functional_test.erb', File.join('test/functional/cms/', "#{file_name.pluralize}_controller_test.rb")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def create_routes
|
|
38
|
+
route "namespace :cms do content_blocks :#{file_name.pluralize} end\n"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def create_migration_file
|
|
42
|
+
return unless options[:migration]
|
|
43
|
+
migration_template "migration.erb", "db/migrate/create_#{table_name}.rb"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
# Used by migration.rb to fill in class name.
|
|
49
|
+
def migration_name
|
|
50
|
+
"Create#{class_name.pluralize.gsub(/::/, '')}"
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -23,7 +23,7 @@ class <%= migration_name %> < ActiveRecord::Migration
|
|
|
23
23
|
CategoryType.create!(:name => "<%= @category_type %>")
|
|
24
24
|
end<% end %>
|
|
25
25
|
<% if @attachment_section %>unless Section.with_path('/<%= file_name.pluralize %>').exists?
|
|
26
|
-
Section.create!(:name => "<%= @attachment_section %>", :parent => Section.
|
|
26
|
+
Section.create!(:name => "<%= @attachment_section %>", :parent => Section.system_section.first, :path => '/<%= file_name.pluralize %>', :allow_groups=>:all)
|
|
27
27
|
end<% end %>
|
|
28
28
|
ContentType.create!(:name => "<%= class_name %>", :group_name => "<%= class_name %>")
|
|
29
29
|
end
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'generators/browser_cms/cms/cms_generator'
|
|
2
|
+
|
|
3
|
+
module Cms
|
|
4
|
+
|
|
5
|
+
# A generic generator for installing BrowserCMS modules into a project. This will do the following:
|
|
6
|
+
#
|
|
7
|
+
# 1. Add the Gem to your Gemfile
|
|
8
|
+
# 2. Call the name_of_module:install generator for that gem.
|
|
9
|
+
# 3. Add the routes to the project
|
|
10
|
+
class InstallGenerator < Rails::Generators::NamedBase
|
|
11
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
12
|
+
|
|
13
|
+
def add_and_install_module
|
|
14
|
+
gem name
|
|
15
|
+
generate("#{name}:install")
|
|
16
|
+
route "routes_for_#{name}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -3,7 +3,7 @@ Description:
|
|
|
3
3
|
under_scored, and an optional list of attribute pairs as arguments.
|
|
4
4
|
|
|
5
5
|
Attribute pairs are column_name:sql_type arguments specifying the
|
|
6
|
-
model's attributes. By default, portlets
|
|
6
|
+
model's attributes. By default, portlets includes a Name (String) and template (Template Editor)
|
|
7
7
|
attributes, so do not specify them.
|
|
8
8
|
|
|
9
9
|
This generates a portlet class in app/portlets, a form in app/view/portlets and
|
|
@@ -13,20 +13,7 @@ Description:
|
|
|
13
13
|
The name you supply will have "portlet" added to it, much the same way controllers work.
|
|
14
14
|
|
|
15
15
|
Example:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
A portlet to find and display a list of recent Article blocks.
|
|
19
|
-
Portlet: app/portlets/list_recent_articles_portlet.rb
|
|
20
|
-
Helper: app/portlets/helpers/list_recent_articles_portlet_helper.rb
|
|
21
|
-
Form View: app/views/portlets/list_recent_articles/_form.html.erb
|
|
22
|
-
Default Template: app/views/portlets/list_recent_articles/render.html.erb
|
|
23
|
-
Unit Test: test/unit/portlets/list_recent_articles_portlet_test.rb
|
|
24
|
-
|
|
25
|
-
The _form.html.erb will have two fields, a text_field for name, and text_area for
|
|
26
|
-
the default template, which will plug in whatever is in render.html.erb.
|
|
27
|
-
|
|
28
|
-
Example with attributes:
|
|
29
|
-
`./script/generate portlet find_top_x_articles number_to_show:integer description:string`
|
|
16
|
+
`rails generate cms:portlet find_top_x_articles number_to_show:integer description:string`
|
|
30
17
|
|
|
31
18
|
A portlet to display a specific number of articles, as specified in the admin UI.
|
|
32
19
|
Portlet: app/portlets/find_top_x_articles_portlet.rb
|
|
@@ -36,4 +23,4 @@ Example with attributes:
|
|
|
36
23
|
Unit Test: test/unit/portlets/find_top_x_articles_portlet_test.rb
|
|
37
24
|
|
|
38
25
|
The _form.html.erb will have text_fields for name, number_to_show and description, as
|
|
39
|
-
well as a
|
|
26
|
+
well as a template_editor for template.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
module Cms
|
|
2
|
+
module Generators
|
|
3
|
+
class PortletGenerator < Rails::Generators::NamedBase
|
|
4
|
+
|
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
6
|
+
argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
|
|
7
|
+
check_class_collision
|
|
8
|
+
|
|
9
|
+
def create_portlet
|
|
10
|
+
template 'portlet.rb', File.join('app/portlets', class_path, "#{portlet_file_name}.rb")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def create_helper
|
|
14
|
+
template 'portlet_helper.rb', File.join('app/portlets/helpers', class_path, "#{portlet_file_name}_helper.rb")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def create_views
|
|
18
|
+
template '_form.html.erb', File.join('app/views/portlets/', file_name, "_form.html.erb")
|
|
19
|
+
template 'render.html.erb', File.join('app/views/portlets/', file_name, "render.html.erb")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def create_tests
|
|
23
|
+
template 'unit_test.erb', File.join('test/unit/portlets', "#{portlet_file_name}_test.rb")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def portlet_class_name
|
|
29
|
+
"#{class_name}Portlet"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def portlet_file_name
|
|
33
|
+
"#{file_name}_portlet"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|