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
data/lib/cms/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  ##
2
- # Allows the precise version of BrowserCMS to be determined programmatically.
2
+ # Allows the precise version of BrowserCMS to be determined problematically.
3
3
  #
4
4
  module Cms
5
- VERSION = "3.1.5"
5
+ VERSION = "3.3.0.beta"
6
6
  end
@@ -0,0 +1,12 @@
1
+ require 'rails/generators/base'
2
+
3
+ module BrowserCms
4
+ module Generators
5
+ # Base class for generators that work on copying files out of the Gem into projects.
6
+ class Base < Rails::Generators::Base
7
+ def self.source_root
8
+ @_browsercms_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), '../../'))
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ Description:
2
+ Copies migrations from the browsercms gem into the application.
@@ -0,0 +1,36 @@
1
+ require 'generators/browser_cms'
2
+ module BrowserCms
3
+ module Generators
4
+
5
+ # For creating a new BrowserCMS project (Used in conjunction with the blank, demo and module templates.
6
+ class CmsGenerator < Base
7
+
8
+
9
+ def enable_static_asset_serving
10
+ application do
11
+ code = "# BrowserCMS should serve static CMS assets (js, css, images) from the Gem\n"
12
+ code = code + "config.serve_static_assets = true"
13
+ end
14
+ end
15
+
16
+ def copy_migrations_and_custom_js_files
17
+
18
+ files_to_copy = [
19
+ # For FCKEditor customization. Not sure this is even necessary anymore
20
+ 'public/site/customconfig.js',
21
+
22
+ # Migrations/seed data
23
+ 'db/migrate/20080815014337_browsercms_3_0_0.rb',
24
+ 'db/migrate/20091109175123_browsercms_3_0_5.rb',
25
+ 'db/seeds.rb'
26
+ ]
27
+
28
+ files_to_copy.each do |file|
29
+ copy_file file, file
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,138 @@
1
+ require 'generators/browser_cms'
2
+ require 'rails/generators/migration'
3
+ module BrowserCms
4
+ module Generators
5
+ class DemoSiteGenerator < Base
6
+ include Rails::Generators::Migration
7
+
8
+ def create_demo_site
9
+ # Copy all public files
10
+ Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
11
+ if File.file?(f)
12
+ file_name = f.sub("#{Cms.root}/", '')
13
+ directory File.dirname(file_name)
14
+ copy_file Cms.scrub_path(f), file_name
15
+ end
16
+ end
17
+
18
+ copy_file 'lib/generators/browser_cms/demo_site/templates/demo_site.rake', 'db/migrate/demo_site.rake'
19
+
20
+ template templates_dir('migration.erb'), 'db/demo_site_seeds.rb', :assigns => {
21
+ :data => data,
22
+ :page_templates => page_templates,
23
+ :page_partials => page_partials
24
+ }
25
+
26
+ end
27
+
28
+ private
29
+ def templates_dir(file=nil)
30
+ f = File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
31
+ Cms.scrub_path(f)
32
+ end
33
+ def data
34
+ open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
35
+ end
36
+
37
+ # Returns an array of strings that are ruby code.
38
+ # Each string is a hash that should be passed to the create_page_template method
39
+ # in the migration
40
+ def page_templates
41
+ Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
42
+ name, format, handler = File.basename(f).split('.')
43
+ %Q{create_page_template(:#{name},
44
+ :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
45
+ :body => <<-HTML
46
+ #{open(f){|f| f.read}}
47
+ HTML
48
+ )}
49
+ end
50
+ end
51
+
52
+ def page_partials
53
+ Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
54
+ name, format, handler = File.basename(f).split('.')
55
+ %Q{create_page_partial(:#{name},
56
+ :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
57
+ :body => <<-HTML
58
+ #{open(f){|f| f.read}}
59
+ HTML
60
+ )}
61
+ end
62
+ end
63
+
64
+ # FIXME: Should be proxied to ActiveRecord::Generators::Base
65
+ # Implement the required interface for Rails::Generators::Migration.
66
+ def self.next_migration_number(dirname) #:nodoc:
67
+ if ActiveRecord::Base.timestamped_migrations
68
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
69
+ else
70
+ "%.3d" % (current_migration_number(dirname) + 1)
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ # class BrowserCmsDemoSiteGenerator < Rails::Generator::Base
77
+ #
78
+ # def source_root
79
+ # "/"
80
+ # end
81
+ #
82
+ # def templates_dir(file=nil)
83
+ # f = File.expand_path(File.join(File.dirname(__FILE__), "templates", file))
84
+ # Cms.scrub_path(f)
85
+ # end
86
+ #
87
+ # def manifest
88
+ # record do |m|
89
+ # # Copy all public files
90
+ # Dir["#{Cms.root}/public/themes/blue_steel/**/*"].each do |f|
91
+ # if File.file?(f)
92
+ # file_name = f.sub("#{Cms.root}/", '')
93
+ # m.directory File.dirname(file_name)
94
+ # m.file Cms.scrub_path(f), file_name
95
+ # end
96
+ # end
97
+ #
98
+ # m.migration_template templates_dir('migration.rb'), 'db/migrate', :assigns => {
99
+ # :data => data,
100
+ # :page_templates => page_templates,
101
+ # :page_partials => page_partials
102
+ # }, :migration_file_name => "load_demo_site_data"
103
+ #
104
+ # end
105
+ # end
106
+ #
107
+ # def data
108
+ # open(File.join(Cms.root, "db", "demo", "data.rb")){|f| f.read}
109
+ # end
110
+ #
111
+ # # Returns an array of strings that are ruby code.
112
+ # # Each string is a hash that should be passed to the create_page_template method
113
+ # # in the migration
114
+ # def page_templates
115
+ # Dir["#{Cms.root}/db/demo/page_templates/*.erb"].map do |f|
116
+ # name, format, handler = File.basename(f).split('.')
117
+ # %Q{create_page_template(:#{name},
118
+ # :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
119
+ # :body => <<-HTML
120
+ # #{open(f){|f| f.read}}
121
+ # HTML
122
+ # )}
123
+ # end
124
+ # end
125
+ #
126
+ # def page_partials
127
+ # Dir["#{Cms.root}/db/demo/page_partials/*.erb"].map do |f|
128
+ # name, format, handler = File.basename(f).split('.')
129
+ # %Q{create_page_partial(:#{name},
130
+ # :name => "#{name}", :format => "#{format}", :handler => "#{handler}",
131
+ # :body => <<-HTML
132
+ # #{open(f){|f| f.read}}
133
+ # HTML
134
+ # )}
135
+ # end
136
+ # end
137
+ #
138
+ # end
@@ -0,0 +1,11 @@
1
+ require 'find'
2
+
3
+ namespace :db do
4
+
5
+ desc 'Load the demo site seed data from db/seeds.rb'
6
+ task :seed_demo_site => 'db:abort_if_pending_migrations' do
7
+ demo_seed_file = File.join(Rails.root, 'db', 'demo_site_seeds.rb')
8
+ load(demo_seed_file) if File.exist?(demo_seed_file)
9
+ end
10
+
11
+ end
@@ -1,7 +1,6 @@
1
- class LoadDemoSiteData < ActiveRecord::Migration
2
- extend Cms::DataLoader
1
+ require 'cms/data_loader'
2
+ include Cms::DataLoader
3
3
 
