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.
Files changed (425) hide show
  1. data/app/controllers/cms/base_controller.rb +3 -3
  2. data/app/controllers/cms/content_block_controller.rb +2 -2
  3. data/app/controllers/cms/content_controller.rb +5 -4
  4. data/app/controllers/cms/error_handling.rb +1 -1
  5. data/app/controllers/cms/routes_controller.rb +4 -5
  6. data/app/controllers/cms/section_nodes_controller.rb +1 -6
  7. data/app/controllers/cms/sections_controller.rb +2 -3
  8. data/app/controllers/cms/tasks_controller.rb +3 -0
  9. data/app/controllers/cms/users_controller.rb +1 -1
  10. data/app/helpers/cms/application_helper.rb +137 -34
  11. data/app/helpers/cms/form_builder.rb +33 -21
  12. data/app/helpers/cms/page_helper.rb +43 -10
  13. data/app/helpers/cms/path_helper.rb +1 -1
  14. data/app/helpers/cms/rendering_helper.rb +3 -4
  15. data/app/helpers/cms/section_nodes_helper.rb +5 -43
  16. data/app/models/abstract_file_block.rb +1 -16
  17. data/app/models/attachment.rb +57 -22
  18. data/app/models/category.rb +4 -4
  19. data/app/models/category_type.rb +2 -2
  20. data/app/models/cms/view_context.rb +46 -0
  21. data/app/models/connector.rb +7 -6
  22. data/app/models/content_type.rb +3 -3
  23. data/app/models/dynamic_view.rb +1 -1
  24. data/app/models/email_message.rb +2 -2
  25. data/app/models/file_block.rb +12 -0
  26. data/app/models/group.rb +4 -4
  27. data/app/models/group_type.rb +4 -4
  28. data/app/models/html_block.rb +1 -1
  29. data/app/models/image_block.rb +12 -0
  30. data/app/models/link.rb +22 -5
  31. data/app/models/page.rb +87 -46
  32. data/app/models/page_route.rb +61 -6
  33. data/app/models/permission.rb +1 -1
  34. data/app/models/portlet.rb +14 -4
  35. data/app/models/section.rb +48 -86
  36. data/app/models/section_node.rb +25 -40
  37. data/app/models/site.rb +1 -1
  38. data/app/models/tag.rb +1 -1
  39. data/app/models/task.rb +8 -7
  40. data/app/models/user.rb +2 -7
  41. data/app/portlets/forgot_password_portlet.rb +6 -2
  42. data/app/portlets/reset_password_portlet.rb +1 -1
  43. data/app/views/cms/blocks/_toolbar.html.erb +1 -1
  44. data/app/views/cms/blocks/_toolbar_for_collection.html.erb +3 -6
  45. data/app/views/cms/blocks/_toolbar_for_member.html.erb +3 -5
  46. data/app/views/cms/blocks/edit.html.erb +4 -4
  47. data/app/views/cms/blocks/index.html.erb +7 -7
  48. data/app/views/cms/blocks/new.html.erb +4 -4
  49. data/app/views/cms/blocks/show.html.erb +2 -2
  50. data/app/views/cms/blocks/usages.html.erb +2 -2
  51. data/app/views/cms/blocks/versions.html.erb +4 -4
  52. data/app/views/cms/cache/show.html.erb +2 -2
  53. data/app/views/cms/categories/_form.html.erb +2 -2
  54. data/app/views/cms/connectors/new.html.erb +6 -8
  55. data/app/views/cms/content/no_page.html.erb +1 -1
  56. data/app/views/cms/content/show.html.erb +2 -7
  57. data/app/views/cms/dashboard/_page_drafts.html.erb +1 -1
  58. data/app/views/cms/dashboard/_tasks.html.erb +1 -1
  59. data/app/views/cms/dashboard/index.html.erb +1 -1
  60. data/app/views/cms/dynamic_views/_form.html.erb +2 -2
  61. data/app/views/cms/dynamic_views/index.html.erb +7 -10
  62. data/app/views/cms/email_messages/show.html.erb +2 -2
  63. data/app/views/cms/file_blocks/_form.html.erb +4 -4
  64. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +2 -2
  65. data/app/views/cms/form_builder/_cms_file_field.html.erb +2 -2
  66. data/app/views/cms/form_builder/_cms_tag_list.html.erb +2 -2
  67. data/app/views/cms/form_builder/_cms_text_editor.html.erb +2 -2
  68. data/app/views/cms/groups/_form.html.erb +5 -5
  69. data/app/views/cms/groups/_permissions.html.erb +4 -4
  70. data/app/views/cms/groups/_sections.html.erb +1 -2
  71. data/app/views/cms/groups/index.html.erb +1 -1
  72. data/app/views/cms/html_blocks/render.html.erb +1 -1
  73. data/app/views/cms/image_blocks/_form.html.erb +4 -5
  74. data/app/views/cms/links/_form.html.erb +1 -1
  75. data/app/views/cms/links/edit.html.erb +2 -2
  76. data/app/views/cms/links/new.html.erb +2 -2
  77. data/app/views/cms/page_routes/_form.html.erb +2 -2
  78. data/app/views/cms/page_routes/index.html.erb +6 -9
  79. data/app/views/cms/page_routes/show.html.erb +5 -8
  80. data/app/views/cms/pages/_edit_connector.html.erb +1 -1
  81. data/app/views/cms/pages/_form.html.erb +3 -3
  82. data/app/views/cms/pages/edit.html.erb +2 -2
  83. data/app/views/cms/pages/new.html.erb +7 -7
  84. data/app/views/cms/pages/versions.html.erb +4 -4
  85. data/app/views/cms/redirects/_form.html.erb +2 -2
  86. data/app/views/cms/redirects/index.html.erb +8 -7
  87. data/app/views/cms/routes/index.html.erb +2 -2
  88. data/app/views/cms/section_nodes/_link.html.erb +3 -6
  89. data/app/views/cms/section_nodes/_node.html.erb +4 -13
  90. data/app/views/cms/section_nodes/_page.html.erb +7 -13
  91. data/app/views/cms/section_nodes/_section.html.erb +8 -24
  92. data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
  93. data/app/views/cms/section_nodes/index.html.erb +18 -30
  94. data/app/views/cms/sections/_form.html.erb +4 -6
  95. data/app/views/cms/sections/edit.html.erb +2 -2
  96. data/app/views/cms/sections/index.html.erb +3 -3
  97. data/app/views/cms/sections/new.html.erb +3 -3
  98. data/app/views/cms/sessions/new.html.erb +3 -3
  99. data/app/views/cms/shared/_pagination.html.erb +1 -1
  100. data/app/views/cms/shared/error.html.erb +1 -1
  101. data/app/views/cms/tags/render.html.erb +2 -2
  102. data/app/views/cms/tasks/new.html.erb +4 -4
  103. data/app/views/cms/users/_form.html.erb +3 -3
  104. data/app/views/cms/users/_toolbar.html.erb +3 -3
  105. data/app/views/cms/users/change_password.html.erb +5 -5
  106. data/app/views/cms/users/edit.html.erb +2 -2
  107. data/app/views/cms/users/index.html.erb +4 -4
  108. data/app/views/cms/users/new.html.erb +2 -2
  109. data/app/views/cms/users/show.html.erb +16 -16
  110. data/app/views/layouts/_cms_toolbar.html.erb +5 -5
  111. data/app/views/layouts/_page_toolbar.html.erb +11 -11
  112. data/app/views/layouts/cms/_footer.erb +1 -1
  113. data/app/views/layouts/cms/_head.html.erb +2 -6
  114. data/app/views/layouts/cms/administration.html.erb +32 -32
  115. data/app/views/layouts/cms/content_library.html.erb +5 -5
  116. data/app/views/layouts/cms/toolbar.html.erb +1 -1
  117. data/app/views/portlets/email_page/render.html.erb +2 -2
  118. data/app/views/portlets/forgot_password/render.html.erb +1 -1
  119. data/app/views/portlets/login/render.html.erb +4 -2
  120. data/app/views/portlets/reset_password/render.html.erb +1 -1
  121. data/app/views/tests/pretend/open_with_layout.html.erb +1 -1
  122. data/bin/bcms +0 -0
  123. data/bin/bcms-upgrade +232 -0
  124. data/bin/browsercms +2 -2
  125. data/browsercms.gemspec +16 -14
  126. data/db/migrate/20100705083859_browsercms_3_3_0.rb +56 -0
  127. data/db/seeds.rb +58 -0
  128. data/doc/guides/html/authentication.html +448 -192
  129. data/doc/guides/html/build_it_yourself.html +454 -175
  130. data/doc/guides/html/building_modules.html +451 -220
  131. data/doc/guides/html/building_templates.html +448 -498
  132. data/doc/guides/html/content_blocks.html +450 -470
  133. data/doc/guides/html/customizing_browsercms.html +453 -169
  134. data/doc/guides/html/deployment_guide.html +443 -82
  135. data/doc/guides/html/files/bcmsorg.js +28 -0
  136. data/doc/guides/html/files/clearfix.css +8 -0
  137. data/doc/guides/html/files/cufon.js +7 -0
  138. data/doc/guides/html/files/global.css +190 -0
  139. data/doc/guides/html/files/helvetica.js +91 -0
  140. data/doc/guides/html/files/jquery.js +11 -0
  141. data/doc/guides/html/getting_started.html +454 -213
  142. data/doc/guides/html/index.html +454 -174
  143. data/doc/guides/html/installing_modules.html +454 -186
  144. data/doc/guides/html/portlets.html +451 -232
  145. data/doc/guides/html/user_guide.html +452 -270
  146. data/doc/guides/html/writing_guides.html +454 -161
  147. data/lib/acts_as_list.rb +1 -1
  148. data/lib/browsercms.rb +10 -6
  149. data/lib/cms/acts.rb +7 -0
  150. data/lib/cms/authentication.rb +4 -0
  151. data/lib/cms/authentication/controller.rb +1 -1
  152. data/lib/cms/behaviors.rb +1 -1
  153. data/lib/cms/behaviors/archiving.rb +2 -2
  154. data/lib/cms/behaviors/attaching.rb +28 -43
  155. data/lib/cms/behaviors/categorizing.rb +1 -1
  156. data/lib/cms/behaviors/connecting.rb +27 -12
  157. data/lib/cms/behaviors/dynamic_attributes.rb +8 -5
  158. data/lib/cms/behaviors/hiding.rb +2 -2
  159. data/lib/cms/behaviors/publishing.rb +32 -22
  160. data/lib/cms/behaviors/rendering.rb +41 -18
  161. data/lib/cms/behaviors/searching.rb +1 -1
  162. data/lib/cms/behaviors/soft_deleting.rb +58 -29
  163. data/lib/cms/behaviors/taggable.rb +1 -1
  164. data/lib/cms/behaviors/userstamping.rb +5 -4
  165. data/lib/cms/behaviors/versioning.rb +192 -111
  166. data/lib/cms/content_rendering_support.rb +3 -3
  167. data/lib/cms/date_picker.rb +23 -0
  168. data/lib/cms/engine.rb +46 -0
  169. data/lib/cms/extensions.rb +1 -1
  170. data/lib/cms/extensions/active_record/errors.rb +2 -2
  171. data/lib/cms/extensions/hash.rb +4 -2
  172. data/lib/cms/extensions/string.rb +7 -2
  173. data/lib/cms/init.rb +32 -21
  174. data/lib/cms/module.rb +22 -0
  175. data/lib/cms/module_installation.rb +38 -0
  176. data/lib/cms/routes.rb +127 -115
  177. data/lib/cms/version.rb +2 -2
  178. data/lib/generators/browser_cms.rb +12 -0
  179. data/lib/generators/browser_cms/cms/USAGE +2 -0
  180. data/lib/generators/browser_cms/cms/cms_generator.rb +36 -0
  181. data/{rails_generators/browser_cms → lib/generators/browser_cms/cms}/templates/README +0 -0
  182. data/{rails_generators/browser_cms_demo_site → lib/generators/browser_cms/demo_site}/USAGE +0 -0
  183. data/lib/generators/browser_cms/demo_site/demo_site_generator.rb +138 -0
  184. data/lib/generators/browser_cms/demo_site/templates/demo_site.rake +11 -0
  185. data/{rails_generators/browser_cms_demo_site/templates/migration.rb → lib/generators/browser_cms/demo_site/templates/migration.erb} +2 -8
  186. data/lib/generators/cms/content_block/USAGE +22 -0
  187. data/lib/generators/cms/content_block/content_block_generator.rb +55 -0
  188. data/{rails_generators → lib/generators/cms}/content_block/templates/_form.html.erb +0 -0
  189. data/{rails_generators → lib/generators/cms}/content_block/templates/content_block.rb +0 -0
  190. data/{rails_generators → lib/generators/cms}/content_block/templates/controller.rb +0 -0
  191. data/{rails_generators → lib/generators/cms}/content_block/templates/functional_test.erb +0 -0
  192. data/{rails_generators/content_block/templates/migration.rb → lib/generators/cms/content_block/templates/migration.erb} +1 -1
  193. data/{rails_generators → lib/generators/cms}/content_block/templates/render.html.erb +0 -0
  194. data/{rails_generators → lib/generators/cms}/content_block/templates/unit_test.erb +0 -0
  195. data/lib/generators/cms/install/USAGE +8 -0
  196. data/lib/generators/cms/install/install_generator.rb +20 -0
  197. data/{rails_generators → lib/generators/cms}/portlet/USAGE +3 -16
  198. data/lib/generators/cms/portlet/portlet_generator.rb +38 -0
  199. data/{rails_generators → lib/generators/cms}/portlet/templates/_form.html.erb +0 -0
  200. data/{rails_generators → lib/generators/cms}/portlet/templates/portlet.rb +0 -0
  201. data/{rails_generators → lib/generators/cms}/portlet/templates/portlet_helper.rb +0 -0
  202. data/{rails_generators → lib/generators/cms}/portlet/templates/render.html.erb +0 -0
  203. data/{rails_generators → lib/generators/cms}/portlet/templates/unit_test.erb +0 -0
  204. data/{rails_generators → lib/generators/cms}/template/USAGE +1 -1
  205. data/lib/generators/cms/template/template_generator.rb +18 -0
  206. data/lib/generators/cms/template/templates/template.erb +2 -0
  207. data/lib/generators/cms/upgrade_module/README.txt +3 -0
  208. data/lib/generators/cms/upgrade_module/templates/20100705083859_browsercms_3_3_0.rb +56 -0
  209. data/lib/generators/cms/upgrade_module/templates/README +1 -0
  210. data/lib/generators/cms/upgrade_module/templates/USAGE.erb +10 -0
  211. data/lib/generators/cms/upgrade_module/templates/build_gem.rake +5 -0
  212. data/lib/generators/cms/upgrade_module/templates/engine.erb +7 -0
  213. data/lib/generators/cms/upgrade_module/templates/gemspec.erb +25 -0
  214. data/lib/generators/cms/upgrade_module/templates/gitignore.erb +11 -0
  215. data/lib/generators/cms/upgrade_module/templates/install.erb +9 -0
  216. data/lib/generators/cms/upgrade_module/templates/module_file.erb +3 -0
  217. data/lib/generators/cms/upgrade_module/templates/routes.erb +7 -0
  218. data/lib/generators/cms/upgrade_module/upgrade_module_generator.rb +61 -0
  219. data/lib/tasks/build_gem.rake +1 -0
  220. data/lib/tasks/cms.rake +34 -6
  221. data/lib/tasks/cucumber.rake +53 -0
  222. data/lib/tasks/db.rake +2 -2
  223. data/public/javascripts/cms/application.js +144 -135
  224. data/public/javascripts/cms/sitemap.js +383 -357
  225. data/public/javascripts/jquery-ui.js +782 -591
  226. data/public/javascripts/jquery.cookie.js +38 -43
  227. data/public/javascripts/jquery.js +13 -8
  228. data/public/javascripts/jquery.taglist.js +7 -0
  229. data/public/stylesheets/cms/date_picker.css +49 -40
  230. data/rails/init.rb +2 -3
  231. data/templates/blank.rb +13 -7
  232. data/templates/demo.rb +15 -7
  233. data/templates/module.rb +12 -75
  234. metadata +87 -407
  235. data/app/helpers/cms/content_block_helper.rb +0 -27
  236. data/app/views/layouts/cms/thickbox.html.erb +0 -24
  237. data/db/migrate/20120117144039_browsercms315.rb +0 -94
  238. data/db/migrate/20121114172307_load_seeds.rb +0 -70
  239. data/lib/cms/addressable.rb +0 -83
  240. data/lib/cms/error_pages.rb +0 -8
  241. data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
  242. data/public/images/cms/thickbox/macFFBgHack.png +0 -0
  243. data/public/javascripts/jquery.contextMenu.js +0 -211
  244. data/public/javascripts/jquery.dimensions.js +0 -119
  245. data/public/javascripts/jquery.thickbox.js +0 -10
  246. data/public/stylesheets/cms/jquery.contextMenu.css +0 -61
  247. data/public/stylesheets/cms/thickbox.css +0 -163
  248. data/rails_generators/browser_cms/USAGE +0 -2
  249. data/rails_generators/browser_cms/browser_cms_generator.rb +0 -35
  250. data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +0 -63
  251. data/rails_generators/content_block/USAGE +0 -32
  252. data/rails_generators/content_block/content_block_generator.rb +0 -69
  253. data/rails_generators/portlet/portlet_generator.rb +0 -35
  254. data/rails_generators/template/template_generator.rb +0 -18
  255. data/rails_generators/template/templates/template.erb +0 -3
  256. data/test/custom_assertions.rb +0 -74
  257. data/test/factories.rb +0 -111
  258. data/test/factories/sitemap_factories.rb +0 -28
  259. data/test/fixtures/connectors.yml +0 -97
  260. data/test/fixtures/content_type_groups.yml +0 -13
  261. data/test/fixtures/content_types.yml +0 -50
  262. data/test/fixtures/dynamic_view_versions.yml +0 -26
  263. data/test/fixtures/dynamic_views.yml +0 -26
  264. data/test/fixtures/group_permissions.yml +0 -16
  265. data/test/fixtures/group_sections.yml +0 -31
  266. data/test/fixtures/group_type_permissions.yml +0 -11
  267. data/test/fixtures/group_types.yml +0 -25
  268. data/test/fixtures/groups.yml +0 -25
  269. data/test/fixtures/html_block_versions.yml +0 -67
  270. data/test/fixtures/html_blocks.yml +0 -63
  271. data/test/fixtures/page_versions.yml +0 -265
  272. data/test/fixtures/pages.yml +0 -85
  273. data/test/fixtures/permissions.yml +0 -28
  274. data/test/fixtures/section_nodes.yml +0 -46
  275. data/test/fixtures/sections.yml +0 -19
  276. data/test/fixtures/sites.yml +0 -9
  277. data/test/fixtures/user_group_memberships.yml +0 -11
  278. data/test/fixtures/users.yml +0 -15
  279. data/test/functional/cms/cache_controller_test.rb +0 -14
  280. data/test/functional/cms/categories_controller_test.rb +0 -25
  281. data/test/functional/cms/connectors_controller_test.rb +0 -60
  282. data/test/functional/cms/content_block_controller_test.rb +0 -120
  283. data/test/functional/cms/content_controller_test.rb +0 -439
  284. data/test/functional/cms/content_types_controller_test.rb +0 -18
  285. data/test/functional/cms/dashboard_controller_test.rb +0 -16
  286. data/test/functional/cms/dynamic_views_controller_test.rb +0 -52
  287. data/test/functional/cms/file_blocks_controller_test.rb +0 -52
  288. data/test/functional/cms/groups_controller_test.rb +0 -50
  289. data/test/functional/cms/home_controller_test.rb +0 -156
  290. data/test/functional/cms/html_blocks_controller_test.rb +0 -164
  291. data/test/functional/cms/image_blocks_controller_test.rb +0 -82
  292. data/test/functional/cms/links_controller_test.rb +0 -148
  293. data/test/functional/cms/pages_controller_test.rb +0 -227
  294. data/test/functional/cms/portlets_controller_test.rb +0 -67
  295. data/test/functional/cms/section_nodes_controller_test.rb +0 -112
  296. data/test/functional/cms/sections_controller_test.rb +0 -227
  297. data/test/functional/cms/sessions_controller_test.rb +0 -76
  298. data/test/functional/cms/toolbar_controller_test.rb +0 -64
  299. data/test/functional/cms/users_controller_test.rb +0 -231
  300. data/test/functional/tests/pretend_controller_test.rb +0 -57
  301. data/test/integration/cms/ckeditor_test.rb +0 -30
  302. data/test/integration/cms/password_management_test.rb +0 -56
  303. data/test/integration/login_test.rb +0 -14
  304. data/test/integration/sitemap_performance_test.rb +0 -26
  305. data/test/selenium-core/Blank.html +0 -7
  306. data/test/selenium-core/InjectedRemoteRunner.html +0 -8
  307. data/test/selenium-core/RemoteRunner.html +0 -110
  308. data/test/selenium-core/SeleniumLog.html +0 -109
  309. data/test/selenium-core/TestPrompt.html +0 -145
  310. data/test/selenium-core/TestRunner-splash.html +0 -55
  311. data/test/selenium-core/TestRunner.hta +0 -176
  312. data/test/selenium-core/TestRunner.html +0 -176
  313. data/test/selenium-core/domviewer/butmin.gif +0 -0
  314. data/test/selenium-core/domviewer/butplus.gif +0 -0
  315. data/test/selenium-core/domviewer/domviewer.css +0 -298
  316. data/test/selenium-core/domviewer/domviewer.html +0 -16
  317. data/test/selenium-core/domviewer/selenium-domviewer.js +0 -205
  318. data/test/selenium-core/icons/all.png +0 -0
  319. data/test/selenium-core/icons/continue.png +0 -0
  320. data/test/selenium-core/icons/continue_disabled.png +0 -0
  321. data/test/selenium-core/icons/pause.png +0 -0
  322. data/test/selenium-core/icons/pause_disabled.png +0 -0
  323. data/test/selenium-core/icons/selected.png +0 -0
  324. data/test/selenium-core/icons/step.png +0 -0
  325. data/test/selenium-core/icons/step_disabled.png +0 -0
  326. data/test/selenium-core/iedoc-core.xml +0 -1515
  327. data/test/selenium-core/iedoc.xml +0 -1469
  328. data/test/selenium-core/lib/cssQuery/cssQuery-p.js +0 -6
  329. data/test/selenium-core/lib/cssQuery/src/cssQuery-level2.js +0 -142
  330. data/test/selenium-core/lib/cssQuery/src/cssQuery-level3.js +0 -150
  331. data/test/selenium-core/lib/cssQuery/src/cssQuery-standard.js +0 -53
  332. data/test/selenium-core/lib/cssQuery/src/cssQuery.js +0 -356
  333. data/test/selenium-core/lib/prototype.js +0 -2006
  334. data/test/selenium-core/lib/scriptaculous/builder.js +0 -101
  335. data/test/selenium-core/lib/scriptaculous/controls.js +0 -815
  336. data/test/selenium-core/lib/scriptaculous/dragdrop.js +0 -915
  337. data/test/selenium-core/lib/scriptaculous/effects.js +0 -958
  338. data/test/selenium-core/lib/scriptaculous/scriptaculous.js +0 -47
  339. data/test/selenium-core/lib/scriptaculous/slider.js +0 -283
  340. data/test/selenium-core/lib/scriptaculous/unittest.js +0 -383
  341. data/test/selenium-core/scripts/find_matching_child.js +0 -69
  342. data/test/selenium-core/scripts/htmlutils.js +0 -894
  343. data/test/selenium-core/scripts/injection.html +0 -72
  344. data/test/selenium-core/scripts/js2html.js +0 -70
  345. data/test/selenium-core/scripts/narcissus-defs.js +0 -175
  346. data/test/selenium-core/scripts/narcissus-exec.js +0 -1054
  347. data/test/selenium-core/scripts/narcissus-parse.js +0 -1003
  348. data/test/selenium-core/scripts/se2html.js +0 -63
  349. data/test/selenium-core/scripts/selenium-api.js +0 -2409
  350. data/test/selenium-core/scripts/selenium-browserbot.js +0 -2203
  351. data/test/selenium-core/scripts/selenium-browserdetect.js +0 -150
  352. data/test/selenium-core/scripts/selenium-commandhandlers.js +0 -377
  353. data/test/selenium-core/scripts/selenium-executionloop.js +0 -175
  354. data/test/selenium-core/scripts/selenium-logging.js +0 -147
  355. data/test/selenium-core/scripts/selenium-remoterunner.js +0 -571
  356. data/test/selenium-core/scripts/selenium-testrunner.js +0 -1333
  357. data/test/selenium-core/scripts/selenium-version.js +0 -5
  358. data/test/selenium-core/scripts/user-extensions.js +0 -3
  359. data/test/selenium-core/scripts/user-extensions.js.sample +0 -75
  360. data/test/selenium-core/scripts/xmlextras.js +0 -153
  361. data/test/selenium-core/selenium-logo.png +0 -0
  362. data/test/selenium-core/selenium-test.css +0 -43
  363. data/test/selenium-core/selenium.css +0 -299
  364. data/test/selenium-core/xpath/dom.js +0 -428
  365. data/test/selenium-core/xpath/misc.js +0 -252
  366. data/test/selenium-core/xpath/xpath.js +0 -2223
  367. data/test/selenium/_login_as_cmsadmin.rsel +0 -4
  368. data/test/selenium/dashboard.rsel +0 -5
  369. data/test/selenium/html_blocks.rsel +0 -4
  370. data/test/selenium/login/failed_login.rsel +0 -8
  371. data/test/selenium/login/successful_login.rsel +0 -9
  372. data/test/selenium/page_templates.rsel +0 -12
  373. data/test/selenium/pages/edit_properties.rsel +0 -5
  374. data/test/selenium/site/view_home_page.rsel +0 -4
  375. data/test/selenium/sitemap/move_page.rsel +0 -9
  376. data/test/selenium/sitemap/open_section.rsel +0 -6
  377. data/test/selenium/sitemap/select_page.rsel +0 -12
  378. data/test/selenium/sitemap/select_section.rsel +0 -17
  379. data/test/test_helper.rb +0 -193
  380. data/test/test_logging.rb +0 -67
  381. data/test/unit/behaviors/attaching_test.rb +0 -357
  382. data/test/unit/behaviors/connectable_test.rb +0 -29
  383. data/test/unit/behaviors/dynamic_attributes_test.rb +0 -38
  384. data/test/unit/behaviors/publishable_test.rb +0 -84
  385. data/test/unit/behaviors/searching_test.rb +0 -102
  386. data/test/unit/behaviors/taggable_test.rb +0 -109
  387. data/test/unit/behaviors/versioning_test.rb +0 -36
  388. data/test/unit/extensions/active_record/base_test.rb +0 -10
  389. data/test/unit/extensions/hash_test.rb +0 -17
  390. data/test/unit/extensions/integer_test.rb +0 -10
  391. data/test/unit/helpers/application_helper_test.rb +0 -77
  392. data/test/unit/helpers/form_builder_test.rb +0 -36
  393. data/test/unit/helpers/menu_helper_test.rb +0 -242
  394. data/test/unit/helpers/page_helper_test.rb +0 -67
  395. data/test/unit/helpers/path_helper_test.rb +0 -57
  396. data/test/unit/lib/acts_as_content_page_test.rb +0 -72
  397. data/test/unit/lib/cms/authentication/controller_test.rb +0 -20
  398. data/test/unit/lib/cms/sitemap_test.rb +0 -206
  399. data/test/unit/lib/cms_domain_support_test.rb +0 -43
  400. data/test/unit/lib/command_line_test.rb +0 -70
  401. data/test/unit/lib/content_block_test.rb +0 -203
  402. data/test/unit/lib/content_rendering_support_test.rb +0 -40
  403. data/test/unit/lib/generators_test.rb +0 -40
  404. data/test/unit/lib/routes_test.rb +0 -57
  405. data/test/unit/models/attachment_test.rb +0 -116
  406. data/test/unit/models/category_test.rb +0 -40
  407. data/test/unit/models/category_type_test.rb +0 -8
  408. data/test/unit/models/connector_test.rb +0 -152
  409. data/test/unit/models/content_type_test.rb +0 -56
  410. data/test/unit/models/email_page_portlet_test.rb +0 -14
  411. data/test/unit/models/file_block_test.rb +0 -230
  412. data/test/unit/models/group_test.rb +0 -13
  413. data/test/unit/models/html_block_test.rb +0 -102
  414. data/test/unit/models/link_test.rb +0 -52
  415. data/test/unit/models/page_partial_test.rb +0 -29
  416. data/test/unit/models/page_route_test.rb +0 -29
  417. data/test/unit/models/page_template_test.rb +0 -40
  418. data/test/unit/models/page_test.rb +0 -792
  419. data/test/unit/models/permission_test.rb +0 -10
  420. data/test/unit/models/portlet_test.rb +0 -69
  421. data/test/unit/models/sections_test.rb +0 -264
  422. data/test/unit/models/site_test.rb +0 -50
  423. data/test/unit/models/task_test.rb +0 -141
  424. data/test/unit/models/user_test.rb +0 -352
  425. data/test/unit/schema_statements_test.rb +0 -41
