browsercms 3.1.5 → 3.3.0.beta
Sign up to get free protection for your applications and to get access to all the features.
- 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
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Cms
|
2
|
+
module Generators
|
3
|
+
class TemplateGenerator < Rails::Generators::NamedBase
|
4
|
+
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
|
7
|
+
def create_template
|
8
|
+
template 'template.erb', File.join('app/views/layouts/templates', "#{template_name}.html.erb")
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def template_name
|
14
|
+
file_name
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
class Browsercms330 < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
|
4
|
+
# patch required for LH345
|
5
|
+
cant_fix = []
|
6
|
+
to_fix = []
|
7
|
+
# find all pages whose path ends in slash and is not root
|
8
|
+
Page.find(:all, :conditions => "path LIKE '/%/'").each do |pt_page|
|
9
|
+
# make sure no extant page has this path
|
10
|
+
if Page.count(:conditions => ["path = ?", pt_page.path.sub(/(.+)\/+$/, '\1')]) > 0
|
11
|
+
cant_fix << pt_page
|
12
|
+
else
|
13
|
+
to_fix << pt_page
|
14
|
+
end
|
15
|
+
end
|
16
|
+
version_cant_fix = []
|
17
|
+
version_to_fix = []
|
18
|
+
# find all page versions whose path ends in slash and is not root
|
19
|
+
Page::Version.find(:all, :conditions => "path LIKE '/%/'").each do |pt_page|
|
20
|
+
# make sure no extant page has this path
|
21
|
+
if Page.count(:conditions => ["path = ?", pt_page.path.sub(/(.+)\/+$/, '\1')]) > 0
|
22
|
+
version_cant_fix << pt_page
|
23
|
+
else
|
24
|
+
version_to_fix << pt_page
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# raise an error if there are pages (*not* page versions) that will duplicate an extant path if the ending slash is dropped
|
29
|
+
if cant_fix.length > 0
|
30
|
+
raise "Cannot remove trailing slashes from pages with ID(s) (#{cant_fix.map(&:id).join(', ')}). Other pages already exist with their correct path. The offending path may be in an unpublished page version, newer than the current public version. These needed to be corrected manually in your DBMS before running this migration"
|
31
|
+
end
|
32
|
+
|
33
|
+
to_fix.each do |fix_page|
|
34
|
+
# change the path of all pages with a trailing slash to not have one
|
35
|
+
# using sql updates to prevent unwanted callbacks
|
36
|
+
new_path = fix_page.path.to_s.sub(/(.+)\/+$/, '\1')
|
37
|
+
execute "UPDATE pages SET path = '#{new_path}' WHERE id = #{fix_page.id};"
|
38
|
+
end
|
39
|
+
version_to_fix.each do |fix_page|
|
40
|
+
# change the path of all fixable page versions with a trailing slash to not have one
|
41
|
+
# using sql updates to prevent unwanted callbacks
|
42
|
+
new_path = fix_page.path.to_s.sub(/(.+)\/+$/, '\1')
|
43
|
+
execute "UPDATE page_versions SET path = '#{new_path}' WHERE id = #{fix_page.id};"
|
44
|
+
end
|
45
|
+
# end patch for LH345
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.down
|
49
|
+
|
50
|
+
# Cannot restore paths with trailing slash - raise error or show message
|
51
|
+
#
|
52
|
+
# raise IrreversibleMigration, "Cannot reverse migration which removes trailing slash from page paths"
|
53
|
+
puts "Page paths which had trailing slashes removed cannot be restored to their original state."
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Use this directory to add public files that should be packaged in the gem.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "<%= name_of_module %>"
|
3
|
+
spec.rubyforge_project = spec.name
|
4
|
+
spec.version = "1.0.0"
|
5
|
+
spec.summary = "A <%= name_of_module.titleize %> Module for BrowserCMS"
|
6
|
+
spec.author = "BrowserMedia"
|
7
|
+
spec.email = "github@browsermedia.com"
|
8
|
+
spec.homepage = "http://www.github.com/browsermedia/<%= name_of_module %>"
|
9
|
+
spec.files += Dir["app/**/*"]
|
10
|
+
spec.files -= Dir["app/views/layouts/templates/default.html.erb"]
|
11
|
+
spec.files += Dir["db/migrate/*.rb"]
|
12
|
+
spec.files -= Dir["db/migrate/*_browsercms_*.rb"]
|
13
|
+
spec.files += Dir["lib/**/*"]
|
14
|
+
spec.files -= Dir["lib/tasks/build_gem.rake"]
|
15
|
+
spec.files += Dir["public/bcms/<%= short_project_name %>/**/*"]
|
16
|
+
spec.files += Dir["LICENSE.txt"]
|
17
|
+
spec.files += Dir["GPL.txt"]
|
18
|
+
spec.files += Dir["Gemfile"]
|
19
|
+
spec.files += Dir["Copyright.txt"]
|
20
|
+
spec.has_rdoc = true
|
21
|
+
spec.extra_rdoc_files = ["README"]
|
22
|
+
|
23
|
+
spec.add_dependency('browsercms', "<%= cms_version%>")
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'cms/module_installation'
|
2
|
+
|
3
|
+
class <%= gem_name %>::InstallGenerator < Cms::ModuleInstallation
|
4
|
+
add_migrations_directory_to_source_root __FILE__
|
5
|
+
|
6
|
+
# Add migrations to be copied, by uncommenting the following file and editing as needed.
|
7
|
+
# copy_migration_file 'DATESTAMP_create_name_of_content_block.rb'
|
8
|
+
|
9
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Cms
|
2
|
+
module Generators
|
3
|
+
|
4
|
+
|
5
|
+
class UpgradeModuleGenerator < Rails::Generators::NamedBase
|
6
|
+
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
|
9
|
+
def alter_gemfile
|
10
|
+
append_to_file 'Gemfile', "gemspec"
|
11
|
+
end
|
12
|
+
|
13
|
+
# Needs to be more specific than the core BrowserCMS .gitigore
|
14
|
+
# Assumed to be run 'after' browser_cms:cms
|
15
|
+
def generate_gitignore
|
16
|
+
remove_file '.gitignore'
|
17
|
+
template 'gitignore.erb', '.gitignore'
|
18
|
+
end
|
19
|
+
|
20
|
+
def generate_module_files
|
21
|
+
copy_file 'README', "public/bcms/#{name_of_module}/README"
|
22
|
+
|
23
|
+
copy_file 'build_gem.rake', 'lib/tasks/build_gem.rake'
|
24
|
+
template 'engine.erb', "lib/#{name_of_module}/engine.rb"
|
25
|
+
template 'module_file.erb', "lib/#{name_of_module}.rb"
|
26
|
+
template 'gemspec.erb', "#{name_of_module}.gemspec"
|
27
|
+
|
28
|
+
template 'routes.erb', "lib/#{name_of_module}/routes.rb"
|
29
|
+
route "routes_for_#{name_of_module}"
|
30
|
+
template 'install.erb', "lib/generators/#{name_of_module}/install/install_generator.rb"
|
31
|
+
template 'USAGE.erb', "lib/generators/#{name_of_module}/install/USAGE"
|
32
|
+
end
|
33
|
+
|
34
|
+
# BrowserCMS new generator should probably handle this
|
35
|
+
def generate_default_template
|
36
|
+
generate 'cms:template', 'default'
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
# i.e. bcms_something
|
42
|
+
def name_of_module
|
43
|
+
name
|
44
|
+
end
|
45
|
+
|
46
|
+
# ie. BcmsSomething
|
47
|
+
def gem_name
|
48
|
+
name_of_module.camelize
|
49
|
+
end
|
50
|
+
|
51
|
+
# i.e. Something
|
52
|
+
def short_project_name
|
53
|
+
File.basename(name_of_module).match(/bcms_(.+)/)[1]
|
54
|
+
end
|
55
|
+
|
56
|
+
def cms_version
|
57
|
+
Cms::VERSION
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# Add any tasks from your Rake file here.
|
data/lib/tasks/cms.rake
CHANGED
@@ -1,14 +1,29 @@
|
|
1
1
|
namespace :test do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
|
3
|
+
desc 'Runs all Tests (Test::Unit) and Features (cucumber)'
|
4
|
+
task :all => ["test", "cucumber"]
|
5
|
+
|
6
|
+
# Could be improved somewhat to get rid of unneeded warnings.
|
7
|
+
desc "run tests against sqlite database"
|
8
|
+
task :sqlite3 do
|
9
|
+
cp(File.join('config', 'database.sqlite3.yml'), File.join('config', 'database.yml'), :verbose => true)
|
10
|
+
Rake::Task['db:drop'].invoke
|
11
|
+
Rake::Task['db:create'].invoke
|
12
|
+
system "rake db:migrate test"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Could be improved somewhat to get rid of unneeded warnings.
|
16
|
+
desc "run tests against mysql database"
|
17
|
+
task :mysql do
|
18
|
+
cp(File.join('config', 'database.mysql.yml'), File.join('config', 'database.yml'), :verbose => true)
|
19
|
+
Rake::Task['db:drop'].invoke
|
20
|
+
Rake::Task['db:create'].invoke
|
21
|
+
system "rake db:migrate test"
|
6
22
|
end
|
7
|
-
Rake::Task['test:all'].comment = "Run all tests at once"
|
8
23
|
end
|
9
24
|
|
10
25
|
# When Jeweler builds the gem, make sure the guides are also rebuilt.
|
11
|
-
task :build => ['cms:guides']
|
26
|
+
#task :build => ['cms:guides']
|
12
27
|
|
13
28
|
namespace :cms do
|
14
29
|
|
@@ -38,4 +53,17 @@ namespace :cms do
|
|
38
53
|
CmsGuides::Generator.new.generate
|
39
54
|
|
40
55
|
end
|
56
|
+
|
57
|
+
desc "Rebuild the browsercms gem locally and install it, Useful for testing releases."
|
58
|
+
task :gem => ["browsercms.gemspec", :build, :install]
|
59
|
+
|
60
|
+
task :install do
|
61
|
+
puts "installing..."
|
62
|
+
if RUBY_PLATFORM =~ /mswin32/
|
63
|
+
system("cmd /c gem install pkg/browsercms-3.1.0")
|
64
|
+
else
|
65
|
+
sh("sudo gem install pkg/browsercms-3.1.0")
|
66
|
+
end
|
67
|
+
end
|
41
68
|
end
|
69
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
2
|
+
# It is recommended to regenerate this file in the future when you upgrade to a
|
3
|
+
# newer version of cucumber-rails. Consider adding your own code to a new file
|
4
|
+
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
5
|
+
# files.
|
6
|
+
|
7
|
+
|
8
|
+
unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
|
9
|
+
|
10
|
+
vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
|
11
|
+
$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
|
12
|
+
|
13
|
+
begin
|
14
|
+
require 'cucumber/rake/task'
|
15
|
+
|
16
|
+
namespace :cucumber do
|
17
|
+
Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
|
18
|
+
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
|
19
|
+
t.fork = true # You may get faster startup if you set this to false
|
20
|
+
t.profile = 'default'
|
21
|
+
end
|
22
|
+
|
23
|
+
Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
|
24
|
+
t.binary = vendored_cucumber_bin
|
25
|
+
t.fork = true # You may get faster startup if you set this to false
|
26
|
+
t.profile = 'wip'
|
27
|
+
end
|
28
|
+
|
29
|
+
Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t|
|
30
|
+
t.binary = vendored_cucumber_bin
|
31
|
+
t.fork = true # You may get faster startup if you set this to false
|
32
|
+
t.profile = 'rerun'
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'Run all features'
|
36
|
+
task :all => [:ok, :wip]
|
37
|
+
end
|
38
|
+
desc 'Alias for cucumber:ok'
|
39
|
+
task :cucumber => 'cucumber:ok'
|
40
|
+
|
41
|
+
task :default => :cucumber
|
42
|
+
|
43
|
+
task :features => :cucumber do
|
44
|
+
STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
|
45
|
+
end
|
46
|
+
rescue LoadError
|
47
|
+
desc 'cucumber rake task not available (cucumber not installed)'
|
48
|
+
task :cucumber do
|
49
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/lib/tasks/db.rake
CHANGED
@@ -9,7 +9,7 @@ namespace :db do
|
|
9
9
|
desc 'Dumps all models into fixtures.'
|
10
10
|
task :dump => :environment do
|
11
11
|
models = []
|
12
|
-
Find.find(
|
12
|
+
Find.find(Rails.root + '/app/models') do |path|
|
13
13
|
unless File.directory?(path) then models << path.match(/(\w+).rb/)[1] end
|
14
14
|
end
|
15
15
|
|
@@ -53,7 +53,7 @@ namespace :db do
|
|
53
53
|
formatted += "\n"
|
54
54
|
end
|
55
55
|
|
56
|
-
model_file =
|
56
|
+
model_file = Rails.root + '/test/fixtures/' + model.table_name + '.yml'
|
57
57
|
|
58
58
|
# Final munging of file
|
59
59
|
formatted = "# auto-generated by rake db:fixtures:dump, DO NOT EDIT BY HAND!\n#{formatted}"
|
@@ -1,148 +1,157 @@
|
|
1
|
-
//
|
1
|
+
//
|
2
|
+
// Defines BrowserCMS functions used throughout the application.
|
3
|
+
//
|
4
|
+
//
|
2
5
|
jQuery(function($) {
|
3
|
-
|
4
|
-
|
6
|
+
|
7
|
+
//It would be cool if these were added to the real jQuery
|
5
8
|
//You can call this a few ways:
|
6
9
|
//createElement('p') => "<p/>"
|
7
10
|
//createElement('p','hi') => "<p>hi</p>"
|
8
11
|
//createElement('p', {align: 'center'}) => "<p align="center"/>"
|
9
12
|
//createElement('p','hi',{align: 'center'}) => "<p align="center">hi</p>"
|
10
13
|
$.createElement = function(tag_name, tag_value, tag_attrs) {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
14
|
+
var name = tag_name
|
15
|
+
if (typeof tag_value == "object") {
|
16
|
+
var value = null
|
17
|
+
var attrs = tag_value
|
18
|
+
} else {
|
19
|
+
var value = tag_value
|
20
|
+
var attrs = tag_attrs
|
21
|
+
}
|
22
|
+
var element = $(document.createElement(tag_name))
|
23
|
+
if (attrs) {
|
24
|
+
$.each(attrs, function(k, v) {
|
25
|
+
element.attr(k, v)
|
26
|
+
})
|
27
|
+
}
|
28
|
+
if (value) {
|
29
|
+
element.html(value)
|
30
|
+
}
|
31
|
+
return element
|
29
32
|
}
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
33
|
+
|
34
|
+
|
35
|
+
var sanitizationRegexes = [
|
36
|
+
[/\s/, "_"],
|
37
|
+
[/[&+()]/, "-"],
|
38
|
+
[/[=?!'"{}\[\]#<>%]/, ""]
|
39
|
+
]
|
40
|
+
|
41
|
+
$.cms = {
|
42
|
+
sanitizeFileName: function(s) {
|
43
|
+
var split = s.split(/\/|\\/)
|
44
|
+
s = split[split.length - 1]
|
45
|
+
$.each(sanitizationRegexes, function(i, e) {
|
46
|
+
var r = new RegExp(e[0].source, 'g')
|
47
|
+
s = s.replace(r, e[1])
|
48
|
+
})
|
49
|
+
return s;
|
50
|
+
},
|
51
|
+
slug: function(s) {
|
52
|
+
return $.trim(s.toLowerCase().replace(/[^a-zA-Z0-9_\s]+/g, '')).replace(/\ +/g, '-')
|
53
|
+
},
|
54
|
+
showNotice: function(msg) {
|
55
|
+
$('#message').removeClass('error').addClass('notice').html(msg).parent().show().animate({opacity: 1.0}, 3000).fadeOut("normal")
|
56
|
+
},
|
57
|
+
showError: function(msg) {
|
58
|
+
$('#message').removeClass('notice').addClass('error').html(msg).parent().show().animate({opacity: 1.0}, 3000).fadeOut("normal")
|
59
|
+
},
|
60
|
+
attachEventHandlers: function(context) {
|
61
|
+
$('a.button', context).click(function() {
|
62
|
+
if ($(this).hasClass('disabled')) return false;
|
63
|
+
});
|
64
|
+
$('a.http_post, a.http_put, a.http_delete', context).click(function() {
|
65
|
+
if ($(this).hasClass('disabled')) return false;
|
66
|
+
if ($(this).hasClass('confirm_with_title') ? confirm(this.title) : true) {
|
67
|
+
|
68
|
+
// Create the form
|
69
|
+
var f = document.createElement('form')
|
70
|
+
f.style.display = 'none'
|
71
|
+
this.parentNode.appendChild(f)
|
72
|
+
f.method = "POST"
|
73
|
+
f.action = this.href
|
74
|
+
$(f).attr('target', $(this).attr('target'))
|
75
|
+
|
76
|
+
//Create the _method hidden input
|
77
|
+
var m = document.createElement('input')
|
78
|
+
var http_method = $(this).attr('class').match(/http_([^ ]*)/)[1]
|
79
|
+
$(m).attr('type', 'hidden').attr('name', '_method').attr('value', http_method)
|
80
|
+
f.appendChild(m)
|
81
|
+
|
82
|
+
//Create the authenticity_token hidden input
|
83
|
+
if ($.cms.authenticity_token && $.cms.authenticity_token != '') {
|
84
|
+
var m = document.createElement('input')
|
85
|
+
$(m).attr('type', 'hidden').attr('name', 'authenticity_token').attr('value', $.cms.authenticity_token)
|
86
|
+
f.appendChild(m)
|
87
|
+
}
|
88
|
+
|
89
|
+
f.submit()
|
90
|
+
}
|
91
|
+
return false
|
92
|
+
})
|
80
93
|
}
|
81
|
-
return false
|
82
|
-
})
|
83
94
|
}
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
})
|
95
|
+
|
96
|
+
$.cms.attachEventHandlers(document);
|
97
|
+
|
98
|
+
$('#message.notice').parent().show().animate({opacity: 1.0}, 3000).fadeOut("normal")
|
99
|
+
$('#message.error').parent().show().animate({opacity: 1.0}, 3000).fadeOut("normal")
|
100
|
+
|
101
|
+
});
|
92
102
|
|
93
103
|
//CookieSet allows us to treat one cookie value as a set of values
|
94
104
|
jQuery(function($) {
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
}
|
146
|
-
|
147
|
-
|
148
|
-
})
|
105
|
+
var sep = '|'
|
106
|
+
|
107
|
+
$.cookieSet = {
|
108
|
+
//Treats the cookie as an array
|
109
|
+
add: function(name, value, options) {
|
110
|
+
this.remove(name, value, options)
|
111
|
+
var set = this.get(name)
|
112
|
+
if (set) {
|
113
|
+
set.push(value)
|
114
|
+
} else {
|
115
|
+
var set = [value]
|
116
|
+
}
|
117
|
+
$.cookie(name, set.join(sep), options)
|
118
|
+
return this.get(name)
|
119
|
+
},
|
120
|
+
|
121
|
+
get: function(name) {
|
122
|
+
var val = $.cookie(name)
|
123
|
+
if (val) {
|
124
|
+
return val.split(sep)
|
125
|
+
} else {
|
126
|
+
return null
|
127
|
+
}
|
128
|
+
},
|
129
|
+
|
130
|
+
remove: function(name, value, options) {
|
131
|
+
var set = this.get(name)
|
132
|
+
if (set) {
|
133
|
+
var arr = []
|
134
|
+
$.each(set, function() {
|
135
|
+
if (this != value + '') {
|
136
|
+
arr.push(this)
|
137
|
+
}
|
138
|
+
})
|
139
|
+
$.cookie(name, arr.join(sep), options)
|
140
|
+
return this.get(name)
|
141
|
+
} else {
|
142
|
+
return null
|
143
|
+
}
|
144
|
+
},
|
145
|
+
|
146
|
+
//Treats the cookie as an array
|
147
|
+
contains: function(name, value) {
|
148
|
+
var set = this.get(name)
|
149
|
+
if (set) {
|
150
|
+
return $.inArray(value + '', set) > -1
|
151
|
+
} else {
|
152
|
+
return false
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
});
|