4
- def self.up
5
4
  <%= data %>
6
5
 
7
6
  # Create templates
@@ -13,9 +12,4 @@ class LoadDemoSiteData < ActiveRecord::Migration
13
12
  <% page_partials.each do |pp| %>
14
13
  <%= pp %>
15
14
  <% end %>
16
- end
17
15
 
18
- def self.down
19
- end
20
-
21
- end
@@ -0,0 +1,22 @@
1
+ Description:
2
+ Create a new content block, along with controller, tests and migrations.
3
+
4
+ Examples:
5
+ `rails generate cms:content article`
6
+
7
+ Creates an Article model, controller, views, tests, and migration:
8
+ Model: app/models/article.rb
9
+ Unit Test: test/unit/models/article_test.rb
10
+ Migration: db/migrate/XXX_create_article.rb
11
+ Controller: app/controllers/cms/article_controller.rb
12
+ Functional Test: test/functional/cms/article_controler_test.rb
13
+ Form Partials: app/views/cms/articles/_form.html.erb
14
+ app/views/cms/articles/render.html.erb
15
+
16
+ This block will have a single attribute, name:string and a form with text_field
17
+ to edit the name.
18
+
19
+ `rails generate content Article name:string body:text published:boolean`
20
+
21
+ Creates an Article model with a string name, text body, and published flag.
22
+ It will create form fields for these attributes in _form.html.erb.
@@ -0,0 +1,55 @@
1
+ require 'rails/generators/active_record/migration'
2
+
3
+ module Cms
4
+ module Generators
5
+ # Allows developers to create new Content Blocks for their projects.
6
+ #
7
+ class ContentBlockGenerator < Rails::Generators::NamedBase
8
+
9
+ source_root File.expand_path('../templates', __FILE__)
10
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
11
+ class_option :migration, :type => :boolean, :default=>true
12
+
13
+ include Rails::Generators::Migration
14
+ extend ActiveRecord::Generators::Migration
15
+
16
+ # Don't check for class collision as overwriting content blocks is fine.
17
+ # check_class_collision
18
+
19
+ def create_content_block
20
+ template 'content_block.rb', File.join('app/models', "#{file_name}.rb")
21
+ end
22
+
23
+ def create_model_test
24
+ template 'unit_test.erb', File.join('test', 'unit', 'models', "#{file_name}_test.rb")
25
+ end
26
+
27
+ def create_controller_and_views
28
+ template 'controller.rb', File.join('app/controllers/cms', "#{file_name.pluralize}_controller.rb")
29
+ template '_form.html.erb', File.join('app/views/cms/', file_name.pluralize, "_form.html.erb")
30
+ template 'render.html.erb', File.join('app/views/cms/', file_name.pluralize, "render.html.erb")
31
+ end
32
+
33
+ def create_functional_test
34
+ template 'functional_test.erb', File.join('test/functional/cms/', "#{file_name.pluralize}_controller_test.rb")
35
+ end
36
+
37
+ def create_routes
38
+ route "namespace :cms do content_blocks :#{file_name.pluralize} end\n"
39
+ end
40
+
41
+ def create_migration_file
42
+ return unless options[:migration]
43
+ migration_template "migration.erb", "db/migrate/create_#{table_name}.rb"
44
+ end
45
+
46
+ private
47
+
48
+ # Used by migration.rb to fill in class name.
49
+ def migration_name
50
+ "Create#{class_name.pluralize.gsub(/::/, '')}"
51
+ end
52
+
53
+ end
54
+ end
55
+ end
@@ -23,7 +23,7 @@ class <%= migration_name %> < ActiveRecord::Migration
23
23
  CategoryType.create!(:name => "<%= @category_type %>")
