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
|
@@ -6,8 +6,8 @@ class Cms::BaseController < Cms::ApplicationController
|
|
|
6
6
|
|
|
7
7
|
layout 'cms/application'
|
|
8
8
|
|
|
9
|
-
verify :method => :post, :only => [:create]
|
|
10
|
-
verify :method => :put, :only => [:update]
|
|
11
|
-
verify :method => :delete, :only => [:destroy]
|
|
9
|
+
# verify :method => :post, :only => [:create]
|
|
10
|
+
# verify :method => :put, :only => [:update]
|
|
11
|
+
# verify :method => :delete, :only => [:destroy]
|
|
12
12
|
|
|
13
13
|
end
|
|
@@ -121,8 +121,8 @@ class Cms::ContentBlockController < Cms::BaseController
|
|
|
121
121
|
def load_blocks
|
|
122
122
|
options = {}
|
|
123
123
|
if params[:section_id] && params[:section_id] != 'all'
|
|
124
|
-
options[:include] = { :attachment =>
|
|
125
|
-
options[:conditions] = ["
|
|
124
|
+
options[:include] = { :attachment => { :section_node => :section }}
|
|
125
|
+
options[:conditions] = ["sections.id = ?", params[:section_id]]
|
|
126
126
|
end
|
|
127
127
|
options[:page] = params[:page]
|
|
128
128
|
options[:order] = model_class.default_order if model_class.respond_to?(:default_order)
|
|
@@ -51,8 +51,8 @@ class Cms::ContentController < Cms::ApplicationController
|
|
|
51
51
|
|
|
52
52
|
# ----- Before Filters -------------------------------------------------------
|
|
53
53
|
def construct_path
|
|
54
|
-
@
|
|
55
|
-
@
|
|
54
|
+
@path = "/#{params[:path]}"
|
|
55
|
+
@paths = @path.split("/")
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def construct_path_from_route
|
|
@@ -90,7 +90,7 @@ class Cms::ContentController < Cms::ApplicationController
|
|
|
90
90
|
|
|
91
91
|
def try_to_redirect
|
|
92
92
|
if redirect = Redirect.find_by_from_path(@path)
|
|
93
|
-
redirect_to redirect.to_path
|
|
93
|
+
redirect_to redirect.to_path
|
|
94
94
|
end
|
|
95
95
|
end
|
|
96
96
|
|
|
@@ -111,6 +111,7 @@ class Cms::ContentController < Cms::ApplicationController
|
|
|
111
111
|
|
|
112
112
|
#Stream the file if it exists
|
|
113
113
|
if @path != "/" && File.exists?(@file)
|
|
114
|
+
logger.warn "Sending file #{@file}"
|
|
114
115
|
send_file(@file,
|
|
115
116
|
:filename => @attachment.file_name,
|
|
116
117
|
:type => @attachment.file_type,
|
|
@@ -125,7 +126,7 @@ class Cms::ContentController < Cms::ApplicationController
|
|
|
125
126
|
def check_access_to_page
|
|
126
127
|
set_page_mode
|
|
127
128
|
if current_user.able_to?(:edit_content, :publish_content, :administrate)
|
|
128
|
-
logger.
|
|
129
|
+
logger.debug "Displaying draft version of page"
|
|
129
130
|
if page = Page.first(:conditions => {:path => @path})
|
|
130
131
|
@page = page.as_of_draft_version
|
|
131
132
|
else
|
|
@@ -2,7 +2,7 @@ module Cms
|
|
|
2
2
|
module ErrorHandling
|
|
3
3
|
def self.included(controller)
|
|
4
4
|
controller.class_eval do
|
|
5
|
-
rescue_from Exception, :with => :handle_server_error unless
|
|
5
|
+
rescue_from Exception, :with => :handle_server_error unless Rails.env == "test"
|
|
6
6
|
rescue_from Cms::Errors::AccessDenied, :with => :handle_access_denied
|
|
7
7
|
end
|
|
8
8
|
end
|
|
@@ -10,11 +10,10 @@ class Cms::RoutesController < Cms::BaseController
|
|
|
10
10
|
@route = ActionController::Routing::Routes.recognize_path(@path)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
@routes =
|
|
14
|
-
name =
|
|
15
|
-
verb = route.
|
|
16
|
-
segs = route.
|
|
17
|
-
segs.chop! if segs.length > 1
|
|
13
|
+
@routes = Rails.application.routes.routes.collect do |route|
|
|
14
|
+
name = route.name.to_s
|
|
15
|
+
verb = route.verb
|
|
16
|
+
segs = route.path
|
|
18
17
|
reqs = route.requirements.empty? ? "" : route.requirements.inspect
|
|
19
18
|
{:name => name, :verb => verb, :segs => segs, :reqs => reqs}
|
|
20
19
|
end
|
|
@@ -3,12 +3,7 @@ class Cms::SectionNodesController < Cms::BaseController
|
|
|
3
3
|
|
|
4
4
|
def index
|
|
5
5
|
@toolbar_tab = :sitemap
|
|
6
|
-
@
|
|
7
|
-
@public_sections = Group.guest.sections.all # Load once here so that every section doesn't need to.
|
|
8
|
-
|
|
9
|
-
@sitemap = Section.sitemap
|
|
10
|
-
@root_section_node = @sitemap.keys.first
|
|
11
|
-
@section = @root_section_node.node
|
|
6
|
+
@section = Section.root.first
|
|
12
7
|
end
|
|
13
8
|
def move_before
|
|
14
9
|
move(:before)
|
|
@@ -16,7 +16,7 @@ class Cms::SectionsController < Cms::BaseController
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def new
|
|
19
|
-
@section = @parent.
|
|
19
|
+
@section = @parent.sections.build
|
|
20
20
|
@section.groups = @parent.groups
|
|
21
21
|
end
|
|
22
22
|
|
|
@@ -104,7 +104,6 @@ class Cms::SectionsController < Cms::BaseController
|
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def render_file_browser
|
|
107
|
-
headers['Content-Type'] = "text/xml"
|
|
108
107
|
@files = case params[:Type].downcase
|
|
109
108
|
when "file"
|
|
110
109
|
FileBlock.by_section(@section)
|
|
@@ -117,7 +116,7 @@ class Cms::SectionsController < Cms::BaseController
|
|
|
117
116
|
end
|
|
118
117
|
|
|
119
118
|
def public_groups
|
|
120
|
-
@public_groups ||= Group.
|
|
119
|
+
@public_groups ||= Group.public_groups.all(:order => "groups.name")
|
|
121
120
|
end
|
|
122
121
|
|
|
123
122
|
def cms_groups
|
|
@@ -8,7 +8,7 @@ class Cms::UsersController < Cms::ResourceController
|
|
|
8
8
|
after_filter :update_group_membership, :only => [:update, :create]
|
|
9
9
|
after_filter :update_flash, :only => [ :update, :create ]
|
|
10
10
|
|
|
11
|
-
verify :method => :put, :only => [ :enable, :disable, :update_password ]
|
|
11
|
+
# verify :method => :put, :only => [ :enable, :disable, :update_password ]
|
|
12
12
|
|
|
13
13
|
def index
|
|
14
14
|
query, conditions = [], []
|
|
@@ -4,7 +4,7 @@ module Cms
|
|
|
4
4
|
|
|
5
5
|
def require_stylesheet_link(sources=(), content_area=:html_head)
|
|
6
6
|
@required_stylesheet_links ||= []
|
|
7
|
-
new_links
|
|
7
|
+
new_links = Array(sources) - @required_stylesheet_links
|
|
8
8
|
if !new_links.empty?
|
|
9
9
|
@required_stylesheet_links |= new_links
|
|
10
10
|
content_for(content_area, stylesheet_link_tag(new_links))
|
|
@@ -13,17 +13,17 @@ module Cms
|
|
|
13
13
|
|
|
14
14
|
def require_javascript_include(sources=(), content_area=:html_head)
|
|
15
15
|
@required_javascript_includes ||= []
|
|
16
|
-
new_links
|
|
16
|
+
new_links = Array(sources) - @required_javascript_includes
|
|
17
17
|
if !new_links.empty?
|
|
18
18
|
@required_javascript_includes |= new_links
|
|
19
19
|
content_for(content_area, javascript_include_tag(new_links))
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
def searchable_sections(selected = nil)
|
|
24
|
-
root
|
|
24
|
+
root = Section.root.first
|
|
25
25
|
options = [['All sections', 'all'], [root.name, root.id]]
|
|
26
|
-
root.
|
|
26
|
+
root.all_children_with_name.each { |s| options << [s.full_path, s.id] }
|
|
27
27
|
options_for_select(options, selected.to_i)
|
|
28
28
|
end
|
|
29
29
|
|
|
@@ -33,10 +33,10 @@ module Cms
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def page_versions(page)
|
|
36
|
-
text = select_tag(:version,
|
|
37
|
-
options_for_select(page.versions.all(:order => "version desc").map { |r|
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
text = select_tag(:version,
|
|
37
|
+
options_for_select(page.versions.all(:order => "version desc").map { |r|
|
|
38
|
+
["v#{r.version}: #{r.version_comment} by #{r.updated_by.login} at #{time_on_date(r.updated_at)}", r.version]
|
|
39
|
+
}, page.version),
|
|
40
40
|
:onchange => 'this.form.submit(); return false')
|
|
41
41
|
text << javascript_tag("$('version').selectedIndex = 0") if page.live?
|
|
42
42
|
text
|
|
@@ -45,7 +45,7 @@ module Cms
|
|
|
45
45
|
def action_icon_src(name)
|
|
46
46
|
"cms/icons/actions/#{name}.png"
|
|
47
47
|
end
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
def action_icon(name, options={})
|
|
50
50
|
image_tag action_icon_src(name), {:alt => name.to_s.titleize}.merge(options)
|
|
51
51
|
end
|
|
@@ -53,7 +53,7 @@ module Cms
|
|
|
53
53
|
def status_icon(status, options={})
|
|
54
54
|
image_tag "cms/icons/status/#{status.to_s.underscore}.gif", {:alt => status.to_s.titleize}.merge(options)
|
|
55
55
|
end
|
|
56
|
-
|
|
56
|
+
|
|
57
57
|
def link_to_usages(block)
|
|
58
58
|
count = block.connected_pages.count
|
|
59
59
|
if count > 0
|
|
@@ -64,7 +64,7 @@ module Cms
|
|
|
64
64
|
count
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
|
-
|
|
67
|
+
|
|
68
68
|
def time_on_date(time)
|
|
69
69
|
time && "#{time.strftime("%l:%M %p")} on #{time.strftime("%b %e, %Y")}"
|
|
70
70
|
end
|
|
@@ -72,21 +72,69 @@ module Cms
|
|
|
72
72
|
def format_date(time)
|
|
73
73
|
time && "#{time.strftime("%b %e, %Y")}"
|
|
74
74
|
end
|
|
75
|
-
|
|
75
|
+
|
|
76
|
+
# Renders two links that will check/uncheck a set of checkboxes.
|
|
77
|
+
#
|
|
78
|
+
# @param [String] selector The CSS selector for the checkboxes that should be mass checked/unchecked.
|
|
79
|
+
def check_uncheck_tag(selector)
|
|
80
|
+
check_id = to_id(selector, "check")
|
|
81
|
+
uncheck_id = to_id(selector, "uncheck")
|
|
82
|
+
content_for :html_head do
|
|
83
|
+
html = <<HTML
|
|
84
|
+
jQuery(function($) {
|
|
85
|
+
$('a##{check_id}').click(function() {
|
|
86
|
+
$('#{selector}').attr('checked', true);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
$('a##{uncheck_id}').click(function() {
|
|
90
|
+
$('#{selector}').attr('checked', false);
|
|
91
|
+
});
|
|
92
|
+
})
|
|
93
|
+
HTML
|
|
94
|
+
javascript_tag html
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
"#{link_to "Check All", '#', :id=>check_id}, #{link_to "Uncheck All", '#', :id=>uncheck_id}".html_safe
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# @deprecated Use check_uncheck_tag instead. Retained for backwards compatibility w/ CMS implementations.
|
|
76
101
|
def link_to_check_all(selector, name="Check All")
|
|
77
|
-
|
|
102
|
+
id = to_id(selector, "check")
|
|
103
|
+
content_for :html_head do
|
|
104
|
+
html = <<HTML
|
|
105
|
+
jQuery(function($) {
|
|
106
|
+
$('a##{id}').click(function() {
|
|
107
|
+
$('#{selector}').attr('checked', true);
|
|
108
|
+
});
|
|
109
|
+
})
|
|
110
|
+
HTML
|
|
111
|
+
javascript_tag html
|
|
112
|
+
end
|
|
113
|
+
link_to name, '#', :id=>id
|
|
78
114
|
end
|
|
79
115
|
|
|
116
|
+
# @deprecated Use check_uncheck_tag instead. Retained for backwards compatibility w/ CMS implementations.
|
|
80
117
|
def link_to_uncheck_all(selector, name="Uncheck All")
|
|
81
|
-
|
|
118
|
+
id = to_id(selector, "uncheck")
|
|
119
|
+
content_for :html_head do
|
|
120
|
+
html = <<HTML
|
|
121
|
+
jQuery(function($) {
|
|
122
|
+
$('a##{id}').click(function() {
|
|
123
|
+
$('#{selector}').attr('checked', false);
|
|
124
|
+
});
|
|
125
|
+
})
|
|
126
|
+
HTML
|
|
127
|
+
javascript_tag html
|
|
128
|
+
end
|
|
129
|
+
link_to name, '#', :id=>id
|
|
82
130
|
end
|
|
83
|
-
|
|
84
|
-
|
|
131
|
+
|
|
85
132
|
def span_tag(content)
|
|
86
133
|
content_tag :span, content
|
|
87
134
|
end
|
|
135
|
+
|
|
88
136
|
def lt_button_wrapper(content)
|
|
89
|
-
<<LBW
|
|
137
|
+
button = <<LBW
|
|
90
138
|
<div class="lt_button">
|
|
91
139
|
<img src="/images/cms/lt_button_l.gif" alt="" />
|
|
92
140
|
<div class="lt_button_content">
|
|
@@ -95,50 +143,52 @@ module Cms
|
|
|
95
143
|
<img src="/images/cms/lt_button_r.gif" alt="" style="margin-right: 10px;" />
|
|
96
144
|
</div>
|
|
97
145
|
LBW
|
|
146
|
+
button.html_safe
|
|
98
147
|
end
|
|
99
148
|
|
|
100
149
|
def dk_button_wrapper(content)
|
|
101
|
-
lt_button_wrapper(content).gsub("lt_button_","dk_button_")
|
|
150
|
+
lt_button_wrapper(content).gsub("lt_button_", "dk_button_")
|
|
102
151
|
end
|
|
152
|
+
|
|
103
153
|
def group_ids
|
|
104
154
|
(params[:group_ids] || @user.group_ids).collect { |g| g.to_i }
|
|
105
155
|
end
|
|
106
156
|
|
|
107
157
|
def group_filter
|
|
108
158
|
select_tag("group_id", options_from_collection_for_select(Group.all.insert(0, Group.new(:id => nil, :name => "Show All Groups")), "id", "name", params[:group_id].to_i))
|
|
109
|
-
end
|
|
110
|
-
|
|
159
|
+
end
|
|
160
|
+
|
|
111
161
|
def categories_for(category_type_name, order="name")
|
|
112
162
|
cat_type = CategoryType.named(category_type_name).first
|
|
113
163
|
cat_type ? cat_type.category_list(order) : []
|
|
114
|
-
end
|
|
115
|
-
|
|
164
|
+
end
|
|
165
|
+
|
|
116
166
|
def render_pagination(collection, collection_name, options={})
|
|
117
167
|
if collection.blank?
|
|
118
168
|
content_tag(:div, "No Content", :class => "pagination")
|
|
119
169
|
else
|
|
120
170
|
render :partial => "cms/shared/pagination", :locals => {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
171
|
+
:collection => collection,
|
|
172
|
+
:first_page_path => send("cms_#{collection_name}_path", {:page => 1}.merge(options)),
|
|
173
|
+
:previous_page_path => send("cms_#{collection_name}_path", {:page => collection.previous_page ? collection.previous_page : 1}.merge(options)),
|
|
174
|
+
:current_page_path => send("cms_#{collection_name}_path", options),
|
|
175
|
+
:next_page_path => send("cms_#{collection_name}_path", {:page => collection.next_page ? collection.next_page : collection.current_page}.merge(options)),
|
|
176
|
+
:last_page_path => send("cms_#{collection_name}_path", {:page => collection.total_pages}.merge(options))
|
|
127
177
|
}
|
|
128
178
|
end
|
|
129
|
-
end
|
|
179
|
+
end
|
|
130
180
|
|
|
131
181
|
def url_with_mode(url, mode)
|
|
132
182
|
uri = URI.parse(url)
|
|
133
183
|
if uri.query =~ /mode=[^&]*/
|
|
134
|
-
"#{uri.path}?#{uri.query.gsub(/((^|&)mode=)[^&]*/) {|s| "#{$1}#{mode}" }}"
|
|
184
|
+
"#{uri.path}?#{uri.query.gsub(/((^|&)mode=)[^&]*/) { |s| "#{$1}#{mode}" }}"
|
|
135
185
|
elsif uri.query
|
|
136
186
|
"#{uri.path}?#{uri.query}&mode=#{mode}"
|
|
137
187
|
else
|
|
138
188
|
"#{uri.path}?mode=#{mode}"
|
|
139
189
|
end
|
|
140
190
|
end
|
|
141
|
-
|
|
191
|
+
|
|
142
192
|
def determine_order(current_order, order)
|
|
143
193
|
if current_order == order
|
|
144
194
|
if order =~ / desc$/i
|
|
@@ -148,8 +198,61 @@ LBW
|
|
|
148
198
|
end
|
|
149
199
|
else
|
|
150
200
|
order
|
|
151
|
-
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
# Render a CMS styled 'X Delete' button. This button will appear on tool bars, typically set apart visually from other buttons.
|
|
205
|
+
# Has a 'confirm?' popup attached to it as well.
|
|
206
|
+
# Assumes that javascript code to handle the 'confirm' has already been included in the page.
|
|
207
|
+
#
|
|
208
|
+
# @param [Hash] options The options for this tag
|
|
209
|
+
# @option options [String or Boolean] :title Title for 'confirm' popup. If specified as 'true' or with a string value a standard 'confirm yes/no' window should be used. If true is specified, its assume that the javascript popup handles the title.
|
|
210
|
+
# @option options [Path] :path The path or URL to link_to. Takes same types at url_for or link_to. Defaults to '#' if not specified.
|
|
211
|
+
# @option options [Boolean] :enabled If false, the button will be marked disabled. Default to false.
|
|
212
|
+
def delete_button(options={})
|
|
213
|
+
classes = "button"
|
|
214
|
+
classes << " disabled" if !options[:enabled]
|
|
215
|
+
classes << " delete_button"
|
|
216
|
+
classes << " http_delete confirm_with_title" if options[:title]
|
|
217
|
+
|
|
218
|
+
link_to_path = options[:path] ? options[:path] : "#"
|
|
219
|
+
|
|
220
|
+
span_options = {:id => 'delete_button', :class => classes}
|
|
221
|
+
span_options[:title] = options[:title] if (!options[:title].blank? && options[:title].class == String)
|
|
222
|
+
link_to span_tag("<span class=\"delete_img\"> </span>Delete".html_safe), link_to_path, span_options
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
# Render a CMS styled 'Edit' button. This button will appear on tool bars, typically set apart visually from other buttons.
|
|
226
|
+
#
|
|
227
|
+
# @param [Hash] options The options for this tag
|
|
228
|
+
# @option options [Path] :path The path or URL to link_to. Takes same types at url_for or link_to. Defaults to '#' if not specified.
|
|
229
|
+
# @option options [Boolean] :enabled If false, the button will be marked disabled. Default to false.
|
|
230
|
+
def edit_button(options={})
|
|
231
|
+
classes = "button"
|
|
232
|
+
classes << " disabled" if !options[:enabled]
|
|
233
|
+
|
|
234
|
+
link_to_path = options[:path] ? options[:path] : "#"
|
|
235
|
+
span_options = {:id => 'edit_button', :class => classes}
|
|
236
|
+
link_to span_tag(" Edit ".html_safe), link_to_path, span_options
|
|
237
|
+
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
# Render a CMS styled 'Add' button. This button will appear on tool bars, typically set apart visually from other buttons.
|
|
241
|
+
#
|
|
242
|
+
# @param [Path] The path or URL to link_to. Takes same types at url_for or link_to.
|
|
243
|
+
def add_button(path, options={})
|
|
244
|
+
classes = "button"
|
|
245
|
+
span_options = {:class => classes}
|
|
246
|
+
link_to span_tag(" Add ".html_safe), path, span_options
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
private
|
|
250
|
+
|
|
251
|
+
# Converts a CSS jQuery selector into something that can be suitably used as a CSS id element.
|
|
252
|
+
def to_id(selector, suffix=nil)
|
|
253
|
+
id = selector.gsub(".", "_")
|
|
254
|
+
id = id + "_#{suffix}" if suffix
|
|
255
|
+
id
|
|
152
256
|
end
|
|
153
|
-
|
|
154
257
|
end
|
|
155
258
|
end
|
|
@@ -12,21 +12,21 @@ class Cms::FormBuilder < ActionView::Helpers::FormBuilder
|
|
|
12
12
|
# * :width - The width for the select (defaults to 455px).
|
|
13
13
|
#
|
|
14
14
|
def drop_down(method, choices, options = {}, html_options = {})
|
|
15
|
-
select_class
|
|
16
|
-
h_opts
|
|
15
|
+
select_class = "#{@object_name}_#{method}"
|
|
16
|
+
h_opts = add_tabindex!(@default_options.merge(html_options))
|
|
17
17
|
h_opts[:class] = select_class
|
|
18
18
|
|
|
19
|
-
opts
|
|
19
|
+
opts = objectify_options(options)
|
|
20
20
|
set_default_value!(method, options)
|
|
21
|
-
cms_options = options.
|
|
21
|
+
cms_options = options.extract_only!(:default_value, :width)
|
|
22
22
|
render_cms_form_partial :fancy_drop_down,
|
|
23
23
|
:object_name => @object_name, :method => method,
|
|
24
|
-
:choices
|
|
24
|
+
:choices => choices, :options => opts,
|
|
25
25
|
:cms_options => cms_options, :html_options => h_opts
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def date_picker(method, options={})
|
|
29
|
-
text_field(method, {:size => 10, :class => "date_picker"}.merge(options))
|
|
29
|
+
text_field(method, {:size => 10, :class => "date_picker", :value=>Cms::DatePicker.format_for_ui(@object.send(method))}.merge(options))
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def tag_list(options={})
|
|
@@ -54,17 +54,17 @@ class Cms::FormBuilder < ActionView::Helpers::FormBuilder
|
|
|
54
54
|
def cms_drop_down(method, choices, options={}, html_options={})
|
|
55
55
|
add_tabindex!(html_options)
|
|
56
56
|
set_default_value!(method, options)
|
|
57
|
-
cms_options = options.
|
|
57
|
+
cms_options = options.extract_only!(:label, :instructions, :default_value)
|
|
58
58
|
render_cms_form_partial :drop_down,
|
|
59
59
|
:object_name => @object_name, :method => method,
|
|
60
|
-
:choices
|
|
60
|
+
:choices => choices, :options => options,
|
|
61
61
|
:cms_options => cms_options, :html_options => html_options
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
def cms_tag_list(options={})
|
|
65
65
|
add_tabindex!(options)
|
|
66
66
|
set_default_value!(:tag_list, options)
|
|
67
|
-
cms_options = options.
|
|
67
|
+
cms_options = options.extract_only!(:label, :instructions, :default_value)
|
|
68
68
|
render_cms_form_partial :tag_list,
|
|
69
69
|
:options => options, :cms_options => cms_options
|
|
70
70
|
end
|
|
@@ -74,22 +74,22 @@ class Cms::FormBuilder < ActionView::Helpers::FormBuilder
|
|
|
74
74
|
#
|
|
75
75
|
def text_editor(method, options = {})
|
|
76
76
|
@template.send(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
"text_editor",
|
|
78
|
+
@object_name,
|
|
79
|
+
method,
|
|
80
|
+
objectify_options(options))
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
# Renders a WYWIWYG editor with the 'type' selector.
|
|
84
84
|
def cms_text_editor(method, options = {})
|
|
85
85
|
add_tabindex!(options)
|
|
86
86
|
set_default_value!(method, options)
|
|
87
|
-
cms_options = options.
|
|
87
|
+
cms_options = options.extract_only!(:label, :instructions, :default_value)
|
|
88
88
|
render_cms_form_partial :text_editor,
|
|
89
|
-
:id
|
|
89
|
+
:id => (options[:id] || "#{@object_name}_#{method}"),
|
|
90
90
|
:editor_enabled => (cookies["editorEnabled"].blank? ? true : (cookies["editorEnabled"] == 'true' || cookies["editorEnabled"] == ['true'])),
|
|
91
|
-
:object_name
|
|
92
|
-
:options
|
|
91
|
+
:object_name => @object_name, :method => method,
|
|
92
|
+
:options => options, :cms_options => cms_options
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
# Renders instructions for a given field below the field itself. Instructions can be used to provide helpful
|
|
@@ -114,7 +114,7 @@ class Cms::FormBuilder < ActionView::Helpers::FormBuilder
|
|
|
114
114
|
def cms_check_box(method, options={})
|
|
115
115
|
add_tabindex!(options)
|
|
116
116
|
set_default_value!(method, options)
|
|
117
|
-
cms_options = options.
|
|
117
|
+
cms_options = options.extract_only!(:label, :instructions, :default_value)
|
|
118
118
|
render_cms_form_partial "check_box", :method=>method, :options => options, :cms_options => cms_options
|
|
119
119
|
end
|
|
120
120
|
|
|
@@ -139,14 +139,26 @@ class Cms::FormBuilder < ActionView::Helpers::FormBuilder
|
|
|
139
139
|
set_default_value!(method, options)
|
|
140
140
|
options[:default_handler] = "erb" unless options[:default_handler]
|
|
141
141
|
|
|
142
|
-
cms_options
|
|
143
|
-
dropdown_options = options.
|
|
142
|
+
cms_options = options.extract_only!(:label, :instructions)
|
|
143
|
+
dropdown_options = options.extract_only!(:default_handler)
|
|
144
144
|
add_tabindex!(options)
|
|
145
145
|
render_cms_form_partial :template_editor, :method=>method, :dropdown_options=>dropdown_options, :options => options, :cms_options=>cms_options
|
|
146
146
|
end
|
|
147
147
|
end
|
|
148
148
|
|
|
149
149
|
|
|
150
|
+
# Basic replacement for the error_messages provided by Rails 2, which were deprecated/removed in Rails 3.
|
|
151
|
+
def cms_error_messages
|
|
152
|
+
return unless object.respond_to?(:errors) && object.errors.any?
|
|
153
|
+
|
|
154
|
+
errors_list = ""
|
|
155
|
+
errors_list << @template.content_tag(:h2, "#{object.errors.size} error prohibited this #{object_name.humanize} from being saved.".html_safe)
|
|
156
|
+
errors_list << @template.content_tag(:p, "There were problems with the following fields:")
|
|
157
|
+
errors_list << @template.content_tag(:ul, object.errors.full_messages.map { |message| @template.content_tag(:li, message).html_safe }.join("\n").html_safe).html_safe
|
|
158
|
+
|
|
159
|
+
@template.content_tag(:div, errors_list.html_safe, :class => "errorExplanation", :id=>"errorExplanation")
|
|
160
|
+
end
|
|
161
|
+
|
|
150
162
|
private
|
|
151
163
|
|
|
152
164
|
def set_default_value!(method, options={})
|
|
@@ -171,7 +183,7 @@ class Cms::FormBuilder < ActionView::Helpers::FormBuilder
|
|
|
171
183
|
|
|
172
184
|
def render_cms_form_partial(field_type_name, locals)
|
|
173
185
|
@template.render :partial => "cms/form_builder/cms_#{field_type_name}",
|
|
174
|
-
:locals
|
|
186
|
+
:locals => {:f => self}.merge(locals)
|
|
175
187
|
end
|
|
176
188
|
|
|
177
189
|
end
|