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
|
@@ -1,19 +1,35 @@
|
|
|
1
1
|
module Cms
|
|
2
2
|
module PageHelper
|
|
3
|
+
|
|
4
|
+
# Outputs the title for this page. Used by both internal CMS pages, as well as page templates. If not explicitily set,
|
|
5
|
+
# returns the title of the page.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] The name this page should be set to.
|
|
8
|
+
# @return [String] The title of the page.
|
|
3
9
|
def page_title(*args)
|
|
4
10
|
if args.first
|
|
5
|
-
@
|
|
11
|
+
# Removed unneeded indirection/fixed issue where @template is frozen in r1.9.1
|
|
12
|
+
@page_title = args.first
|
|
6
13
|
else
|
|
7
|
-
@
|
|
14
|
+
@page_title ? @page_title : current_page.page_title
|
|
8
15
|
end
|
|
9
16
|
end
|
|
10
17
|
|
|
11
18
|
def current_page
|
|
12
19
|
@page
|
|
13
20
|
end
|
|
14
|
-
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# Outputs the content of a particular container. If the user is in 'edit' mode the container and block controls will
|
|
24
|
+
# be rendered.
|
|
25
|
+
#
|
|
26
|
+
# Note: As of Jan 19, 2010, all render.html.erb templates must handle marking their content as 'html_safe'. This is
|
|
27
|
+
# bit of a pain, but I can't figure out how (or if) i can globally do that or not.
|
|
28
|
+
#
|
|
29
|
+
# @returns [String] The HTML content for the container.
|
|
15
30
|
def container(name)
|
|
16
|
-
|
|
31
|
+
page_content = instance_variable_get("@_content_for")
|
|
32
|
+
content = page_content[name]
|
|
17
33
|
if logged_in? && @page && @mode == "edit" && current_user.able_to_edit?(@page)
|
|
18
34
|
render :partial => 'cms/pages/edit_container', :locals => {:name => name, :content => content}
|
|
19
35
|
else
|
|
@@ -21,6 +37,18 @@ module Cms
|
|
|
21
37
|
end
|
|
22
38
|
end
|
|
23
39
|
|
|
40
|
+
# Determine if a given container has any blocks within it. Useful for determine if markup should be conditionally included
|
|
41
|
+
# when a block is present, but not shown if no block was added. For example:
|
|
42
|
+
#
|
|
43
|
+
# <% unless container_has_block? :sidebar %>
|
|
44
|
+
# <div id="sidebar">
|
|
45
|
+
# <%= container :sidebar %>
|
|
46
|
+
# </div>
|
|
47
|
+
# <% end %>
|
|
48
|
+
#
|
|
49
|
+
# @param [Symbol] name The name of the container to check
|
|
50
|
+
# @param [Proc] block
|
|
51
|
+
# @return [Boolean] True if the container has one or more blocks, or if we are in edit mode. False otherwise.
|
|
24
52
|
def container_has_block?(name, &block)
|
|
25
53
|
has_block = (@mode == "edit") || current_page.connectable_count_for_container(name) > 0
|
|
26
54
|
logger.info "mode = #{@mode}, has_block = #{has_block}"
|
|
@@ -30,12 +58,17 @@ module Cms
|
|
|
30
58
|
has_block
|
|
31
59
|
end
|
|
32
60
|
end
|
|
33
|
-
|
|
61
|
+
|
|
62
|
+
# Add the code to render the CMS toolbar.
|
|
34
63
|
def cms_toolbar
|
|
35
|
-
|
|
64
|
+
toolbar = <<HTML
|
|
65
|
+
<iframe src="#{cms_toolbar_path(:page_id => @page.id, :page_version => @page.version, :mode => @mode, :page_toolbar => @show_page_toolbar ? 1 : 0) }" width="100%" height="#{@show_page_toolbar ? 159 : 100 }px" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" name="cms_toolbar"></iframe>
|
|
66
|
+
HTML
|
|
67
|
+
toolbar.html_safe if @show_toolbar
|
|
36
68
|
end
|
|
37
69
|
|
|
38
70
|
|
|
71
|
+
|
|
39
72
|
# Renders breadcrumbs based on the current_page. This will generate an unordered list representing the
|
|
40
73
|
# current page and all it's ancestors including the root name of of the site. The UL can be styled via CSS for
|
|
41
74
|
# layout purposes. Each breadcrumb except the last will be linked to the page in question.
|
|
@@ -61,15 +94,14 @@ module Cms
|
|
|
61
94
|
items = []
|
|
62
95
|
ancestors[start..ancestors.size].each_with_index do |sec,i|
|
|
63
96
|
items << content_tag(:li,
|
|
64
|
-
link_to(h(sec.name), sec.actual_path),
|
|
65
|
-
(i == 0 ? {:class => "first"} : {}))
|
|
97
|
+
link_to(h(sec.name), sec.actual_path), (i == 0 ? {:class => "first"} : {}))
|
|
66
98
|
end
|
|
67
99
|
if !show_parent && current_page.section.path == current_page.path
|
|
68
100
|
items[items.size-1] = content_tag(:li, h(current_page.section.name))
|
|
69
101
|
else
|
|
70
102
|
items << content_tag(:li, h(current_page.page_title))
|
|
71
103
|
end
|
|
72
|
-
content_tag(:ul, "\n #{items.join("\n ")}\n", :class => "breadcrumbs")
|
|
104
|
+
content_tag(:ul, "\n #{items.join("\n ")}\n".html_safe, :class => "breadcrumbs")
|
|
73
105
|
end
|
|
74
106
|
|
|
75
107
|
def render_portlet(name)
|
|
@@ -85,7 +117,8 @@ module Cms
|
|
|
85
117
|
|
|
86
118
|
# Determines if the current_user is able to do specific permissions.
|
|
87
119
|
def able_to?(*perms, &block)
|
|
88
|
-
|
|
120
|
+
block.call if current_user.able_to?(*perms)
|
|
121
|
+
return ''
|
|
89
122
|
end
|
|
90
123
|
|
|
91
124
|
end
|
|
@@ -33,7 +33,7 @@ module Cms
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
private
|
|
36
|
-
# Returns the name of the collection that this
|
|
36
|
+
# Returns the name of the collection that this resource belongs to
|
|
37
37
|
# the resource can be a ContentType, ActiveRecord::Base instance
|
|
38
38
|
# or just a string or symbol
|
|
39
39
|
def resource_collection_name(resource)
|
|
@@ -6,8 +6,7 @@ module Cms
|
|
|
6
6
|
module RenderingHelper
|
|
7
7
|
def render_connector_and_connectable(connector, connectable)
|
|
8
8
|
if logged_in? && @mode == "edit" && current_user.able_to_edit?(connector.page)
|
|
9
|
-
render
|
|
10
|
-
:locals => { :connector => connector, :connectable => connectable}
|
|
9
|
+
render(:partial => 'cms/pages/edit_connector', :locals => { :connector => connector, :connectable => connectable})
|
|
11
10
|
else
|
|
12
11
|
render_connectable(connectable)
|
|
13
12
|
end
|
|
@@ -16,8 +15,8 @@ module Cms
|
|
|
16
15
|
def render_connectable(content_block)
|
|
17
16
|
if content_block
|
|
18
17
|
if content_block.class.renderable?
|
|
19
|
-
logger.
|
|
20
|
-
content_block.perform_render(
|
|
18
|
+
logger.debug "Rendering connectable #{content_block.class} ##{content_block.id} #{"v#{content_block.version}" if content_block.respond_to?(:version)}"
|
|
19
|
+
content_block.perform_render(controller)
|
|
21
20
|
else
|
|
22
21
|
logger.warn "Connectable #{content_block.class} ##{content_block.id} is not renderable"
|
|
23
22
|
end
|
|
@@ -1,51 +1,13 @@
|
|
|
1
1
|
module Cms
|
|
2
2
|
module SectionNodesHelper
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
access_icon = :locked
|
|
8
|
-
end
|
|
9
|
-
access_icon
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def section_icons(section_node, children=[])
|
|
13
|
-
folder_style = ""
|
|
14
|
-
expander_image = "expand.png"
|
|
15
|
-
if top_level_section?(section_node)
|
|
16
|
-
folder_style = " large"
|
|
17
|
-
expander_image = "gray_expand.png"
|
|
18
|
-
end
|
|
19
|
-
if children.empty?
|
|
20
|
-
image_tag("cms/sitemap/no_contents.png", :class => "no_folder_toggle#{folder_style}")
|
|
3
|
+
def section_icons(node)
|
|
4
|
+
|
|
5
|
+
if (node.root? || node.parent.root? || node.parent.parent.root?)
|
|
6
|
+
node.child_nodes.empty? ? image_tag("cms/sitemap/no_contents.png", :class => "no_folder_toggle large") : image_tag("cms/sitemap/gray_expand.png", :class => "folder_toggle large")
|
|
21
7
|
else
|
|
22
|
-
image_tag("cms/sitemap
|
|
8
|
+
node.child_nodes.empty? ? image_tag("cms/sitemap/no_contents.png", :class => "no_folder_toggle") : image_tag("cms/sitemap/expand.png", :class => "folder_toggle")
|
|
23
9
|
end
|
|
24
10
|
end
|
|
25
11
|
|
|
26
|
-
# Renders the ul for a given node (Page/Section/Link/etc)
|
|
27
|
-
# Default look:
|
|
28
|
-
# - First level pages/sections use 'big' icons
|
|
29
|
-
# - All non-first level items should be hidden.
|
|
30
|
-
def sitemap_ul_tag(node)
|
|
31
|
-
opts = {
|
|
32
|
-
:id => "section_node_#{node.section_node.id}",
|
|
33
|
-
:class => "section_node"
|
|
34
|
-
}
|
|
35
|
-
opts[:class] += " rootlet" if in_first_level?(node)
|
|
36
|
-
opts[:style] = "display: none" unless in_first_level?(node)
|
|
37
|
-
tag("ul", opts, true)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def in_first_level?(node)
|
|
41
|
-
node.section_node.depth == 1
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
-
def top_level_section?(node)
|
|
47
|
-
node.depth <= 2
|
|
48
|
-
end
|
|
49
|
-
|
|
50
12
|
end
|
|
51
13
|
end
|
|
@@ -4,10 +4,7 @@ class AbstractFileBlock < ActiveRecord::Base
|
|
|
4
4
|
|
|
5
5
|
validates_presence_of :name
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
:include => {:attachment => :section_node },
|
|
9
|
-
:conditions => ["section_nodes.ancestry = ?", section.node.ancestry_path] }
|
|
10
|
-
}
|
|
7
|
+
scope :by_section, lambda { |section| { :include => {:attachment => :section_node }, :conditions => ["section_nodes.section_id = ?", section.id] } }
|
|
11
8
|
|
|
12
9
|
def path
|
|
13
10
|
attachment_file_path
|
|
@@ -17,16 +14,4 @@ class AbstractFileBlock < ActiveRecord::Base
|
|
|
17
14
|
true
|
|
18
15
|
end
|
|
19
16
|
|
|
20
|
-
def set_attachment_path
|
|
21
|
-
if @attachment_file_path && @attachment_file_path != attachment.file_path
|
|
22
|
-
attachment.file_path = @attachment_file_path
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def set_attachment_section
|
|
27
|
-
if @attachment_section_id && @attachment_section_id != attachment.section
|
|
28
|
-
attachment.section_id = @attachment_section_id
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
17
|
end
|
data/app/models/attachment.rb
CHANGED
|
@@ -3,6 +3,9 @@ require 'fileutils'
|
|
|
3
3
|
|
|
4
4
|
class Attachment < ActiveRecord::Base
|
|
5
5
|
|
|
6
|
+
#----- Constants ----------------------------------------------------------------
|
|
7
|
+
UNKNOWN_MIME_TYPE = 'application/octet-stream'
|
|
8
|
+
|
|
6
9
|
#----- Macros ----------------------------------------------------------------
|
|
7
10
|
|
|
8
11
|
is_archivable
|
|
@@ -10,37 +13,64 @@ class Attachment < ActiveRecord::Base
|
|
|
10
13
|
uses_soft_delete
|
|
11
14
|
is_userstamped
|
|
12
15
|
is_versioned
|
|
13
|
-
attr_accessor :temp_file
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
# Rails 3 uses a new ActionDispatch::Http::UploadedFile. This holds that during the file processing.
|
|
18
|
+
attr_accessor :uploaded_file
|
|
19
|
+
|
|
20
|
+
# This exists for backwards compatibility
|
|
21
|
+
alias_method :temp_file, :uploaded_file
|
|
22
|
+
alias_method :temp_file=, :uploaded_file=
|
|
16
23
|
|
|
24
|
+
#----- Callbacks -------------------------------------------------------------
|
|
17
25
|
before_validation :make_dirty_if_temp_file
|
|
18
26
|
before_validation :prepend_file_path_with_slash
|
|
19
27
|
before_validation :extract_file_extension_from_file_name
|
|
20
28
|
before_validation :extract_file_type_from_temp_file
|
|
21
29
|
before_validation :extract_file_size_from_temp_file
|
|
22
30
|
before_validation :set_file_location
|
|
31
|
+
before_save :process_section
|
|
23
32
|
|
|
24
33
|
after_save :write_temp_file_to_storage_location
|
|
25
34
|
after_save :clear_ivars
|
|
26
|
-
|
|
35
|
+
|
|
36
|
+
|
|
27
37
|
#----- Associations ----------------------------------------------------------
|
|
28
38
|
|
|
29
|
-
include Addressable
|
|
30
|
-
include Addressable::DeprecatedPageAccessors
|
|
31
39
|
has_one :section_node, :as => :node
|
|
32
|
-
alias :node :section_node
|
|
33
40
|
|
|
34
41
|
#----- Validations -----------------------------------------------------------
|
|
35
42
|
|
|
36
43
|
validates_presence_of :temp_file, :message => "You must upload a file", :on => :create
|
|
37
44
|
validates_presence_of :file_path
|
|
38
45
|
validates_uniqueness_of :file_path
|
|
46
|
+
validates_presence_of :section_id
|
|
47
|
+
|
|
48
|
+
#----- Virtual Attributes ----------------------------------------------------
|
|
49
|
+
|
|
50
|
+
def section_id
|
|
51
|
+
@section_id ||= section_node ? section_node.section_id : nil
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def section_id=(section_id)
|
|
55
|
+
if @section_id != section_id
|
|
56
|
+
dirty!
|
|
57
|
+
@section_id = section_id
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def section
|
|
62
|
+
@section ||= section_node ? section_node.section : nil
|
|
63
|
+
end
|
|
39
64
|
|
|
40
65
|
def section=(section)
|
|
41
|
-
|
|
42
|
-
|
|
66
|
+
logger.debug {"Attachment#section=(#{section})"}
|
|
67
|
+
if @section != section
|
|
68
|
+
dirty!
|
|
69
|
+
@section_id = section ? section.id : nil
|
|
70
|
+
@section = section
|
|
71
|
+
end
|
|
43
72
|
end
|
|
73
|
+
|
|
44
74
|
#----- Callbacks Methods -----------------------------------------------------
|
|
45
75
|
|
|
46
76
|
def make_dirty_if_temp_file
|
|
@@ -62,6 +92,11 @@ class Attachment < ActiveRecord::Base
|
|
|
62
92
|
def extract_file_type_from_temp_file
|
|
63
93
|
unless temp_file.blank?
|
|
64
94
|
self.file_type = temp_file.content_type
|
|
95
|
+
|
|
96
|
+
# Some
|
|
97
|
+
if self.file_type == nil
|
|
98
|
+
self.file_type = UNKNOWN_MIME_TYPE
|
|
99
|
+
end
|
|
65
100
|
end
|
|
66
101
|
end
|
|
67
102
|
|
|
@@ -82,25 +117,25 @@ class Attachment < ActiveRecord::Base
|
|
|
82
117
|
end
|
|
83
118
|
end
|
|
84
119
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
# build_section_node(:node => self, :parent => parent)
|
|
94
|
-
# end
|
|
95
|
-
#end
|
|
120
|
+
def process_section
|
|
121
|
+
#logger.info "processing section, section_id => #{section_id}, section_node => #{section_node.inspect}"
|
|
122
|
+
if section_node && !section_node.new_record? && section_node.section_id != section_id
|
|
123
|
+
section_node.move_to_end(Section.find(section_id))
|
|
124
|
+
else
|
|
125
|
+
build_section_node(:node => self, :section_id => section_id)
|
|
126
|
+
end
|
|
127
|
+
end
|
|
96
128
|
|
|
97
129
|
def write_temp_file_to_storage_location
|
|
98
130
|
unless temp_file.blank?
|
|
131
|
+
actual_temp_file = temp_file.tempfile
|
|
132
|
+
|
|
133
|
+
Rails.logger.warn "I want to write out #{temp_file.tempfile}"
|
|
99
134
|
FileUtils.mkdir_p File.dirname(full_file_location)
|
|
100
|
-
if
|
|
101
|
-
FileUtils.copy
|
|
135
|
+
if actual_temp_file.path
|
|
136
|
+
FileUtils.copy actual_temp_file.path, full_file_location
|
|
102
137
|
else
|
|
103
|
-
open(full_file_location, 'w') {|f| f <<
|
|
138
|
+
open(full_file_location, 'w') {|f| f << actual_temp_file.read }
|
|
104
139
|
end
|
|
105
140
|
|
|
106
141
|
if Cms.attachment_file_permission
|
data/app/models/category.rb
CHANGED
|
@@ -6,12 +6,12 @@ class Category < ActiveRecord::Base
|
|
|
6
6
|
validates_presence_of :category_type_id, :name
|
|
7
7
|
validates_uniqueness_of :name, :scope => :category_type_id
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
scope :named, lambda{|name| {:conditions => ['categories.name = ?', name]}}
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
scope :of_type, lambda{|type_name| {:include => :category_type, :conditions => ['category_types.name = ?', type_name], :order => 'categories.name'}}
|
|
12
|
+
scope :top_level, :conditions => ['categories.parent_id is null']
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
scope :list, :include => :category_type
|
|
15
15
|
|
|
16
16
|
def ancestors
|
|
17
17
|
fn = lambda do |cat, parents|
|
data/app/models/category_type.rb
CHANGED
|
@@ -3,7 +3,7 @@ class CategoryType < ActiveRecord::Base
|
|
|
3
3
|
validates_presence_of :name
|
|
4
4
|
validates_uniqueness_of :name
|
|
5
5
|
is_searchable
|
|
6
|
-
|
|
6
|
+
scope :named, lambda {|name| {:conditions => ['category_types.name = ?', name] } }
|
|
7
7
|
|
|
8
8
|
# Return a map when the key is category type id as a string
|
|
9
9
|
# and the value is an array of arrays, each entry having
|
|
@@ -28,7 +28,7 @@ class CategoryType < ActiveRecord::Base
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def cannot_be_deleted_message
|
|
31
|
-
categories.count.zero? ? nil : "This cannot be deleted because it is in use in #{categories.count} #{"category".
|
|
31
|
+
categories.count.zero? ? nil : "This cannot be deleted because it is in use in #{categories.count} #{"category".pluralize_unless_one(categories.count)}"
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Cms
|
|
2
|
+
|
|
3
|
+
# Trying to get rendering working:
|
|
4
|
+
#
|
|
5
|
+
# Things that need to happen:
|
|
6
|
+
# 1. Need to add all helpers from that the Cms::ContentController has access to:
|
|
7
|
+
# 2. Add helpers for the portlet or content block
|
|
8
|
+
#
|
|
9
|
+
# Understanding how Cms::ContentController renders a template:
|
|
10
|
+
# 1. It starts with a layout, which is a CMS template.
|
|
11
|
+
# 2. show.html.erb is called, which iterates over the connectables, adding content_for for each of the yields.
|
|
12
|
+
#
|
|
13
|
+
# TODOS
|
|
14
|
+
# There are currently way to many values getting copied into this view, including:
|
|
15
|
+
# content_block (desired) - From ContentController
|
|
16
|
+
# content - An attribute of the block itself.
|
|
17
|
+
class ViewContext < ActionView::Base
|
|
18
|
+
|
|
19
|
+
# @param [ActionController::Base] controller The CMS controller rendering the overall page
|
|
20
|
+
# @param [Hash] attributes_to_assign All the values that should be passed to this View as @attributes available.
|
|
21
|
+
def initialize(controller, attributes_to_assign)
|
|
22
|
+
@controller = controller
|
|
23
|
+
super(@controller.view_paths, attributes_to_assign, @controller)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
helpers = controller.class._helpers
|
|
27
|
+
self.class.send(:include, helpers)
|
|
28
|
+
|
|
29
|
+
# Make all Route helpers available in the view, i.e. cms_xyz_path and cms_xyz_url
|
|
30
|
+
self.class.send(:include, Rails.application.routes.url_helpers)
|
|
31
|
+
|
|
32
|
+
# See what values are getting copied into template
|
|
33
|
+
# Rails.logger.warn "Assigned these variables: #{attributes_to_assign}"
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# We want content_for to be called on the controller's view, not this inner view
|
|
38
|
+
def content_for(name, content=nil, &block)
|
|
39
|
+
Rails.logger.warn "content_for(#{name}, #{content}, block) called."
|
|
40
|
+
@controller.instance_variable_get("@template").content_for(name, content, &block)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
end
|
data/app/models/connector.rb
CHANGED
|
@@ -6,14 +6,15 @@ class Connector < ActiveRecord::Base
|
|
|
6
6
|
alias :move_up :move_higher
|
|
7
7
|
alias :move_down :move_lower
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
scope :for_page_version, lambda{|pv| {:conditions => {:page_version => pv}}}
|
|
10
|
+
scope :for_connectable_version, lambda{|cv| {:conditions => {:connectable_version => cv}}}
|
|
11
|
+
scope :for_connectable, lambda{|c|
|
|
12
|
+
# puts "Finding for_connectable for #{c.id} and #{c.class.base_class.name}"
|
|
12
13
|
{:conditions => { :connectable_id => c.id, :connectable_type => c.class.base_class.name }}
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
scope :in_container, lambda{|container| {:conditions => {:container => container}}}
|
|
16
|
+
scope :at_position, lambda{|position| {:conditions => {:position => position}}}
|
|
17
|
+
scope :like, lambda{|connector|
|
|
17
18
|
{:conditions => {
|
|
18
19
|
:connectable_id => connector.connectable_id,
|
|
19
20
|
:connectable_type => connector.connectable_type,
|