24
24
  end<% end %>
25
25
  <% if @attachment_section %>unless Section.with_path('/<%= file_name.pluralize %>').exists?
26
- Section.create!(:name => "<%= @attachment_section %>", :parent => Section.system.first, :path => '/<%= file_name.pluralize %>', :allow_groups=>:all)
26
+ Section.create!(:name => "<%= @attachment_section %>", :parent => Section.system_section.first, :path => '/<%= file_name.pluralize %>', :allow_groups=>:all)
27
27
  end<% end %>
28
28
  ContentType.create!(:name => "<%= class_name %>", :group_name => "<%= class_name %>")
29
29
  end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Installs the given module into your current browsercms project.
3
+
4
+ Example:
5
+ rails generate cms:install_module bcms_name_of_module
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,20 @@
1
+ require 'generators/browser_cms/cms/cms_generator'
2
+
3
+ module Cms
4
+
5
+ # A generic generator for installing BrowserCMS modules into a project. This will do the following:
6
+ #
7
+ # 1. Add the Gem to your Gemfile
8
+ # 2. Call the name_of_module:install generator for that gem.
9
+ # 3. Add the routes to the project
10
+ class InstallGenerator < Rails::Generators::NamedBase
11
+ source_root File.expand_path('../templates', __FILE__)
12
+
13
+ def add_and_install_module
14
+ gem name
15
+ generate("#{name}:install")
16
+ route "routes_for_#{name}"
17
+ end
18
+
19
+ end
20
+ end
@@ -3,7 +3,7 @@ Description:
3
3
  under_scored, and an optional list of attribute pairs as arguments.