@@ -14,18 +14,18 @@ module Cms
14
14
 
15
15
  def handle_not_found_on_page(exception)
16
16
  logger.warn "Page Not Found"
17
- handle_error_with_cms_page(Cms::ErrorPages::NOT_FOUND_PATH, exception, :not_found)
17
+ handle_error_with_cms_page('/system/not_found', exception, :not_found)
18
18
  end
19
19
 
20
20
  def handle_access_denied_on_page(exception)
21
21
  logger.warn "Access Denied"
22
- handle_error_with_cms_page(Cms::ErrorPages::FORBIDDEN_PATH, exception, :forbidden)
22
+ handle_error_with_cms_page('/system/access_denied', exception, :forbidden)
23
23
  end
24
24
 
25
25
  def handle_server_error_on_page(exception)
26
26
  logger.warn "Exception: #{exception.message}\n"
27
27
  logger.warn "#{exception.backtrace.join("\n")}\n"
28
- handle_error_with_cms_page(Cms::ErrorPages::SERVER_ERROR_PATH, exception, :internal_server_error)
28
+ handle_error_with_cms_page('/system/server_error', exception, :internal_server_error)
29
29
  end
30
30
 
31
31
  private
@@ -0,0 +1,23 @@
1
+ module Cms
2
+
3
+
4
+ # Helper methods for centralizing Date handling for the CMS.
5
+ # Eventually, we will need a way to handle i18n formatting of dates, but I would also like to have US style dates
6
+ # for US locales (M/d/yy), but since Ruby 1.8.7 and 1.9.2 have different handling of Date.parse, that would take some
7
+ # monkeypatching.
8
+ #
9
+ class DatePicker
10
+
11
+ class << self
12
+
13
+ # Returns the date format that the JQuery selector will need to use.
14
+ def jquery_format
15
+ 'yy/mm/dd'
16
+ end
17
+
18
+ def format_for_ui(date)
19
+ date ? date.strftime('%Y/%m/%d') : nil
20
+ end
21
+ end
22
+ end
23
+ end
data/lib/cms/engine.rb ADDED
@@ -0,0 +1,46 @@
1
+ #puts 'load engine'
2
+ require 'rails'
3
+ require 'cms/module'
4
+ require 'cms/init'
5
+ require 'browsercms'
6
+
7
+ module Cms
8
+
9
+ # Configuring BrowserCMS as an engine. This seems to work, but could probably be cleaned up.
10
+ #
11
+ class Engine < Rails::Engine
12
+ include Cms::Module
13
+
14
+ Cms.add_generator_paths(Cms.root,
15
+ "public/site/**/*",
16
+ "db/seeds.rb")
17
+
18
+ config.action_view.javascript_expansions[:bcms_core] = ['jquery', 'jquery-ui', 'jquery.cookie.js', 'jquery.selectbox-0.5.js', 'jquery.taglist.js', Cms.wysiwig_js, 'cms/application']
19
+
20
+ initializer 'browsercms.add_core_routes', :after=>'action_dispatch.prepare_dispatcher' do |app|
21
+ Rails.logger.debug "Adding Cms::Routes to ActionDispatch"
22
+ ::Cms::Engine.add_cms_routes_method
23
+ end
24
+
25
+ initializer 'browsercms.add_load_paths', :after=>'action_controller.deprecated_routes' do |app|
26
+ Rails.logger.debug "Add Cms::Dependencies and other load_path configurations."
27
+ ::Cms::Engine.add_cms_load_paths
28
+ end
29
+
30
+ def self.add_cms_routes_method
31
+ ActionDispatch::Routing::Mapper.send :include, Cms::Routes
32
+ end
33
+
34
+ def self.add_cms_load_paths
35
+ ActiveSupport::Dependencies.autoload_paths += %W( #{self.root}/vendor #{self.root}/app/mailers #{self.root}/app/helpers)
36
+ ActiveSupport::Dependencies.autoload_paths += %W( #{self.root}/app/controllers #{self.root}/app/models #{self.root}/app/portlets)
37
+ ActiveSupport::Dependencies.autoload_paths += %W( #{Rails.root}/app/portlets )
38
+ ActiveSupport::Dependencies.autoload_paths += %W( #{Rails.root}/app/portlets/helpers )
39
+ ActionController::Base.append_view_path DynamicView.base_path
40
+ ActionController::Base.append_view_path %W( #{self.root}/app/views)
41
+
42
+ ActionView::Base.default_form_builder = Cms::FormBuilder
43
+ require 'jdbc_adapter' if defined?(JRUBY_VERSION)
44
+ end
45
+ end
46
+ end
@@ -1,4 +1,4 @@
1
1
  Dir["#{File.join(File.dirname(__FILE__), "extensions")}/**/*.rb"].each do |f|
2
- Rails.logger.info "~~ Loading extensions from #{f}"
2
+ Rails.logger.info "~~ Loading extensions from #{f}" if Rails.logger
3
3
  require f
4
4
  end
@@ -1,6 +1,6 @@
1
1
  module Cms
2
2
  module Extensions
3
- module ActiveRecord
3
+ module ActiveModel
4
4
  module Errors
5
5
  def add_from_hash(errors)
6
6
  errors.each{|k,v| add(k, v) } unless errors.blank?
@@ -9,4 +9,4 @@ module Cms
9
9
  end
10
10
  end
11
11
  end
12
- ActiveRecord::Errors.send(:include, Cms::Extensions::ActiveRecord::Errors)
12
+ ActiveModel::Errors.send(:include, Cms::Extensions::ActiveModel::Errors)
@@ -9,12 +9,14 @@ module Cms
9
9
  # This takes a list of keys and returns a new hash
10
10
  # containing the key/values that match the keys passed in.
11
11
  # This will also remove the keys from this hash
12
- def extract!(*keys)
12
+ #
13
+ # Note: This behavior is slightly different from ActiveSupport Hash#extract! which can add nil keys if they don't exist.
14
+ def extract_only!(*keys)
13
15
  keys.inject({}) do |hash, key|
14
16
  hash[key] = delete(key) if has_key?(key)
15
17
  hash
16
18
  end
17
- end
19
+ end
18
20
  end
19
21
  end
20
22
  end
@@ -9,8 +9,13 @@ module Cms
9
9
  end
10
10
  def to_slug
11
11
  gsub(/\W+/, ' ').strip.downcase.gsub(/\ +/, '-')
12
- end
13
- def pluralize(count=nil)
12
+ end
13
+
14
+ # Allows for conditional pluralization of names where object counts are not singular.
15
+ #
16
+ # @param [Integer] count The number of objects of this string there are.
17
+ # @return [String] Plural of string, unless count == 1
18
+ def pluralize_unless_one(count=nil)
14
19
  count == 1 ? self : ActiveSupport::Inflector.pluralize(self)
15
20
  end
16
21
  end
data/lib/cms/init.rb CHANGED
@@ -1,6 +1,4 @@
1
- # This avoids throwing Deprecation warnings for Rails 3 related issues which have already been fixed in the Rails 3 branch.
2
- # Remove when merged into BrowserCMS 3.3.x
3
- ActiveSupport::Deprecation.silenced = true
1
+ require 'cms/version'
4
2
 
5
3
  module Cms
6
4
  class << self
@@ -19,38 +17,58 @@ module Cms
19
17
  end
20
18
 
21
19
  # This is called after the environment is ready
20
+ # This all needs to be moved to the Engine
22
21
  def init
23
- ActionController::Routing::RouteSet::Mapper.send :include, Cms::Routes
24
- ActiveSupport::Dependencies.load_paths += %W( #{RAILS_ROOT}/app/portlets )
25
- ActiveSupport::Dependencies.load_paths += %W( #{RAILS_ROOT}/app/portlets/helpers )
26
- ActionController::Base.append_view_path DynamicView.base_path
27
- ActionView::Base.default_form_builder = Cms::FormBuilder
22
+ puts "BrowserCMS init has been called!!!!!!!"
23
+
24
+ # ToDo: This is how we are adding new methods to the routes.rb file. Rails 3 might provide more direct way.
25
+ # ActionDispatch::Routing::Mapper.send :include, Cms::Routes
26
+
27
+ #need to add gem's app directories to the load path -
28
+ #the list is taken from what rails has automagically added to $: for the Rails.root dirs
29
+ # ActiveSupport::Dependencies.autoload_paths += %W( #{self.root}/vendor #{self.root}/app/mailers #{self.root}/app/helpers)
30
+ # ActiveSupport::Dependencies.autoload_paths += %W( #{self.root}/app/controllers #{self.root}/app/models #{self.root}/app/portlets)
31
+ # ActiveSupport::Dependencies.autoload_paths += %W( #{Rails.root}/app/portlets )
32
+ # ActiveSupport::Dependencies.autoload_paths += %W( #{Rails.root}/app/portlets/helpers )
33
+ # ActionController::Base.append_view_path DynamicView.base_path
34
+ # ActionController::Base.append_view_path %W( #{self.root}/app/views)
35
+
36
+ # ActionView::Base.default_form_builder = Cms::FormBuilder
28
37
 
29
38
  # ActiveRecord JDBC adapter depends on no database connection having
30
39
  # been established to work properly.
31
- require 'jdbc_adapter' if defined?(JRUBY_VERSION)
40
+ # require 'jdbc_adapter' if defined?(JRUBY_VERSION)
32
41
 
33
42
  # This is just to be safe
34
43
  # dynamic views are stored in a tmp dir
35
44
  # so they could be blown away on a server restart or something
36
45
  # so this just makes sure they get written out
37
- DynamicView.write_all_to_disk! if DynamicView.table_exists?
46
+
47
+ # Commenting out, as the app/model files don't seem to have been loaded yet at this point, so
48
+ # we are getting class errors w/ STI.
49
+
50
+ # DynamicView.write_all_to_disk! if DynamicView.table_exists?
38
51
  end
39
52
 
40
53
  # This is used by CMS modules to register with the CMS generator
41
54
  # which files should be copied over to the app when the CMS generator is run.
42
55
  # src_root is the absolute path to the root of the files,
43
56
  # then each argument after that is a Dir.glob pattern string.
57
+ #
58
+ # @param [String] src_root The root directory of the gem
59
+ # @param [Array of String] files A list of all file names to be copied
44
60
  def add_generator_paths(src_root, *files)
45
61
  generator_paths << [src_root, files]
46
62
  end
47
-
63
+
64
+ alias_method :add_paths_to_copied_into_project, :add_generator_paths
65
+
48
66
  def generator_paths
49
67
  @generator_paths ||= []
50
68
  end
51
69
 
52
70
  def add_to_rails_paths(path)
53
- ActiveSupport::Dependencies.load_paths << File.join(path, "app", "portlets")
71
+ ActiveSupport::Dependencies.autoload_paths << File.join(path, "app", "portlets")
54
72
  end
55
73
 
56
74
  def add_to_routes(route)
@@ -104,16 +122,9 @@ module Cms
104
122
  end
105
123
  end
106
124
 
107
- ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
125
+ Time::DATE_FORMATS.merge!(
108
126
  :year_month_day => '%Y/%m/%d',
109
127
  :date => '%m/%d/%Y'
110
128
  )
111
129
 
112
- Cms.add_generator_paths(Cms.root,
113
- "public/javascripts/jquery*",
114
- "public/javascripts/cms/**/*",
115
- "public/bcms/ckeditor/**/*",
116
- "public/site/**/*",
117
- "public/stylesheets/cms/**/*",
118
- "public/images/cms/**/*",
119
- "db/migrate/[0-9]*_*.rb")
130
+
data/lib/cms/module.rb ADDED
@@ -0,0 +1,22 @@
1
+ module Cms
2
+
3
+ # All BrowserCMS modules will:
4
+ # 1. Add app/portlets to the loadpath
5
+ # 2. Serve static assets from their public directory.
6
+ module Module
7
+
8
+
9
+ def self.included(base)
10
+ # Make sure class in app/portlets are in the load_path
11
+ portlets_dir = File.join("..", "..", "app", "portlets")
12
+ base.config.autoload_paths << portlets_dir
13
+
14
+ base.initializer "browsercms.enable_serving_static_assets" do |app|
15
+ app.middleware.use ::ActionDispatch::Static, "#{root}/public"
16
+ end
17
+
18
+ end
19
+
20
+
21
+ end
22
+ end
@@ -0,0 +1,38 @@
1
+ # Provides a base class for Module installation generators.
2
+ #
3
+ # This strategy assumes that modules will subclass this, and copy files from their db/migrate directory.
4
+ # Usage:
5
+ #
6
+ # require 'cms/module_installation'
7
+ # class MyModule::InstallGenerator < Cms::ModuleInstallation
8
+ # add_migrations_directory_to_source_root __FILE__
9
+ # copy_migration_file 'DATE_STAMP_create_some_block_name.rb'
10
+ # end
11
+ #
12
+ class Cms::ModuleInstallation < Rails::Generators::Base
13
+
14
+ # This will be relative to the gem
15
+ # e.g. add_migrations_directory_to_source_root __FILE__
16
+ def self.add_migrations_directory_to_source_root(generator_file_object)
17
+ source_root File.expand_path('../../../../../db/migrate/', generator_file_object)
18
+ end
19
+
20
+ # Add a migration file to the list of files to be copied from this gem into the project.
21
+ def self.copy_migration_file(name_of_file)
22
+ @migration_files = [] unless @migration_files
23
+ @migration_files << name_of_file
24
+ end
25
+
26
+ def self.migration_files
27
+ @migration_files
28
+ end
29
+
30
+ def copy_migrations_to_project
31
+ if self.class.migration_files
32
+ self.class.migration_files.each do |file_name|
33
+ copy_file file_name, "db/migrate/#{file_name}"
34
+ end
35
+ end
36
+ end
37
+
38
+ end
data/lib/cms/routes.rb CHANGED
@@ -1,136 +1,148 @@
1
1
  module Cms::Routes
2
2
 
3
+
4
+ # Adds all necessary routes to manage a new content type. Works very similar to the Rails _resources_ method, adding basic CRUD routes, as well as additional ones
5
+ # for CMS specific routes (like versioning)
3
6
  #
4
- # content_block_name - Should be a plural symbol matching the name of the content_block, like :dogs or donation_statuses
5
- #
6
- def content_blocks(content_block_name, options={}, &block)
7
+ # @params [Symbol] content_block_name - The plural name of a new Content Type. Should match the name of the content_block, like :dogs or :donation_statuses
8
+ def content_blocks(content_block_name, options={}, & block)
7
9
  content_block = content_block_name.to_s.classify.constantize
8
- resources(*[content_block_name, default_routes_for_content_block(content_block).deep_merge(options)], &block)
10
+ resources content_block_name do
11
+ member do
12
+ put :publish if content_block.publishable?
13
+ get :versions if content_block.versioned?
14
+ get :usages if content_block.connectable?
15
+ end
16
+ end
9
17
  if content_block.versioned?
10
- # I'm not sure why, but these named routes
11
- # don't end up getting nested in the CMS namepace.
12
- # So for now I'm just hard-coding the stuff related to the CMS namespace
13
- send("version_cms_#{content_block_name}".to_sym,
14
- "/cms/#{content_block_name}/:id/version/:version",
15
- :controller => "cms/#{content_block_name}",
16
- :action => "version",
17
- :conditions => {:method => :get})
18
- send("revert_to_cms_#{content_block_name}".to_sym,
19
- "/cms/#{content_block_name}/:id/revert_to/:version",
20
- :controller => "cms/#{content_block_name}",
21
- :action => "revert_to",
22
- :conditions => {:method => :put})
18
+ send("get", "/#{content_block_name}/:id/version/:version", :to=>"#{content_block_name}#version", :as=>"version_cms_#{content_block_name}".to_sym)
19
+ send("put", "/#{content_block_name}/:id/revert_to/:version", :to=>"#{content_block_name}#revert_to", :as=>"revert_to_cms_#{content_block_name}".to_sym)
23
20
  end
24
21
  end
25
-
26
- def default_routes_for_content_block(content_block)
27
- member_routes = {}
28
- member_routes[:publish] = :put if content_block.publishable?
29
- member_routes[:versions] = :get if content_block.versioned?
30
- member_routes[:usages] = :get if content_block.connectable?
31
- {:member => member_routes}
32
- end
33
-
22
+
23
+ # Adds the routes required for BrowserCMS to function to a routes.rb file. Should be the last route in the file, as
24
+ # all following routes will be ignored.
25
+ #
26
+ # Usage:
27
+ # YourAppName::Application.routes.draw do
28
+ # match '/some/path/in/your/app' :to=>"controller#action''
29
+ # routes_for_browser_cms
30
+ # end
31
+ #
34
32
  def routes_for_browser_cms
35
33
 
36
- namespace(:cms) do |cms|
37
-
38
- cms.home '/', :controller => 'home'
39
-
40
- cms.logout '/logout', :controller => 'sessions', :action => 'destroy'
41
- cms.login '/login', :controller => 'sessions', :action => 'new', :conditions => { :method => :get }
42
- cms.connect '/login', :controller => 'sessions', :action => 'create', :conditions => { :method => :post }
43
- cms.dashboard '/dashboard', :controller => 'dashboard'
44
- cms.sitemap '/sitemap', :controller => 'section_nodes'
45
-
46
- cms.content_types '/content_types', :controller => 'content_types'
47
- cms.resources :connectors, :member => {
48
- :move_up => :put,
49
- :move_down => :put,
50
- :move_to_bottom => :put,
51
- :move_to_top => :put
52
- }
53
- cms.resources :links
54
-
55
- cms.resources :pages, :member => {
56
- :archive => :put,
57
- :hide => :put,
58
- :publish => :put,
59
- :versions => :get
60
- }, :collection => {
61
- :publish => :put
62
- }, :has_many => [:tasks]
63
- version_cms_page '/cms/pages/:id/version/:version', :controller => 'cms/pages', :action => 'version', :conditions => {:method => :get}
64
- revert_to_cms_page '/cms/pages/:id/revert_to/:version', :controller => 'cms/pages', :action => 'revert_to', :conditions => {:method => :put}
65
-
66
- cms.file_browser '/sections/file_browser.xml', :controller => 'sections', :action => 'file_browser', :format => "xml"
67
- cms.resources :sections, :has_many => [:links, :pages]
68
-
69
- cms.resources :section_nodes, :member => {
70
- :move_before => :put,
71
- :move_after => :put,
72
- :move_to_beginning => :put,
73
- :move_to_end => :put,
74
- :move_to_root => :put
75
- }
76
- cms.attachment '/attachments/:id', :controller => 'attachments', :action => 'show'
77
-
78
- cms.resources :tasks, :member => {:complete => :put}, :collection => {:complete => :put}
79
- cms.toolbar '/toolbar', :controller => 'toolbar'
80
-
81
- # TODO: Make an actual content library controller
82
- # that redirects to the last content type you were working on
83
- cms.content_library '/content_library', :controller => 'html_blocks'
84
-
85
- cms.content_blocks :html_blocks
86
- cms.content_blocks :portlets, :member => {:usages => :get}
87
- cms.handler "/portlet/:id/:handler",
88
- :controller => "portlet",
89
- :action => "execute_handler",
90
- :conditions => {:method => :post}
91
-
92
- cms.content_blocks :file_blocks
93
- cms.content_blocks :image_blocks
94
- cms.content_blocks :category_types
95
- cms.content_blocks :categories
96
- cms.content_blocks :tags
97
-
98
- cms.administration '/administration', :controller => 'users'
99
-
100
- cms.with_options :controller => "cache" do |cache|
101
- cache.cache "/cache", :action => "show", :conditions => {:method => :get}
102
- cache.connect "/cache", :action => "destroy", :conditions => {:method => :delete}
34
+ namespace :cms do
35
+
36
+ match '/dashboard', :to=>"dashboard#index", :as=>'dashboard'
37
+ match '/', :to => 'home#index', :as=>'home'
38
+ match '/sitemap', :to=>"section_nodes#index", :as=>'sitemap'
39
+ match '/content_library', :to=>"html_blocks#index", :as=>'content_library'
40
+ match '/administration', :to=>"users#index", :as=>'administration'
41
+ match '/logout', :to=>"sessions#destroy", :as=>'logout'
42
+ get '/login', :to=>"sessions#new", :as=>'login'
43
+ post '/login', :to=>"sessions#create"
44
+
45
+ match '/toolbar', :to=>"toolbar#index", :as=>'toolbar'
46
+ match '/content_types', :to=>"content_types#index", :as=>'content_types'
47
+
48
+ resources :connectors do
49
+ member do
50
+ put :move_up
51
+ put :move_down
52
+ put :move_to_bottom
53
+ put :move_to_top
54
+ end
55
+ end
56
+ resources :links
57
+
58
+ resources :pages do
59
+ member do
60
+ put :archive
61
+ put :hide
62
+ put :publish
63
+ get :versions
64
+ end
65
+ collection do
66
+ put :publish
67
+ end
68
+ resources :tasks
103
69
  end
104
-
105
- cms.resources :email_messages
106
- cms.resources :groups
107
- cms.resources :redirects
108
- cms.resources :page_partials, :controller => 'dynamic_views'
109
- cms.resources :page_templates, :controller => 'dynamic_views'
110
- cms.resources :page_routes do |pr|
111
- pr.resources :conditions, :controller => "page_route_conditions"
112
- pr.resources :requirements, :controller => "page_route_requirements"
70
+ get '/pages/:id/version/:version', :to=>'pages#version', :as=>'version_cms_page'
71
+ put '/pages/:id/revert_to/:version', :to=>'pages#revert_to', :as=>'revert_to_cms_page'
72
+ resources :tasks do
73
+ member do
74
+ put :complete
75
+ end
76
+ collection do
77
+ put :complete
78
+ end
113
79
  end
114
- cms.routes "/routes", :controller => "routes"
115
- cms.resources :users, :member => {
116
- :change_password => :get,
117
- :update_password => :put,
118
- :disable => :put,
119
- :enable => :put
120
- }
121
-
122
- if RAILS_ENV == "test" && File.expand_path(RAILS_ROOT) == File.expand_path(File.dirname(__FILE__) + "/../..")
123
- cms.content_blocks :content_block
80
+ match '/sections/file_browser.xml', :to => 'sections#file_browser', :format => "xml", :as=>'file_browser'
81
+ resources :sections do
82
+ resources :links, :pages
124
83
  end
125
-
84
+
85
+ resources :section_nodes do
86
+ member do
87
+ put :move_before
88
+ put :move_after
89
+ put :move_to_beginning
90
+ put :move_to_end
91
+ put :move_to_root
92
+ end
93
+ end
94
+ match '/attachments/:id', :to => 'attachments#show', :as=>'attachment'
95
+
96
+ match '/content_library', :to=>'html_blocks#index', :as=>'content_library'
97
+ content_blocks :html_blocks
98
+ content_blocks :portlets
99
+ post '/portlet/:id/:handler', :to=>"portlet#execute_handler"
100
+
101
+ content_blocks :file_blocks
102
+ content_blocks :image_blocks
103
+ content_blocks :category_types
104
+ content_blocks :categories
105
+ content_blocks :tags
106
+
107
+ match '/administration', :to => 'users#index', :as=>'administration'
108
+
109
+ resources :users do
110
+ member do
111
+ get :change_password
112
+ put :update_password
113
+ put :disable
114
+ put :enable
115
+ end
116
+ end
117
+ resources :email_messages
118
+ resources :groups
119
+ resources :redirects
120
+ resources :page_partials, :controller => 'dynamic_views'
121
+ resources :page_templates, :controller => 'dynamic_views'
122
+ resources :page_routes do
123
+ resources :conditions, :controller => "page_route_conditions"
124
+ resources :requirements, :controller => "page_route_requirements"
125
+ end
126
+ get 'cache', :to=>'cache#show', :as=>'cache'
127
+ delete 'cache', :to=>'cache#destroy'
128
+
129
+ # This is only for testing, and should be moved to the config/routes.rb file eventually.
130
+ # content_blocks :sample_blocks
131
+
132
+ match "/routes", :to => "routes#index", :as=>'routes'
133
+
126
134
  end
127
135
 
136
+ # Loads all Cms PageRoutes from the database
137
+ # TODO: Needs a integration/functional level test to verify that a page route w/ constraints will be correctly mapped.
128
138
  if PageRoute.table_exists?
129
139
  PageRoute.all(:order => "page_routes.name").each do |r|
130
- send((r.route_name || 'connect').to_sym, r.pattern, r.options_map)
140
+ match r.pattern, :to=>r.to, :as=>r.route_name, :_page_route_id=>r.page_route_id, :via=>r.via, :constraints=>r.constraints
131
141
  end
132
142
  end
133
143
 
134
- connect '*path', :controller => 'cms/content', :action => 'show'
144
+ match "/", :to=>"cms/content#show"
145
+ match "*path", :to=>"cms/content#show"
135
146
  end
147
+
136
148
  end