4
4
 
5
5
  Attribute pairs are column_name:sql_type arguments specifying the
6
- model's attributes. By default, portlets include name:string and template:text
6
+ model's attributes. By default, portlets includes a Name (String) and template (Template Editor)
7
7
  attributes, so do not specify them.
8
8
 
9
9
  This generates a portlet class in app/portlets, a form in app/view/portlets and
@@ -13,20 +13,7 @@ Description:
13
13
  The name you supply will have "portlet" added to it, much the same way controllers work.
14
14
 
15
15
  Example:
16
- `./script/generate portlet ListRecentArticles`
17
-
18
- A portlet to find and display a list of recent Article blocks.
19
- Portlet: app/portlets/list_recent_articles_portlet.rb
20
- Helper: app/portlets/helpers/list_recent_articles_portlet_helper.rb
21
- Form View: app/views/portlets/list_recent_articles/_form.html.erb
22
- Default Template: app/views/portlets/list_recent_articles/render.html.erb
23
- Unit Test: test/unit/portlets/list_recent_articles_portlet_test.rb
24
-
25
- The _form.html.erb will have two fields, a text_field for name, and text_area for
26
- the default template, which will plug in whatever is in render.html.erb.
27
-
28
- Example with attributes:
29
- `./script/generate portlet find_top_x_articles number_to_show:integer description:string`
16
+ `rails generate cms:portlet find_top_x_articles number_to_show:integer description:string`
30
17
 
31
18
  A portlet to display a specific number of articles, as specified in the admin UI.
32
19
  Portlet: app/portlets/find_top_x_articles_portlet.rb
@@ -36,4 +23,4 @@ Example with attributes:
36
23
  Unit Test: test/unit/portlets/find_top_x_articles_portlet_test.rb
37
24
 
38
25
  The _form.html.erb will have text_fields for name, number_to_show and description, as
39
- well as a text_area for template.
26
+ well as a template_editor for template.
@@ -0,0 +1,38 @@
1
+ module Cms
2
+ module Generators
3
+ class PortletGenerator < Rails::Generators::NamedBase
4
+
5
+ source_root File.expand_path('../templates', __FILE__)
6
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
7
+ check_class_collision
8
+
9
+ def create_portlet
10
+ template 'portlet.rb', File.join('app/portlets', class_path, "#{portlet_file_name}.rb")
11
+ end
12
+
13
+ def create_helper
14
+ template 'portlet_helper.rb', File.join('app/portlets/helpers', class_path, "#{portlet_file_name}_helper.rb")
15
+ end
16
+
17
+ def create_views
18
+ template '_form.html.erb', File.join('app/views/portlets/', file_name, "_form.html.erb")
19
+ template 'render.html.erb', File.join('app/views/portlets/', file_name, "render.html.erb")
20
+ end
21
+
22
+ def create_tests
23
+ template 'unit_test.erb', File.join('test/unit/portlets', "#{portlet_file_name}_test.rb")
24
+ end
25
+
26
+ private
27
+
28
+ def portlet_class_name
29
+ "#{class_name}Portlet"
30
+ end
31
+
32
+ def portlet_file_name
33
+ "#{file_name}_portlet"
34
+ end
35
+ end
36
+ end
37
+ end
38
+